MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录
这一篇先把使用MyBatis的大致过程熟悉一下,具体的内容接下来慢慢的介绍。
首先是下载:https://github.com/mybatis/mybatis-3/releases
现在最新版本是3.4.6,解压后:
新建一个项目,将jar包,贴到工程,bulid path 到构建路径。当然我们为了测试,新建了一个MySql数据库(也要导入Mysql驱动包):db_mybatis,简单的写了一个表:
新建文件jdbc,properties:放到src目录下
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_mybatis
jdbc.username=root
jdbc.password=123456
新建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="jdbc.properties"/>
<!-- 类型别名 -->
<typeAliases>
<typeAlias alias="Student" type="com.java.entity.Student"/>
</typeAliases>
<!-- 环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!-- 映射器 -->
<mappers>
<mapper resource="com/java/mappers/StudentMapper.xml" />
</mappers>
</configuration>
配置文件以后会慢慢介绍。
写一个util,获取sqlSession:
public class SqlSessionFactoryUtil {
private static SqlSessionFactory sqlSessionFactory;
public static SqlSessionFactory getSqlSessionFactory() {
if(sqlSessionFactory==null) {
String resource = "mybatis-config.xml";
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory;
}
public static SqlSession openSession() {
return getSqlSessionFactory().openSession();
}
}
还要新建实体类:Student 与数据库对应。
测试:
public class StudentTest {
public static void main(String[] args) {
SqlSession sqlSession = SqlSessionFactoryUtil.openSession();
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
Student student = new Student("王五",23);
int result = studentMapper.add(student);
sqlSession.commit();
if(result>0) {
System.out.println("添加成功!");
}else {
System.out.println("添加失败");
}
}
}
大体的过程就这样,一些东西后面一一介绍。