mybatis文档学习
1,环境配置(environments)
可以配置多个环境,但每次sqlSessionFactory实例只能选一个环境,多个环境的时候选default对应的那套,其余environment 标签下配置id,如id=“test”
<environments default="development"> <!--default值写的是下面环境中id的哪一个,对应的就使用的哪套环境-->
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<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>
</environments>
-
transactionManager type="JDBC"或者MANAGED
2,属性配置(properties)
mybatis的加载顺序为,先读取properties元素体内resource属性中的文件,或者根据url读取文件,并覆盖之前读取的同名文件,最后读取方法参数传递的属性,并覆盖之前的同名文件
config.properties文件中内容
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&characterEncoding=UTF-8
username=root
password=root
<properties resource="com/kuang/dao/config.properties">
<property name="username" value="root"/>
<property name="password" value="root"/> <!--注意加载顺序,先加载内部property,再加载resource-->
</properties>
3,设置属性(settings)
cacheEnabled,lazyLoadingEnabled
4,类型别名(typeAliases)
常用的别名不区分大小写,实体类少的时候用typeAliases,可以取任意的别名;多的时候用package,别名必须为类名的小写;想用自定义的别名时可以给实体类加注解。
<typeAliases>
<package name="com.kuang.pojo"/> <!--只有package和typeAlias两种方式,typeAlias是一个实体类对应一个别名,package是一个包下的所有类都会自动起别名,方式是把对应的类名全部变成小写-->
<!--<typeAlias type="com.kuang.pojo.User" alias="user"/>-->
</typeAliases>
<update id="updateUser" parameterType="hello" >
update user set name=#{name},pwd=#{pwd} where id = #{id};
</update>
@Alias("hello")
public class User {}
The content of element type “configuration” must match “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)” mybatis配置文件中属性必须严格按照默认的顺序排列,否则报错
5,映射器配置(mappers)
mapperRegistry:注册绑定我们的mapper文件
方式一:每个mapper.xml文件都需要在mybatis核心配置文件中配置,可以不同名字!推荐使用
<mappers>
<mapper resource="com/kuang/dao/UserMapper.xml"/>
</mappers>
方法二:使用class文件绑定注册.
* 接口和他的mapper配置文件必须在同一个包下;
* 接口和他的mapper配置文件必须同名;
<mapper class="com.kuang.dao.UserMapper"/>
方法三:使用package方式绑定注册
- 接口和他的mapper配置文件必须在同一个包下;
- 接口和他的mapper配置文件必须同名;
<package name="com.kuang.dao"/>
6,结果集映射(resultMap)
当数据库字段和实体类字段名称不对应时,通过结果集转换