Mybatis介绍
是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射;
特点
1.支持自定义SQL、存储过程
2.对原有的JDBC进行了封装,几乎消除了所有JDBC代码,让开发者只需关注SQL本身
3.支持XML和注解配置方式自定完成ORM操作,实现结果映射
持久化
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
好处
1.帮助程序猿将数据存入到数据库中
2.传统的JDBC代码太复杂,简化–>框架–>自动化
3.方便
Mybatis部署
创建maven项目
java项目
web工程
添加依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
</dependencies>
创建配置文件
在resources文件夹下创建mybatis-config.xml文件(配置数据库地址、账号、密码)
创建工具类
MybatisUtils.class
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (Exception e){
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
Mybatis使用
1.创建数据库表
CREATE TABLE `user_test` (
`id` int(11) NOT NULL,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.创建表实体类(UserTest.java)
3.创建DAO接口
public interface UserDao {
List<UserTest> getUserTestList();
}
4.创建DAO接口映射文件xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lgcgk.dao.UserDao">
<select id="getUserTestList" resultType="com.lgcgk.pojo.UserTest">
select * from user_test
</select>
</mapper>
5.将映射文件添加到主配置文件(mybatis-config.xml)
6.测试类
public class UserTests {
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<UserTest> userTestList = userDao.getUserTestList();
for(UserTest userTest : userTestList){
System.out.println(userTest);
}
}
}
7.结果