Bootstrap

初学者指南: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 方法。

;