public class MybatisUtil {
private static SqlSessionFactory factory = null;
static{
//1.读取配置文件
InputStream in = null;
try {
in = Resources.getResourceAsStream("/mybatis-config.xml");
//2.创建SqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 创建线程绑定对象 ThreadLocal
private static ThreadLocal<SqlSession> tol = new ThreadLocal<SqlSession>();
// 创建SqlSession
public static SqlSession openSession(){
// 先从当前线程获取
SqlSession sqlSession = tol.get();
if(sqlSession==null){
//3.创建SqlSession
sqlSession = factory.openSession();
// 同时存入当前线程
tol.set(sqlSession);
}
return sqlSession;
}
// 获取Dao接口实现类的对象
public static <T> T getMapper(Class<T> c){
// 获取SqlSession
SqlSession sqlSession = openSession();
return sqlSession.getMapper(c);
}
// 提交事务
public static void commit(){
// 获取SqlSession
SqlSession sqlSession = openSession();
sqlSession.commit();
}
// 事务回滚
public static void rollback(){
// 获取SqlSession
SqlSession sqlSession = openSession();
sqlSession.rollback();
}
// 释放资源
public static void close(){
// 获取SqlSession
SqlSession sqlSession = openSession();
if(sqlSession!=null) {
sqlSession.close();
tol.remove();//从当前线程移除
}
}
}
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" >
<configuration>
<properties resource="/jdbc_oracle.properties"></properties>
<typeAliases>
<package name="com.baizhi.xfm.entity"/>
</typeAliases>
<environments default="oracle">
<environment id="oracle">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers >
<mapper resource="XXXDao文件的位置"></mapper>
</mappers>
</configuration>
而jdbc_oracle.properties文件中则是连接oracle数据库所需要的一些参数
jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.username=hr
jdbc.password=hr
localhost 表示访问本机上的tomcat服务器,如果需要访问其他服务器上的tomcat,则把localhost 换成该服务器的ip地址即可