mybatis是一个针对数据库的,一个基于配置方案的数据处理层框架属于model层的框架,以JDBC连接oracle数据库为例
mybatis的使用首先引入mybatis架包,配置mybatis,连接数据库配置方案如下
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>
<!-- 引用属性文件 -->
<properties resource="jdbc.properties"/>
<!-- mybatis环境配置default参数指的是你默认的开发环境配置 -->
<environments default="development">
<!-- 环境可以配置多个,default的值,即所选用的环境的ID -->
<environment id="development">
<!-- 程序有谁控制,下面的就表示有jdbc控制 -->
<transactionManager type="JDBC"/>
<!-- 配置数据库连接dataSource的type类型,表示是否用连接池,或者调用第三方连接池 -->
<dataSource type="POOLED">
<!-- 连接数据库用到的属性 -->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- <mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers> -->
</configuration>
获得SQL会话
package com.jdl.utils;
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MybatisUtil {
//加载日志
public static Logger log=LoggerFactory.getLogger(MybatisUtil.class);
private static SqlSessionFactory factory;
static{
try {
InputStream in=Resources.getResourceAsStream("mybatis.xml");
factory=new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//手动事物session
public static SqlSession getSession(){
SqlSession session=factory.openSession();
return session;
}
//自动事物session
public static SqlSession getAutoSession(){
SqlSession session=factory.openSession(true);
return session;
}
}
测试代码
package com.jdl.mybatis.test;
import static org.junit.Assert.*;
import java.sql.Connection;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.jdl.utils.MybatisUtil;
public class MybatisUtilTest {
@Test
public void testGetSession() {
SqlSession session=MybatisUtil.getSession();
Connection con=session.getConnection();
assertNotNull(con);
}
@Test
public void testGetSession2() {
SqlSession session=MybatisUtil.getAutoSession();
Connection con=session.getConnection();
assertNotNull(con);
}
}
mybatis的使用首先引入mybatis架包,配置mybatis,连接数据库配置方案如下
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>
<!-- 引用属性文件 -->
<properties resource="jdbc.properties"/>
<!-- mybatis环境配置default参数指的是你默认的开发环境配置 -->
<environments default="development">
<!-- 环境可以配置多个,default的值,即所选用的环境的ID -->
<environment id="development">
<!-- 程序有谁控制,下面的就表示有jdbc控制 -->
<transactionManager type="JDBC"/>
<!-- 配置数据库连接dataSource的type类型,表示是否用连接池,或者调用第三方连接池 -->
<dataSource type="POOLED">
<!-- 连接数据库用到的属性 -->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- <mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers> -->
</configuration>
获得SQL会话
package com.jdl.utils;
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MybatisUtil {
//加载日志
public static Logger log=LoggerFactory.getLogger(MybatisUtil.class);
private static SqlSessionFactory factory;
static{
try {
InputStream in=Resources.getResourceAsStream("mybatis.xml");
factory=new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//手动事物session
public static SqlSession getSession(){
SqlSession session=factory.openSession();
return session;
}
//自动事物session
public static SqlSession getAutoSession(){
SqlSession session=factory.openSession(true);
return session;
}
}
测试代码
package com.jdl.mybatis.test;
import static org.junit.Assert.*;
import java.sql.Connection;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.jdl.utils.MybatisUtil;
public class MybatisUtilTest {
@Test
public void testGetSession() {
SqlSession session=MybatisUtil.getSession();
Connection con=session.getConnection();
assertNotNull(con);
}
@Test
public void testGetSession2() {
SqlSession session=MybatisUtil.getAutoSession();
Connection con=session.getConnection();
assertNotNull(con);
}
}
资源地址mybatis实现源码