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

devtools/2024/10/18 14:25:32/

JDBC

简化JDBC的开发

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

Mybatis是持久层框架

用于简化JDBC的开发

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

原始的JDBC程序

java">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 {@Autowiredprivate UserMapper userMapper;@Testpublic void testListUser(){List<User> userList = userMapper.list();userList.stream().forEach(user -> {System.out.println(user);});}@Testpublic 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文件里添加依赖

java">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>

数据库配置文件里指定

java">spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

这样就连接成功

小结

lombok

之前的实体类

lombok简化实体类的书写

只要加上一个注解就行

引入lombok的依赖

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

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

修改实体类

java">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自带此插件 


http://www.ppmy.cn/devtools/41986.html

相关文章

java项目之智慧图书管理系统设计与实现(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的智慧图书管理系统设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 智慧图书管理…

php检测是否存在某个文件或目录

目录 检查文件检查目录 检查文件 可以使用PHP中的file_exists()函数。 来查看吃否存在某个文件 例如&#xff1a; $file_path path/to/your/file.txt;if (file_exists($file_path)) {echo "File exists!"; } else {echo "File does not exist."; }检查目…

桥接模式举个例子简单理解

学习目标&#xff1a; 桥接模式举个例子简单理解 学习内容&#xff1a; 简要介绍 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它主要用于将抽象部分与其实现部分分离&#xff0c;使它们可以独立地变化。桥接模式通过提供一个接口&#…

基于单片机的智能安防系统设计(32+4G+WIFI版)-设计说明书

设计摘要&#xff1a; 本设计基于STM32单片机&#xff0c;旨在实现一个智能安防系统&#xff0c;主要包括烟雾和温度传感器、人体红外传感器、显示屏、按键、4G模块和WiFi模块等组件。通过这些组件的协作&#xff0c;实现了火灾检测、入侵监测、状态显示、用户交互和远程通信等…

【Mac】Indesign 2023 Mac(ID2023) v18.5中文版安装教程

软件介绍 Adobe InDesign是一款由Adobe Systems开发的桌面排版软件&#xff0c;旨在用于创建、编辑和格式化印刷和数字出版物&#xff0c;如书籍、杂志、报纸、传单等。以下是一些关于Adobe InDesign的主要特点和功能&#xff1a; 1.强大的排版工具&#xff1a;InDesign提供了…

ThreadLocal描述

ThreadLocal是Java中的一个类&#xff0c;用于在多线程环境下存储和获取线程相关的数据。每个ThreadLocal对象都可以维护一个线程本地的变量副本&#xff0c;这意味着每个线程都可以独立地改变自己的副本&#xff0c;而不会影响其他线程的副本。这种特性使得ThreadLocal非常适合…

WPF中将多个函数返回值分别绑定至界面控件

WPF中将多个函数返回值分别绑定至界面控件 一、内容简述二、场景一&#xff1a;只有一个函数返回值2.1通过ObjectDataProvider实现2.2通过继承INotifyPropertyChanged接口的自定义类实现 三、场景二&#xff1a;多个函数返回值3.1情况一:输入相同3.2情况二:输入不同 参考文档 一…

TDL - field

hotline Desktop help TS M&O 1)to release app on Linux by commands, etc test development inventor