1、首先使用maven 加入如下依赖
cglib-2.2.0-b23.jar
asm-5.0.3.jar
mybatis-3.3.0.jar
2、建一个学生表
create table students(
id int(5) primary key,
name varchar(10),
sal double(8,2)
);
3、建一个学生映射文件
StudentMapper.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">
<!-- resultMap标签:映射实体与表
type属性:表示实体全路径名
id属性:为实体与表的映射取一个任意的唯一的名字
-->
<mapper namespace="mynamespace">
<resultMap type="cn.pai.mybatis.Student" id="studentMap">
<!-- id标签:映射主键属性
result标签:映射非主键属性
property属性:实体的属性名
column属性:表的字段名
-->
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="sal" column="sal"/>
</resultMap>
</mapper>
4、配置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="mysql_development"><!--设置默认数据库-->
<environment id="mysql_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>
<environment id="oracle_development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${oracle.driver}"/>
<property name="url" value="${oracle.url}"/>
<property name="username" value="${oracle.username}"/>
<property name="password" value="${oracle.password}"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers >
<mapper resource="cn\pai\mybatis\StudentMapper.xml"/>
</mappers>
</configuration>
5、写一个实体类
package cn.pai.mybatis;
public class Student {
private int id;
private String name;
private Double sal;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int id, String name, Double sal) {
super();
this.id = id;
this.name = name;
this.sal = sal;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getSal() {
return sal;
}
public void setSal(Double sal) {
this.sal = sal;
}
}
6、写一个MybatisFactory.java
package cn.pai.mybatis.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;
import org.apache.log4j.lf5.util.Resource;
public class MybatisUtil {
private static ThreadLocal<SqlSession> threadLocal =new ThreadLocal<SqlSession>();
private static SqlSessionFactory sqlSessionFactory;
/*
* 加载mybatis.xml文件
*/
static{
try{
Reader reader=Resources.getResourceAsReader("mybatis.xml");
sqlSessionFactory= new SqlSessionFactoryBuilder().build(reader);
} catch(IOException e){
e.printStackTrace();
throw new RuntimeException();
}
}
/*
* 禁止实例化工具类对象
*/
private MybatisUtil(){};
/*
* 获取SqlSession
*/
public static SqlSession getSqlSession(){
//从当前线程中获取SqlSession对象
SqlSession sqlSession= threadLocal.get();
// 如果SqlSession 对象为空
if(sqlSession == null){
//在SqlSessionFactory 非空的情况下,获取SqlSession对象
sqlSession =sqlSessionFactory.openSession();
//将SqlSession对象与当前线程绑定在一起
threadLocal.set(sqlSession);
}
return sqlSession;
}
public static void closeSqlSession(){
SqlSession sqlSession=threadLocal.get();
if(sqlSession!=null){
sqlSession.close();
threadLocal.remove();
}
}
public static void main(String[] args) {
Connection conn=MybatisUtil.getSqlSession().getConnection();
System.out.println(conn!=null?"连接成功":"连接失败");
}
}
测试运行便可以看到连接成功的输出。