myBatis配置
先上一下demo的结构图
1、属性配置
构建sessionFactory时传递(优先级高)
Properties pro = new Properties();
pro.setProperty("jdbc.username", "root");
基于resource属性加载或url加载(优先级中)
<properties resource="app.properties">
基于<property>属性设置(优先级低)
<dataSource type="POOLED">
<!-- 数据库配置-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 问号后面的部分 新版的mysql会询问是否SSL连接,返回一个Boolean值-->
<property name="url" value="jdbc:mysql://localhost:3306/starcold?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false"/>
</dataSource>
2、全局参数配置
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
3、环境配置
<environments default="development">
<environment id="development">
。。。
</environment>
<environment id="test">
。。。
</environment>
</environments>
4、数据源连接模式
<dataSource type="POOLED">
1、unpooled:普通链接,每次获取都会重新建立一个新连接,属性如下:
driver:数据库驱动类
url:url地址
username:数据库用户名
password:数据库登录密码
2、pooled:链接池模式,所有链接从连接池中获取,由连接池来进行连接的建立与回收等操作,除了unpooled属性之外还有其他属性:
poolMaximumActiveConnections:最大活跃数,默认10
poolMaximumIdleContections:最大空闲连接数
poolMaximumCheckoutTime:获取连接超时等待最大时间,默认20000毫秒
poolTimeToWait:单次连接最大等待时间,默认20000毫秒
poolMaximumLocalBadConnectionTolerance:获取连接重试次数,默认3
poolPingQuery:用于检测连接是否断开的测试语句
poolPingEnabled:是否通过执行poolPingQuery语句做检测,默认false;
poolPingContectionsNotUsedFor:连接检测间隔,默认60000ms
5、别名配置
<typeAliases>
<!-- 这一行这里配不配没有作用 -->
<!-- <typeAlias type="myBatis.UserInfo" alias="UserInfo"/>-->
<!-- 把myBatis下的类都加进来,默认使用短类名作为配