一、MyBatis简介
MyBatis是一款优秀的持久层框架,用于简化JDBC开发
MyBatis本是Apache的一个开源项目iBatis,2021年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
官网地址mybatis – MyBatis 3 | 简介
https://mybatis.org/mybatis-3/zh/index.html
持久层:负责将数据保存到数据库的那一层代码
JavaEE三层架构:表现层,业务层,持久层
框架:框架就是一个半成品的软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础之上构建软件编写更高效、规范、通用、可扩展
JDBC缺点:
硬编码:1、注册驱动,获取连接 2、SQL语句
操作繁琐:1、手动设置参数 2、手动封装结果集
MyBatis简化,把硬编码用配置文件替代,操作繁琐用自动完成替代,Mybatis免除了几乎所有的JDBC代码以及设置和获取结果集的工作。
二、MyBatis入门案例
步骤:1、创建User表,添加数据
2、创建模块,导入坐标
pom.xml文件导入需要用到的依赖
3、编写MyBatis核心配置文件 --> 替换连接信息,解决硬编码问题
在mian文件夹里resources文件夹中新创建一个新的xml文件,在官网找到从XML中构建SqlSessionFactory的配置信息复制过来即可,修改对应的数据库连接信息,用户名和密码对应自己的数据库用户名和密码
4、编写SQL映射文件 --> 统一管理sql语句,解决硬编码问题
在resources文件夹里新创建一个SQL映射文件,也是在官网上找配置示例进行复制,修改相应的信息即可
在核心配置文件mybatis-config.xml中加载sql映射文件
5、编码:
1、定义POJO类,对应数据表的字段
public class User { private Integer id; private String username; private String password; private String gender; private String addr; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", gender='" + gender + '\'' + ", addr='" + addr + '\'' + '}'; } }
2、加载核心配置文件,获取SqlSessionFactory对象
3、获取SqlSession对象,执行SQL语句
4、释放资源
import com.itheima.pojo.User; 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; import java.util.List; /** * Mybatis 快速入门 */ public class MyBatisDemo { public static void main(String[] args) throws IOException { //1、加载mybatis的核心配置文件,获取sqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2、获取SqlSession对象,用它来执行sql SqlSession sqlSession = sqlSessionFactory.openSession(); //3、执行sql List<User> users = sqlSession.selectList("com.itheima.mapper.UserMapper.selectAll"); System.out.println(users); //4、释放资源 sqlSession.close(); } }
执行结果: