后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解

简介: 后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解

JDBC

简化JDBC的开发

JDBC仅仅是一套接口 是一套规范

Mybatis是持久层框架

用于简化JDBC的开发

使用Java语言操作关系型数据库的一套API

原始的JDBC程序

package com.bigdate.mybatis;
 
 
import com.bigdate.mybatis.mapper.UserMapper;
import com.bigdate.mybatis.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
 
@SpringBootTest //springboot整合单元测试的注解
class MybatisApplicationTests {
 
  @Autowired
  private UserMapper userMapper;
 
  @Test
  public void testListUser(){
    List<User> userList = userMapper.list();
    userList.stream().forEach(user -> {
      System.out.println(user);
    });
  }
 
  @Test
  public void testJdbc() throws Exception {
    //1. 注册驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
 
    //2. 获取连接对象
    String url = "jdbc:mysql://localhost:3306/mybatis";
    String username = "root";
    String password = "123456";
    Connection connection = DriverManager.getConnection(url, username, password);
 
    //3. 获取执行SQL的对象Statement,执行SQL,返回结果
    String sql = "select * from user";
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery(sql);
 
    //4. 封装结果数据
    List<User> userList = new ArrayList<>();
    while (resultSet.next()){
      int id = resultSet.getInt("id");
      String name = resultSet.getString("name");
      short age = resultSet.getShort("age");
      short gender = resultSet.getShort("gender");
      String phone = resultSet.getString("phone");
 
      User user = new User(id,name,age,gender,phone);
      userList.add(user);
    }
 
    //5. 释放资源
    statement.close();
    connection.close();
  }
}

注册驱动指定驱动类的类名

还有指定url

还要获取连接 断开连接

缺点太多

Springboot和Mybatis整合

底层存在数据库连接池

比较

小结

JDBC是一套规范

各个数据库厂商提供对应的实现

叫做数据库的驱动

但是由于原始的JDBC的API开发繁琐 效率底下

所以现在出现了Mybatis这种持久层框架

用来对JDBC进行封装 简化操作 提高效率

日后的企业级开发中也会基于Mybatis这样的持久层框架进行

数据库连接池技术

当各个客户端获取数据库的时候会在数据库连接池中获取数据库的连接

使用完毕后会再还给数据库

追光者连接池

德鲁伊连接池

切换德鲁伊连接池

在pom文件里添加依赖

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
<!-- druid连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.8</version>
</dependency>

在数据库配置文件里指定

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

这样就连接成功

小结

lombok

之前的实体类

lombok简化实体类的书写

只要加上一个注解就行

引入lombok的依赖

不用指定版本号 因为springboot工程会统一版本号

<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

修改实体类

package com.bigdate.mybatis.pojo;
 
import lombok.*;
 
//@Getter
//@Setter
//@ToString
//@EqualsAndHashCode
 
@Data
@NoArgsConstructor  //无参构造
@AllArgsConstructor //带参构造
 
public class User {
    private Integer id;
    private String name;
    private Short age;
    private Short gender;
    private String phone;
    
}

用户信息正常封装

用户信息正常输出

我们的idea自带此插件

目录
相关文章
|
3天前
|
敏捷开发 存储 运维
深入理解后端开发中的微服务架构
在现代软件开发领域,微服务架构已经成为一种重要的设计模式。它通过将复杂的应用程序分解为一套小的、独立的服务来促进敏捷开发和快速迭代。本文旨在探索微服务架构的核心概念、优势与挑战,并结合具体案例分析其在实际应用中的表现。我们将从服务划分策略、通信机制,到数据一致性保障等方面,逐一剖析微服务架构的实施细节。此外,文章还将讨论微服务架构与传统单体架构的区别,以及如何平滑地从传统架构迁移至微服务架构。
|
8天前
|
Kubernetes 持续交付 Docker
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性和应用。微服务架构通过服务的拆分和独立部署提升了系统的灵活性和可维护性,而容器化技术则为微服务的快速部署和管理提供了解决方案。文章深入分析了微服务架构的优势、挑战以及如何利用容器化技术来支持微服务架构的实现。最后,通过实际案例展示了微服务与容器化技术在提升应用开发效率和系统稳定性方面的应用实践。【7月更文挑战第5天】
|
8天前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
8天前
|
存储 缓存 负载均衡
高效后端开发中的架构设计与优化策略
在当今快速发展的技术环境中,高效的后端开发不仅仅依赖于编程技能,更需要精心设计的架构和优化策略。本文探讨了如何通过合理的架构设计和优化策略,提升后端系统的性能和可维护性,以应对复杂的业务需求和大规模的用户访问。【7月更文挑战第5天】
19 1
|
2天前
|
SQL 存储 数据挖掘
深入了解SQLite3命令:小巧强大的数据库工具
SQLite3是轻量级数据库工具,适用于嵌入式设备和数据分析。它提供交互式shell,无需服务器,易于部署。常用命令如`.schema`显示表结构,`.mode`设置输出格式。示例包括创建数据库`mydatabase.db`,创建表`users`,插入数据并查询。注意动态类型系统、性能限制及SQL注入安全。适合轻量级数据存储和管理。
|
3天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
在当今快速发展的软件开发领域中,微服务架构和容器化技术日益成为开发者关注的焦点。本文将探讨微服务架构的优势、常见的容器化解决方案以及它们如何共同推动后端开发的现代化进程。 【7月更文挑战第9天】
15 5
|
1天前
|
敏捷开发 监控 Kubernetes
现代后端开发中的微服务架构设计与实现
在当今快速发展的软件开发领域,微服务架构因其灵活性和可伸缩性而日益流行。本文探讨了微服务架构的设计原则、实现步骤以及其在后端开发中的应用,旨在帮助开发人员理解如何构建和优化现代化的后端服务系统。 【7月更文挑战第12天】
|
3天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性及其应用。微服务架构通过将复杂的应用拆分为独立的服务单元,提升了系统的可扩展性和灵活性。容器化技术(如Docker和Kubernetes)则为微服务的部署与管理提供了高效的解决方案,极大地简化了开发者的工作流程。文章还分析了微服务与容器化技术的优势、挑战以及实际应用场景,旨在帮助开发者更好地理解和应用这些技术,提升软件开发的效率和质量。 【7月更文挑战第9天】
|
4天前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
4天前
|
算法 网络协议 Linux