MyBatis的核心配置

本文详细介绍了MyBatis的核心对象SqlSessionFactory和SqlSession,以及MyBatis配置文件的主要元素,如configuration、typeAliases、typeHandlers、objectFactory、plugins、environments、mappers等。同时,还探讨了映射文件中的主要元素,如select、insert、update、delete、sql等,揭示了MyBatis如何执行交互操作和映射数据库操作。
摘要由CSDN通过智能技术生成

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 框架的核心配置文件中。<configuration> 元素是配置文件的根元素,其他元素都要在<configuration> 元素内配置。

7.2.2 元素

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

<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 元素

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

7.2.4 元素

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

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

<typeHandler>元素在预处理语句中设置一个参数或者从结果集中取出一个值,都会用其框架内部注册的 typeHandler 进行相关处理。
<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 元素

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

7.2.8 元素

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

<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 元素

在配置文件中, <mappers>元素用于指定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 元素

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值