Mabatis全局配置
框架图
1.properties 属性
数据库配置信息放到properties资源文件中,方便修改连接数据库参数
1.1 mybatis-config.xml全局配置文件中引入:
<properties resource="db.properties"/>
1.2 新建db.properties文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/cvs_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username=root
password=root
1.3 修改mybatis-config.xml全局配置文件中的数据源
<!--dataSource 数据源
UNPOOLED|POOLED|JNDI
-->
<dataSource type="POOLED">
<!--property ${key} 获取value-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
2. settings 设置
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
2.1 mybatis日志配置
1.导入LOG4J的包到mybatis
2.新建log4j.properties 位置:src根目录下
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
部分代码
SysUserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.dao.SysUserMapper">
<select id="selectAll" resultType="entity.SysUser">
select * from user;
</select>
<select id="count" resultType="java.lang.Integer">
select count(1) from t_sys_user;
</select>
</mapper>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--1.configuration 根标签 根元素 根节点-->
<configuration>
<!--
2.properties 引入db配置文件
property 子标签
-->
<properties resource="db.properties"/>
<!--
3.settings 设置运行时行为
SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--
4.typeAliases 别名处理器 建议 cn.entity.SysUser
<typeAlias type="cn.entity.SysUser" alias="user"/>
<package name="cn.entity"/>
@Alias("user")
-->
<typeAliases>
<package name="cn.entity"/>
</typeAliases>
<!--
5.environments 开发、测试和生产环境
default 指定环境
-->
<environments default="dev">
<environment id="dev">
<!--
transactionManager 事务管理器
[JDBC|MANAGED]
-->
<transactionManager type="JDBC"/>
<!--dataSource 数据源
UNPOOLED|POOLED|JNDI
-->
<dataSource type="POOLED">
<!--property ${key} 获取value-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
</dataSource>
</environment>
</environments>
<!--
6.映射器mappers
<mapper resource="cn/dao/SysUserMapper.xml"/>
<mapper url="file:///"/> 绝对路径
<mapper class="org.mybatis.builder.BlogMapper"/>
dao接口 建议Mapper结尾 同一个包
sql映射文件 建议Mapper结尾 同一个包
<package name="cn.dao"/> 包名
-->
<mappers>
<package name="cn.dao"/>
</mappers>
</configuration>
测试代码
package cn.dao;
import cn.Utils.MyBbatisUtil;
import entity.SysUser;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.List;
public class SysUserMapperTest {
SqlSession sqlSession = null;
@Test
void selectAll() throws IOException {
try {
sqlSession = MyBbatisUtil.getSqlSession();
SysUserMapper mapper = sqlSession.getMapper(SysUserMapper.class);
List<SysUser> sysUsers = mapper.selectAll();
if (sysUsers != null && sysUsers.size() > 0) {
for (SysUser sysUser : sysUsers) {
System.out.println("结果========== " + sysUser);
}
}
} finally {
MyBbatisUtil.close(sqlSession);
}
}
@Test
void count() throws IOException {
try {
sqlSession = MyBbatisUtil.getSqlSession();
SysUserMapper mapper = sqlSession.getMapper(SysUserMapper.class);
int count = mapper.count();
System.out.println("count = " + count);
} finally {
MyBbatisUtil.close(sqlSession);
}
}
}