初学者指南:MyBatis 入门教程
主要介绍了Mybatis的基本使用、JDBC、数据库连接池、lombok注解!
文章目录
前言
什么是Mybatis?
快速入门
使用Mybatis查询所有的用户信息
配置SQL提示
JDBC介绍
Mybatis
数据库连接池
lombok
总结
前言
主要介绍了Mybatis的基本使用、JDBC、数据库连接池、lombok注解!
提示:以下是本篇文章正文内容,下面案例可供参考
什么是Mybatis?
- MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。
- MyBatis本是 Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
- 官网:https://mybatis.org/mybatis-3/zh/index.html
MyBatis是一个持久化框架,用于简化Java与数据库的交互。它通过XML或注解定义SQL语句,映射查询结果到Java对象。MyBatis提供了灵活的SQL配置和动态查询能力,适合复杂查询和自定义SQL的场景。
快速入门
使用Mybatis查询所有的用户信息
准备工作(创建springboot工程、数据库表user、实体类User)
public class User {
private Integer id;
private String name;
private Short age;
private Short gender;
private String phone;
}
引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)
application.properties文件中:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=1234
编写SQL语句(注解/XML)
@Mapper
public interface UserMapper {
@Select("select * from user")
public List<User> list();
}
单元测试
@SpringBootTest
class SpringbootMybatisQuickstart1ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void test1(){
List<User> userList = userMapper.list();
userList.stream().forEach(user -> {
System.out.println(user);
});
}
}
@SpringBootTest
是 Spring Boot 提供的一个注解,主要用于测试 Spring Boot 应用程序。它的主要作用是启动整个 Spring 容器,这样你可以在测试中使用 Spring 的各种功能,包括依赖注入和应用上下文管理。
配置SQL提示
默认在mybatis中编写SQL语句是不识别的。可以做如下配置:
- 产生原因:Idea和数据库没有建立连接,不识别表信息
- 解决方式:在Idea中配置MySQL数据库连接
JDBC介绍
JDBC: ( Java DataBase Connectivity ),就是使用Java语言操作关系型数据库的一套API。
本质:
- sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
- 各个数据库厂商去实现这套接口,提供数据库驱动jar包。
- 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "password";
try (Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users")) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
Mybatis
application.properties文件中
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234
mapper接口
@Mapper
public interface UserMapper {
@Select("select * from user")
public List<User> list();
}
数据库连接池
数据库连接池:
- 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
- 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
- 释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏
优势:
- 资源重用
- 提升系统响应速度
- 避免数据库连接遗漏
标准接口:DataSource
- 官方(sun)提供的数据库连接池接口,由第三方组织实现此接口。
- 功能:获取连接
常见产品:
Druid(德鲁伊)
- Druid连接池是阿里巴巴开源的数据库连接池项目
- 功能强大,性能优秀,是Java语言最好的数据库连接池之一
切换Druid数据库连接池
官方地址:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
spring.datasource.druid.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.druid.username=root
spring.datasource.druid.password=password
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
HikariCP 是一个高性能的 JDBC 连接池实现,默认情况下适用于大多数场景。
<!-- application.properties -->
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/mydb
spring.datasource.hikari.username=root
spring.datasource.hikari.password=password
spring.datasource.hikari.maximum-pool-size=10
lombok
Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
注解 | 作用 |
@Getter/@Setter | 为所有的属性提供get/set方法 |
@ToString | 会给类自动生成易阅读的 toString 方法 |
@EqualsAndHashCode | 根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法 |
@Data | 提供了更综合的生成代码功能(@Getter + @Setter + @ToString + @EqualsAndHashCode) |
@NoArgsConstructor | 为实体类生成无参的构造器方法 |
@AllArgsConstructor | 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。 |
注意事项:
- Lombok会在编译时,自动生成对应的java代码。我们使用lombok时,还需要安装一个lombok的插件(idea自带)。
总结
本博客总结了 MyBatis、JDBC、数据库连接池及 Lombok 注解的基本使用。MyBatis 是一个简化 SQL 操作的框架,提供了通过 XML 或注解映射 SQL 语句的能力。JDBC 作为 Java 的原生数据库访问 API,负责加载驱动、建立连接、执行查询及处理结果。数据库连接池(如 HikariCP 和 Druid)通过管理连接提高了数据库操作的性能。Lombok 是一个简化 Java 代码的库,利用注解自动生成常用的代码如 getter/setter、构造函数和 toString
方法。