mybatis获取数据库连接

一.在src目录或者resource目录下创建mybatis.xml文件,mybatis.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/hmb/domain/StudentMapper.xml"/>
    </mappers>
</configuration>

二.创建MybatisUtil.java工具类(获取Sqlsession,关闭SqlSession),内容如下:

package com.hmb.util;

import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * MyBatis工具类   并测试与数据库是否能连接
 * @author EDZ
 *
 */
public class MyBatisUtil {
    private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
    
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //加载mybatis.xml配置文件,获取数据库的连接信息
            Reader reader = Resources.getResourceAsReader("mybatis.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) { 
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    
    private MyBatisUtil() {}
    
    //获取SqlSession
    public static SqlSession getSqlSession() {
        
        //1.先获取SqlSession对象
        SqlSession sqlSession = threadLocal.get();
        
        //2.判断是否为null
        if(sqlSession == null) {
            
            //从mybatis.xml文件中获取sqlSession对象
             sqlSession = sqlSessionFactory.openSession();
             
             //设置对象到本地线程变量中
             threadLocal.set(sqlSession);
        }
        
        return sqlSession;
    }
    
    //关闭SqlSession
    public static void closeSqlSession() {
        SqlSession sqlSession = threadLocal.get();
        if(sqlSession != null) {
            sqlSession.close();
            threadLocal.remove();
        }
    }
    
}

三.测试.

    public static void main(String[] args) {
        
        //通过SqlSession获取数据库连接
        Connection connection = MyBatisUtil.getSqlSession().getConnection();
        System.out.println(connection != null ? "连接成功" : "连接失败");
    }

猜你喜欢

转载自www.cnblogs.com/lingtiaoti/p/11135915.html