天天看点

mybatis配置文件Mybatis核心配置文件

Mybatis核心配置文件

mybatis配置文件Mybatis核心配置文件

除了上述基本的配置,还有一些常用的设置。

  1. typeAliases(类型别名)

    用xml设置别名(适用于实体类少的情况)

    <typeAliases>
            <typeAlias type="com.wang.pojo.User" alias="User"/>
    </typeAliases>
               
    用注解在实体类上设置别名(适用于实体类比较多)
    @Alias("user")
    public class User {}
               
  2. typeHandlers(类型处理器)
  3. objectFactory(对象工厂)
  4. plugins(插件)
  5. databaseIdProvider(数据库厂商标识)
  6. mappers(映射器)

    **MapperRegistry:**注册绑定我们的Mapper文件

    <!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
    
    方式1:通过加载xml资源
    <mappers>
        <mapper resource="com/wang/mapper/UserMapper.xml"/>
    </mappers>
    方式2:通过加载类文件
    <mappers>
        <mapper class="com.wang.mapper.UserMapper"/>
    </mappers>
    方式3:通过包的方式进行扫描
    <mappers>
        <package name="com.wang.mapper"/>
    </mappers>
               

生命周期和作用域的分析

开始---->SqlSessionFactoryBuilder(一旦创建就不再使用)----->SqlSessionFactory(一旦创建一直存在,类似与数据库连接池)----->SqlSession(连接到连接池的一个请求,存在方法里面,用完就关闭,否则占用资源,线程不安全)----->SQL Mapper(每一个Mapper代表每一个业务)----->结束

属性名和字段不一致问题:

1.起别名

<select id="getUserById" resultType="com.wang.pojo.User">
    select id,name, pwd as password  from mybatis.user where id = #{id}
</select>
           

2.使用resultMap(结果集映射)

<resultMap id="UserMap" type="user">
    <!--column对应数据库中的字段,property对应实体类中的属性-->
    <result column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" parameterType="int" resultMap="UserMap">
    select * from mybatis.user where id=#{id}
</select>
nt" resultMap="UserMap">
    select * from mybatis.user where id=#{id}
</select>