后端开发之用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自带此插件 

相关推荐

  1. Lombok简化开发工具注解应用

    2024-05-13 07:42:02       20 阅读
  2. 开发——jdbc学习(一)

    2024-05-13 07:42:02       38 阅读
  3. 开发——JDBC学习(二)

    2024-05-13 07:42:02       35 阅读
  4. JDBC数据库连接

    2024-05-13 07:42:02       37 阅读
  5. JDBC数据库连接

    2024-05-13 07:42:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 07:42:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 07:42:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 07:42:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 07:42:02       18 阅读

热门阅读

  1. Unity3D安装图文详细步骤

    2024-05-13 07:42:02       10 阅读
  2. 第十三届蓝桥杯国赛

    2024-05-13 07:42:02       9 阅读
  3. OpenCV 光流法总结

    2024-05-13 07:42:02       7 阅读
  4. boto3库调用AWS大模型的封装类

    2024-05-13 07:42:02       11 阅读
  5. 排序算法 下

    2024-05-13 07:42:02       13 阅读
  6. Vue简介

    2024-05-13 07:42:02       12 阅读
  7. Yarn使用

    2024-05-13 07:42:02       9 阅读
  8. TensorFlow基于anaconda3快速构建

    2024-05-13 07:42:02       9 阅读
  9. redis面试

    2024-05-13 07:42:02       9 阅读
  10. MySQL数据库基础功能

    2024-05-13 07:42:02       8 阅读
  11. linux程序分析命令(一)

    2024-05-13 07:42:02       9 阅读