如下关于配置的学习在Mybatis官网能够找到,以下图:html
mybatis-config.xmljava
Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息mysql
configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
Mybatis能够配置成适应多种环境sql
不过要记住:尽管能够配置多个环境,但每一个SqlSessionFactory实例只能选择一种环境。数据库
学会使用配置多套运行环境!缓存
Mybatis默认的事务管理器就是JDBC,链接池:POOLED ,以下:mybatis
<environments default="development"> <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="${pwd}"/> </dataSource> </environment> </environments>
咱们能够经过properties属性来实现引用配置文件app
这些属性都是可外部配置且可动态替换的,既能够在典型的java属性文件中配置,亦可经过properties元素的子元素来传递。ide
经过这样引入外部文件的方式配置,Mybatis优先取外部配置文件的值(如本例的db.properties)而不会取properties元素子元素配置的参数的值学习
以下图:
编写一个db.properties配置文件
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username=root pwd=123456
在核心配置文件中引入
<!--引入外部配置文件--> <properties resource="db.properties"> <property name="username" value="root"/> <property name="pwd" value="111111"/> </properties>
最后经过以下方式取外部文件配置参数的值:
<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${pwd}"/> </dataSource>
小结:
注:这里补充一个知识:在xml中,全部的标签均可以规定其顺序
类型别名是为java类型设置一个短的名字。
存在的意义仅在于用来减小类彻底限定名的冗余。
有几种方式:
<!--能够给实体类起别名--> <typeAliases> <typeAlias type="com.kuang.pojo.User" alias="User"/> </typeAliases>
2.第二种能够扫描一个包名:
<!--也能够经过扫描包给包下面的全部类起别名,别名为类名首字母小写,可是通过测试,首字母大小写均可以--> <typeAliases> <package name="com.kuang.pojo"/> </typeAliases>
最后在mapper.xml中使用别名就好了以下:
<!--select查询语句--> <select id="getUserList" resultType="User"> select * from mybatis.user; </select>
小结:
在实体类比较少的时候,使用第一种方式,
若是实体类十分多,建议使用第二种。
第一种能够DIY(自定义),第二种则【不行】,若是第二种非要自定义别名,须要再在实体上增长注解 ,以下:
//实体类 @Alias("user") public class User {
Mybatis官网给出来一些常见java类型默认的别名以下图:
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
重点记住以下途中的三个设置:指定Mybatis的日志实现、是否开启缓存、是否懒加载。
MapperRegistry:注册绑定咱们的mapper文件;
咱们之后写都mapper.xml文件都要经过映射器注册到MapperRegistry。
方式一:
<!--每个mapper.xml都须要在mybatis核心配置文件中注册!--> <mappers> <mapper resource="com/kuang/dao/UserMapper.xml"/> </mappers>
方式二:使用class文件绑定注册
<!--每个mapper.xml都须要在mybatis核心配置文件中注册!--> <mappers> <mapper class="com.kuang.dao.UserMapper"/> </mappers>
注意点:
方式三:使用扫描包进行绑定
<!--每个mapper.xml都须要在mybatis核心配置文件中注册!--> <mappers> <package name="com.kuang.dao"/> </mappers>
注意点(与方式二同样):
这篇文章的源码在Mybatis-study工程的mybatis-02模块下!,后面会给出源码连接