第一步
所需导入架包
log4j-api-2.10.0.jar
log4j-core-2.10.0.jar
mybatis-3.4.1.jar
mysql-connector-java-5.1.38.jar
第二步
开始配置数据库的连接
<?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">
<!-- 整个配置文档会在和spring整合后废弃 -->
<configuration>
<settings>
<setting name="logImpl" value="LOG4J2" />
<setting name="cacheEnabled" value="true"/>
</settings>
<!-- 配置数据库连接属性 environments:环境 -->
<environments default="development">
<!-- 配置数据库连接环境 -->
<environment id="development">
<!-- 此数据库连接使用的事务管理类型 JDBC:使用JDK提供的事务管理,对应实现类是:JdbcTransactionFactory MANAGED:不做任何事务功能,它就是一个托管标识;对应实现类是:ManagedTransactionFactory
内部实现:typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class); -->
<transactionManager type="JDBC" />
<!-- 此数据库连接使用的连接池 POOLED:使用连接池的方式,开发或测试环境经常使用 UNPOOLED:每次连接都需要打开和关闭,一般不使用。
JNDI:使用配置好的JNDI数据库连接方式,一般生产环境使用较多 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/base" />
<property name="username" value="root" />
<property name="password" value="admin" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/aaa/mapper/faculty.xml"></mapper>
<mapper resource="com/aaa/mapper/StudentDao.xml"></mapper>
</mappers>
</configuration>
第三步(文件放在src根目录问件下)
日志配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="1800">
<appenders>
<Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</appenders>
<loggers>
<!-- 将业务dao接口填写进去,并用控制台输出即可 -->
<logger name="com.aaa.dao" level="DEBUG" additivity="false">
<appender-ref ref="consolePrint"/>
</logger>
<root level="info" >
<appender-ref ref="consolePrint" />
</root>
</loggers>
</Configuration>
第四步:开始测试
/**
* 读取配置文件
* IO
*/
Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);//加载并创建连接工厂
SqlSession session1 = factory.openSession();//从连接池取出一个连接。
StudentDao dao1 = session1.getMapper(StudentDao.class);
Student stu1 = dao1.selectOne(21);
stu1.setStuName("张小三");
dao1.update(stu1);
session1.commit();
session1.close();//把连接归还给连接池
System.out.println(stu1.getStuName());
System.out.println("---上一个sql数据被缓存,数据缓存到session里----");
SqlSession session2 = factory.openSession();//从连接池取出一个连接。
StudentDao dao2 = session2.getMapper(StudentDao.class);
Student stu2 = dao2.selectOne(21);
session2.commit();
session2.close();//把连接归还给连接池
System.out.println(stu2.getStuName());
System.out.println("---上一个sql数据被缓存,数据缓存到session里----");
SqlSession session3 = factory.openSession();//从连接池取出一个连接。
StudentDao dao3 = session3.getMapper(StudentDao.class);
Student stu3 = dao3.selectOne(21);
session3.commit();
session3.close();//把连接归还给连接池
System.out.println(stu3.getStuName());