目录
什么是MyBatis?
JDBC缺点
MyBatis简化
MyBatis简单实现
什么是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis 本是 Apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github官网:
MyBatis官网https://mybatis.org/mybatis-3/zh/index.html
持久层:负责将数据到保存到数据库的那一层代码。
JavaEE三层架构:表现层、业务层、持久层
框架:一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础之上构建软件编写更加高效、规范、通用、可扩展。
JDBC缺点
1.硬编码
①注册驱动
②获取连接SQL语句
2.操作繁琐
①手动设置参数
②手动封装结果集
MyBatis简化
硬编码 ——> 配置文件
繁琐操作 ——> 一行代码自动搞定
MyBatis简单实现
首先构建好要用的文件
查询student表中所有数据
1.创建student表,添加数据
2.创建模块,导入坐标(pom.xml)
org.mybatis mybatis3.5.9 junit junit4.13.2 test mysql mysql-connector-java8.0.28
(可选)配置日志文件
org.slf4j
slf4j-api
1.7.20
ch.qos.logback
logback-classic
1.2.3
ch.qos.logback
logback-core
1.2.3
logback.xml
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
3.编写MyBatis核心配置文件(mybatis-config.xml)-->替换连接信息,解决硬编码问题
4.编写SQL映射文件(StudentMapper.xml)-->统一管理sql语句,解决硬编码问题
select * from student;
5.编码
①定义Student类
package Study;
public class Student {
private String name;
private Integer id;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + ''' +
", id=" + id +
", age=" + age +
'}';
}
}
②加载核心配置文件,获取SqlSessionFactory对象
③获取SqlSession对象,执行SQL语句
④释放资源
package Study;
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.InputStream;
import java.util.List;
public class MyBatisDemo {
public static void main(String[] args) throws Exception{
//1.加载mybatis的核心配置文件,获取SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取SqlSession对象
SqlSession sqlSession= sqlSessionFactory.openSession();
//3.执行sql
List students = sqlSession.selectList("test.selectAll");
System.out.println(students);
//4.释放资源
sqlSession.close();
}
}
6.运行结果:
成功撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。



