mybatis 对mysql8.0 的配置

配置文件:

<?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&amp;characterEncoding=utf-8&amp;serverTimezone=GMT,以&amp;分开各个属性。

以下是一个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();	
	}
}


猜你喜欢

转载自blog.csdn.net/var1994/article/details/80223851

相关文章