后端开发之用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天前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
22 4
|
17天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
39 1
|
12天前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
20天前
|
缓存 前端开发 API
深入浅出:后端开发中的RESTful API设计原则
【10月更文挑战第43天】在数字化浪潮中,后端开发如同搭建梦想的脚手架,而RESTful API则是连接梦想与现实的桥梁。本文将带你领略API设计的哲学之美,探索如何通过简洁明了的设计,提升开发效率与用户体验。从资源定位到接口约束,从状态转换到性能优化,我们将一步步构建高效、易用、可维护的后端服务。无论你是初涉后端的新手,还是寻求进阶的开发者,这篇文章都将为你的开发之路提供指引。让我们一起走进RESTful API的世界,解锁后端开发的新篇章。
|
21天前
|
JSON API 开发者
构建高效API:后端开发中的RESTful最佳实践####
在数字化时代,API作为不同系统间通信的桥梁,其重要性日益凸显。本文将深入探讨RESTful API的设计原则与最佳实践,通过实际案例分析,揭示如何构建高效、可维护且易于使用的API接口,助力后端开发者提升项目质量与用户体验。 ####
|
22天前
|
JSON 缓存 API
探索后端开发中的RESTful API设计原则
【10月更文挑战第41天】在后端开发的广阔天地中,API的设计如同绘制一幅精细的地图,指引着数据的流向和前端的交互。本文将带你走进RESTful API的世界,一起探索如何用简洁高效的设计原则来构建一个清晰、可维护且易于理解的API结构。我们将从RESTful API的基础概念出发,通过实际案例分析,揭示如何在实践中应用这些设计原则,并讨论如何在复杂的业务逻辑中保持API的简洁性和一致性。
|
26天前
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
25天前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
14天前
|
缓存 数据库 开发者
后端开发中的性能优化策略
在后端开发领域,性能优化是提升用户体验和系统稳定性的关键。本文将探讨几种有效的后端性能优化技术,包括数据库查询优化、缓存机制的应用、代码层面的优化以及系统架构的调整。通过这些策略,开发者可以显著提高应用程序的响应速度和处理能力,从而满足现代Web应用对高性能的需求。
|
26天前
|
缓存 前端开发 API
探索后端开发中的API设计原则
【10月更文挑战第37天】本文旨在引导读者理解API设计的核心理念,通过简明的语言和直观的示例,揭示如何构建高效、稳定且易于维护的后端接口。我们将深入浅出地探讨RESTful API的设计规范,并通过一个简易的代码样例,展示如何在实战中应用这些原则。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的参考和启示。