Mybatis简介
Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。它几乎消除所有的JDBC代码和参数手工配置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO映射成 数据库中的记录。
ORM的基本思想:
无论是通过Hibernate还是Mybatis都有一些共同点
- 从配置文件(通常是xml)得到sessionfactory
- 由是sessionfactory产生session
- 在session中完成对数据的增删改查和事务提交等
- 用完之后关闭session
- 在java对象和数据之间有做mapping映射,也通常是配置文件
MyBatis实例
1、设置mybatis配置文件Configuration.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>
<typeAliases>
<typeAlias alias="Student" type="com.mybatis.models.Student"/>
</typeAliases>
<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/mysql" />
<property name="username" value="root"/>
<property name="password" value="mysql"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mybatis/models/Student.xml"/>
</mappers>
</configuration>
2、建立获得SqlSessionFactory的工具类
package com.mybatis.util;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class GetSessionFactory {
private static SqlSessionFactory sessionFactory;
private static Reader reader;
static{
try{
reader = Resources.getResourceAsReader("com/mybatis/config/Configuration.xml");
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
}
public static SqlSessionFactory getSession(){
return sessionFactory;
}
}
3、编写数据库表对应的Java实体类
package com.mybatis.models;
public class Student {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、编写实体类对应的映射文件
<?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.mybatis.models.UserMapper">
<select id="selectStudentByID" parameterType="int" resultType="Student">
select * from `student` where id = #{id}
</select>
</mapper>