1.mybatis
1.mybatis介绍
mybatis 是一个优秀的基于java的持久层框架,它内部封装了 jdbc,使开发者只需要关注sql语句本身,而不需要花费精力 去处理加载驱动、创建连接、创建statement等繁杂的过程。
2.mybatis优点
- 简化了JDBC代码
- 支持连接池,提高程序执行效率
- 返回结果ResultSet自动封装成java对象
提供了映射标签,支持对象与数据库的ORM关系字段映射。
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
3.Mybatis 操作数据库的方式
- 可以通过xml文件的方式执行sql;
- 可以通过注解的方式执行SQL;
xml执行sql较复杂,这里我们采用注解执行sql
2.Mybatis入门
创建一个简单mybatis程序
要求从数据库中获取stu表数据,并输出
1.创建Springboot工程
勾选Mybatis Mysql,配置Mybatis 4要素
创建时版本不一致会报错
【java: 无法访问org.springframework.boot.SpringApplication
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中】
后来修改版本,问题解决,我springboot的是2.7.5 java版本是11 Mybatis是3.0.3
2.创建stu表,Stu类
3.创建持久层接口
@Mapper作为依赖注入
在接口中定义一个方法list,该方法注解@Select查询包含Sql语句
注意接口所在包应该是启动类所在包的子包,确保能被组件扫描 ComponentScan扫描到
4.Test测试类
@Autowired依赖注入接口对象,调用接口list方法查询数据,使用list集合(类型为该对象的类)接收,stream遍历
5.运行结果
3.数据库连接池技术
1.原始JDBC
原始JDBC是java官方提供的操作关系数据库的接口,通过安装对应数据库的驱动jar包实现接口
public class JDBCDemo {
public static void main(String[] args) throws Exception{
//获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root","root");
//定义sql语句
String sql = "select * from db1.emp";
//获取执行sql的对象Statement
Statement stmt = conn.createStatement();
//执行sql
ResultSet resultSet = stmt.executeQuery(sql);
//处理结果
while(resultSet.next()) {
int id = resultSet.getInt(1); //获取id
String name = resultSet.getString("ename"); //获取姓名
System.out.println("id:" + id + " name:" + name);
}
//释放资源
stmt.close();
conn.close();
}
}
原始JDBC程序比较臃肿,每次释放资源造成浪费,
现在企业使用springboot+Mybatis 使用数据库连接池技术
2.数据库连接池
数据库连接池是一个容器,管理数据库的连接
springboot+Mybatis采用数据库连接池技术管理数据库链接,提高速度,资源重用,
官方为数据库连接池提供DateSource接口,最常用的实现产品是德鲁伊druid和追光者HiKari
使用时 pom.xml引入依赖