• 注册
当前位置:1313e > 默认分类 >正文

MyBatis的核心配置

文章目录

      • 7.1 MyBatis的核心对象
          • 7.1.1 SqlSessionFactory
          • 7.1.2 SqlSession
      • 7.2 配置文件
          • 7.2.1 主要元素
          • 7.2.2 元素
          • 7.2.3 元素
          • 7.2.4 元素
          • 7.2.5 元素
          • 7.2.6 元素
          • 7.2.7 元素
          • 7.2.8 元素
          • 7.2.9 元素
      • 7.3 映射文件
          • 7.3.1 主要元素
          • 7.3.2 元素
          • 7.3.3 元素
          • 7.3.4 元素
          • 7.3.5 元素
          • 7.3.6 元素

7.1 MyBatis的核心对象

7.1.1 SqlSessionFactory

SqlSessionFactory是MyBatis 框架十分重要的对象,他是单个数据库映射关系经过编译后的内存镜像,其作用是创建SqlSession。
通过XML配置文件构建出的SqlSessionFactory实例:

//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("配置文件位置")//根据配置文件构建SqlSessinFactory
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
7.1.2 SqlSession

SqlSessionMybatis 框架的另一个重要的对象,他是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作。SqlSession 对象包含了数据库中所有执行Sql操作的方式,由于底层封装了JDBC连接,所以可以直接使用实例来执行已映射的Sql语句。

7.2 配置文件

7.2.1 主要元素

MyBatis 框架的核心配置文件中。 元素是配置文件的根元素,其他元素都要在 元素内配置。

7.2.2 元素

元素是一个配置属性的元素,该元素通常用于将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性。

<properties><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/test" /><property name="username" value="root" /><property name="password" value="root" />
</properties>
<environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource>
</environment>
7.2.3 元素

元素主要用于改变MyBatis 运行时的行为,例如开启二级缓存,开启延迟加载等。这里我们先不做细讲。

7.2.4 元素

元素用于为配置文件中的java类型设置一个简短的名字,即设置别名。

<typeAliases><typeAlias alias="User"   type="com.**.entity.User"/> 
</typeAliases>
7.2.5 元素

元素在预处理语句中设置一个参数或者从结果集中取出一个值,都会用其框架内部注册的 typeHandler 进行相关处理。
的作用就是将预处理的语中传入的参数javaType转换为 jdbcType,或者从数据库取出结果时将jdbcType转换为javaType。

<typeHandlers><!-- 当配置package的时候,mybatis会去配置的package扫描TypeHandler<package name="com.dy.demo"/>--><!-- handler属性直接配置我们要指定的TypeHandler --><typeHandler handler=""/><!-- javaType 配置java类型,例如String, 如果配上javaType, 那么指定的typeHandler就只作用于指定的类型 --><typeHandler javaType="" handler=""/><!-- jdbcType 配置数据库基本数据类型,例如varchar, 如果配上jdbcType, 那么指定的typeHandler就只作用于指定的类型  --><typeHandler jdbcType="" handler=""/><!-- 也可两者都配置 --><typeHandler javaType="" jdbcType="" handler=""/></typeHandlers>
7.2.6 元素

MyBatis 框架每次床架结果的对象新实例时,都会使用一个对象工厂(ObjectFactory)的实例来完成。MyBatis 中默认的ObjectFactory的作用就是实例化目标类,它既可以通过默认构造器方法来实例,也可以在参数映射存在的时候通过参数构造方法来实例化。
在实际开发中不经常使用,我们只需了解即可。

7.2.7 元素

允许在已映射语句执行过程中的某一点进行拦截调用,这种拦截调用是通过插件来实现的。
元素的作用是配置用户所开发的插件。

7.2.8 元素

在配置文件中,元素用于对环境进行配置。MyBatis的环境配置实际上就是数据源的配置,我们们可以通过元素配置多中数据源,即配置多种数据库。

<environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource>
</environment>
7.2.9 元素

在配置文件中, 元素用于指定MyBatis 映射文件的位置,一般可以使用以下4种方法引入映射器文件:
1.使用类径引入:

 <mappers>       <!-- class 级别的指定 -->  <mapper class="com.bestcxx.stu.springmvc.mapper.UserModelMapper"/>  </mappers> 

2.使用本地文件引入:

  <mappers>  <!-- 使用这个方案,可以单独指定Mapper的位置 -->  <mapper resource="file:///D:/mybatis/mappings/UserModelMapper.xml"/>  </mappers>

3.使用接口类引入:

  <mappers>  <!-- 使用这个方案,可以单独指定Mapper的位置 -->  <mapper resource="mybatis/mappings/UserModelMapper"/>  </mappers>

4.使用包引入:

<mappers>  <package name="com.bestcxx.stu.springmvc.mapper"/>  </mappers>

7.3 映射文件

7.3.1 主要元素

在映射文件中, 元素是映射文件的根元素,其他元素都是它的子元素。

7.3.2 元素

元素用于查询语句,他可以帮我们从数据库中读取出数据。

  <select id="getCount" resultType="Integer" parameterType="com.whc.noteserver.param.NoteBookParam">select count(*) from note_t_notebooks where isdelete=0 and userid=#{userid}</select>
7.3.3 元素

元素用于映射插入语句,在执行完元素中定义的SQL语句后,会返回一个表示插入记录数的整数。

<insert id="addNoteBook" parameterType="com.whc.noteserver.entity.NoteBook">insert into note_t_notebooks (id,name,addtime,isdelete,userid) values(#{id},#{name},#{addtime},#{isdelete},#{userid})</insert>
7.3.4 元素

与 类似,在执行完之后,也会返回一个表示影响记录条数的整数。

     <!--  //查询userName --><update id="updateNoteBook" parameterType="com.whc.noteserver.entity.NoteBook"  >update  note_t_notebooks set name=#{name} where id=#{id}</update>
7.3.5 元素

避免重复代码,造成代码臃肿。 元素的作用就是定义可重复利用的Sql语句代码片段,然后在其他语句中引用这一代码的片段。

<sql id="customer">id,username,jobs,phone</sql>
  <select id="getCount" resultType="Integer" parameterType="com.whc.noteserver.param.NoteBookParam">select <include refid="customerColumns"> from note_t_notebooks where isdelete=0 and userid=#{userid}</select>
7.3.6 元素

元素表示映射结果集,主要作用是定义映射规则,级联的更新一集定义类型转化器等。这里我们只需要了解即可。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录