配置文件:
<?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">
<configuration>
<!-- 可以配置多个运行环境,但是每个 SqlSessionFactory 实例只能选择一个运行环境
一、development:开发模式
二、work:工作模式-->
<environments default="development">
<!--id属性必须和上面的default一样 -->
<environment id="development">
<!--事务管理器
一、JDBC:这个配置直接简单使用了 JDBC 的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围
二、MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期
比如 spring 或 JEE 应用服务器的上下文,默认情况下,它会关闭连接。然而一些容器并不希望这样,
因此如果你需要从连接中停止它,就可以将 closeConnection 属性设置为 false,比如:
<transactionManager type="MANAGED">
<property name="closeConnection" value="false"/>
</transactionManager>
-->
<transactionManager type="JDBC"/>
<!--dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatisDemo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="941125"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 注册personMapper.xml文件,
personMapper.xml位于com.ys.bean这个包下,所以resource写成com/ys/bean/personMapper.xml-->
<mapper resource="zju_001\maven_test_1\personMapper.xml"/>
</mappers>
</configuration>
其中,jdbc的驱动应该为com.mysql.cj.jdbc.Driver,而不是原来的com.mysql.jdbc.Driver。
url中 要添加useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT,以&分开各个属性。
以下是一个mybatis测试类示例
package zju_001.maven_test_1;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import zju_001.maven_test_1.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class test_mybatis_1 {
SqlSession session;
public void beforeLoadXML() throws IOException{
//加载 mybatis 配置文件
InputStream inputStream = Resources.getResourceAsStream("zju_001\\maven_test_1\\mybatis-configuration.xml");
//InputStream inputStream = test_mybatis_1.class.getClassLoader().getResourceAsStream("\\mybatis-configuration.xml");
//构建sqlSession的工厂 b
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
//根据 sqlSessionFactory 产生 session
session = sqlSessionFactory.openSession();
}
public void testSelectById(){
//这个字符串有 personMapper.xml 文件中 两个部分构成
//<mapper namespace="com.ys.bean.personMapper"> 的 namespace 的值
//<select id="selectPersonById" > id 值
String statement = "zju_001.maven_test_1.personMapper"+".selectPersonById";
// Person p = new Person();
session.selectOne(statement, 1);
Person p = session.selectOne(statement, 1);
System.out.println(p);
session.close();
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
test_mybatis_1 t1=new test_mybatis_1();
t1.beforeLoadXML();
t1.testSelectById();
}
}