Mybatis连接工具类MybatisUtils,封装SQLSession的创建和关闭!

总结一下工具类备用:

MybatisUtil:

package com.macw.util;

import java.io.IOException;
import java.io.InputStream;

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 MyBatisUtils {
	private static SqlSessionFactory factory = null;
	private static ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>();
	static {
		// 1 读取配置文件 config.xml
		InputStream in = null;
		try {
			in = Resources.getResourceAsStream("mybatis-config.xml");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		// 2 创建SqlSessionFactory
		factory = new SqlSessionFactoryBuilder().build(in);
	}

	public static SqlSession openSession() {
		// 3 创建SqlSession
		SqlSession sqlSession = tl.get();
		if (sqlSession == null) {
			sqlSession = factory.openSession();
			tl.set(sqlSession);
		}
		return sqlSession;

	}

	public static void close(SqlSession sqlSession) {

		if (sqlSession != null) {
			tl.remove();
			sqlSession.close();
		}

	}
}

所用到的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="druid.properties"></properties>
	
	<!-- <settings>
		打印SQL语句
		<setting name="logImpl" value="LOG4J"/>
	</settings> -->
	
	<!--  给包起别名  -->
	<typeAliases>
		<typeAlias type="com.macw.entity.User" alias="user"/>
		<package name="com.macw.entity"/>
	</typeAliases>
	
	<environments default="oracle">
		<environment id="oracle">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${DriverClassName}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${username}"/>
				<property name="password" value="${password}"/>
				<!-- <property name="initialSize" value="${initialSize}"/>
				<property name="maxActive" value="${maxActive}"/>
				<property name="maxWait" value="${maxWait}"/> -->
			</dataSource>
		</environment>
	
	</environments>
	
	<!-- mapper文件的映射 -->
	<mappers>
		<mapper resource="com/macw/dao/mapper/UserMapper.xml"/>
	
	</mappers>
	
</configuration>

上面xml所用到的druid.properties文件:
连接Oracle数据库的配置文件

DriverClassName=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
username=macw
password=macw
initialSize=10
maxActive=50
maxWait=60000

Mybatis工具类在ServiceImpl类下的使用:

package com.macw.service.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.macw.dao.OrderDao;
import com.macw.entity.Order;
import com.macw.service.OrderService;
import com.macw.util.MyBatisUtils;

/**
 * @author 超伟
 * @2019年7月16日 上午10:41:20
 * @博客:https://blog.csdn.net/MacWx
 */
public class OrderServiceImpl implements OrderService {
	private OrderDao dao; 
	/* (non-Javadoc)
	 * @see com.macw.service.OrderService#insertOrder(com.macw.entity.Order)
	 */
	@Override
	public void insertOrder(Order order) {
		// TODO Auto-generated method stub
		SqlSession sqlSession = MyBatisUtils.openSession();
		dao = sqlSession.getMapper(OrderDao.class);
		try {
			dao.insertOrder(order);
			sqlSession.commit();
		} catch (Exception e) {
			// TODO: handle exception
			sqlSession.rollback();
		} finally {
			MyBatisUtils.close(sqlSession);
		}
	}
}

log4j.properties:

log4j.rootLogger=DEBUG, stdout

# SqlMap logging configuration...
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG
log4j.logger.com.ibatis.common.util.StopWatch=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清如许.

整理不易,点滴助力就是不竭动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值