MyBatis
MyBatis是一款优秀的持久层框架,用于简化JDBC
MyBatis
持久层
负责把数据保存到数据库的那一层
JavaEE三层架构:表现层(页面展示)、业务层(逻辑处理)、持久层(对数据持久化保存到数据库中)
框架
框架是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础上构建软件编写更加高效、规范、通用、可扩展
MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果的工作。
MyBatis可以通过简单的XML或者注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式java对象)为数据库中的记录
MyBatis官网
快速入门MyBatis
案例:
1.创建数据库、emp表、添加数据
2.创建模块,导入坐标
3.编写MyBatis核心配置文件 ---- 替换连接信息 解决硬编码问题(连接mysql,解决JDBC中将连接信息写入代码中的硬编码问题)
4.编写sql 映射文件 ---- 统一管理sql语句,解决硬编码问题(sql语句)
5.编码
(1)定义pojo类(对应emp表)
(2)加载核心配置文件,获取SqlSessionFactory对象
(3)获取SqlSession对象,执行sql语句
(4)释放资源
根据官网入门提示完成快速入门
部分代码
public class MyBatisDemo {
/*
* MyBatis快速入门
*
* */
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("test.selectAll");
System.out.println(users);
//4.释放资源
sqlSession.close();
}
}
Mapper代理开发
目的:
解决原生方式中的硬编码
简化后期执行sql
使用Mapper代理完成入门案例
1.定义sql映射文件同名的Mapper接口,并且将Mapper接口和sql映射文件放置在同一目录下
2.设置sql映射文件的namespace属性为Mapper接口全限定名
3.在Mapper接口中定义方法,方法名就是sql映射文件中sql语句的id,并保持参数类型返回值类型一致
4.编码
(1)通过SqlSession的 getMapper方法获取Mapper接口的代理对象
(2)调用对应的方法完成sql的执行