一、基本配置
在线文档:https://mybatis.org/mybatis-3/zh/index.html
1、下载: https://github.com/mybatis/mybatis-3/releases
2、将mybatis-3.4.3.jar和lib下的jar包导入项目
3、创建 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>
<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://localhost:3306/jrbac?characterEncoding=utf-8&useSSL=false"/>
<property name="username" value="jrbac"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 将我们写好的Sql映射文件,一定要注册到全局配置文件中。-->
<mappers>
<mapper resource="com/mapper/adminMapper.xml" />
</mappers>
</configuration>
4、创建Sql映射文件、实体对象Admin,如:adminMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.admin">
<!--
namespace, 名称空间。
id, 唯一标识,同Spring的Bean标签id一样。
resultType: 返回值类型。我这里期望他给我返回一个员工对象。
-->
<select id="selectAdmin" resultType="com.entity.Admin">
select * from j_admin
</select>
</mapper>
二、示例
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 com.entity.Admin;
public class Mybatis {
public Mybatis() throws IOException {
String resource = "mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
List<Admin> list = sqlSession.selectList("selectAdmin");
for(Admin i : list){
System.out.println(i);
}
sqlSession.close();
resourceAsStream.close();
}
}
三、mybatis工具类
package com.utils;
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 java.io.IOException;
import java.io.InputStream;
/**
* @author 25754
*/
public class MyBatisUntil {
//封装会话工厂
private static SqlSessionFactory Factory;
/**在进行对象的跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束
*/
private static ThreadLocal<SqlSession> local = new ThreadLocal<SqlSession>();
static {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
Factory = sqlSessionFactoryBuilder.build(is);
} catch (
IOException e)
{
e.printStackTrace();
}
}
//封装factory方法
public static SqlSessionFactory getFactory(){
return Factory;
}
//封装sqlSession会话
public static SqlSession getSqlSession(boolean IsAutoComiit) {
SqlSession sqlSession = local.get();
if (sqlSession == null) {
sqlSession = Factory.openSession(IsAutoComiit);
local.set(sqlSession);
}
return sqlSession;
}
//使用泛型封装getMapper
public static <T extends Object> T getMapper(Class<T> c) {
SqlSession sqlSession = getSqlSession(true);
return sqlSession.getMapper(c);
}
}