当前位置: 主页 > JAVA语言

java使用连接池的好处-java线程池执行完毕

发布时间:2023-04-13 10:15   浏览次数:次   作者:佚名

lombok注解生成

lombok 是一个实用类库 能够通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法java使用连接池的好处,并可以自动化生成日志变量,简化java开发、提高效率。

相应注解及作用

注解 作用

@Getter/@Setter 为所有的属性提供get/set方法

@ToString 会给类自动生成易阅读的 toString 方法

@EqualsAndHashCode

根据类所拥有的非静态字段自动重写 equals 方法和 hashCode

方法

@Data

提供了更综合的生成代码功能(@Getter + @Setter +

java使用连接池的好处_java线程池执行完毕_java使用ssh连接linux

@ToString + @EqualsAndHashCode)

@NoArgsConstructor 为实体类生成无参的构造器方法

@AllArgsConstructor

为实体类生成除了static修饰的字段之外带有各参数的构造器方

法。

mybatis操作数据库四步:

1.加载依赖



org.mybatis.spring.boot
mybatis-spring-boot-starter
2.3.0


com.mysql
mysql-connector-j 
runtime

2. 数据准备 加载实用类

public class User {
private Integer id; //id(主键)
private String name; //姓名
private Short age; //年龄
private Short gender; //性别
private String phone; //手机号
//省略GET, SET方法
}public class User {
private Integer id; //id(主键)
private String name; //姓名
private Short age; //年龄
private Short gender; //性别
private String phone; //手机号
//省略GET, SET方法
}

850c05e7306e13521387a976df2fe1e9

3 编写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

4 编写接口文件

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
//查询所有用户数据
@Select("select id, name, age, gender, phone from user")
public List list();
}

jdbc连接数据库:

DriverManager(类):数据库驱动管理类。

作用:

1. 注册驱动

2. 创建java代码和数据库之间的连接java使用连接池的好处,即获取Connection对象

Connection(接口):建立数据库连接的对象

12c8bc54c631bc7f92c94d6df0840ee1

作用:用于建立java程序和数据库之间的连接

Statement(接口): 数据库操作对象(执行SQL语句的对象)。

作用:用于向数据库发送sql语句

ResultSet(接口):结果集对象(一张虚拟表)

作用:sql查询语句的执行结果会封装在ResultSet中

jdbc 连接数据库代码:

import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JdbcTest {
   @Test
   public void testJdbc() throws Exception {
   //1. 注册驱动
 Class.forName("com.mysql.cj.jdbc.Driver");
  //2. 获取数据库连接
   String url="jdbc:mysql://127.0.0.1:3306/airport";  
  String username = "root";
 String password = "600600";
  Connection connection = DriverManager.getConnection(url,
  username, password);
//3. 执行SQL
  Statement statement = connection.createStatement(); //操作SQL 
的对象
String sql="select id,name,age,gender,phone from user";
ResultSet rs = statement.executeQuery(sql);//SQL查询结果会封装
在ResultSet对象中
List userList = new ArrayList<>();//集合对象(用于存储
User对象)
//4. 处理SQL执行结果
while (rs.next()){
//取出一行记录中id、name、age、gender、phone下的数据
int id = rs.getInt("id");
String name = rs.getString("name");
short age = rs.getShort("age");
short gender = rs.getShort("gender");
String phone = rs.getString("phone");
//把一行记录中的数据,封装到User对象中
User user = new User(id,name,age,gender,phone);
userList.add(user);//User对象添加到集合
}
//5. 释放资源
statement.close();
connection.close();
rs.close();
//遍历集合
for (User user : userList) {
System.out.println(user);
}
}

数据库连接池技术

数据库连接池是个容器,负责分配、管理数据库连接(Connection)

程序在启动时,会在数据库连接池(容器)中,创建一定数量的Connection对象

java线程池执行完毕_java使用连接池的好处_java使用ssh连接linux

允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

客户端在执行SQL时,先从连接池中获取一个Connection对象,然后在执行SQL语句,SQL语句

执行完之后,释放Connection时就会把Connection对象归还给连接池(Connection对象可以

复用)

释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏

客户端获取到Connection对象了,但是Connection对象并没有去访问数据库(处于空闲),数据

库连接池发现Connection对象的空闲时间 > 连接池中预设的最大空闲时间,此时数据库连接池

就会自动释放掉这个连接对象

数据库连接池的好处:

1. 资源重用

java使用连接池的好处_java线程池执行完毕_java使用ssh连接linux

2. 提升系统响应速度

3. 避免数据库连接遗漏

常用数据库连接池 :Druid Hikari (springboot默认)

java使用连接池的好处_java使用ssh连接linux_java线程池执行完毕

mybatis 与 JDBC的比较

分析了JDBC的缺点之后,我们再来看一下在mybatis中,是如何解决这些问题的:

1. 数据库连接四要素(驱动、链接、用户名、密码),都配置在springboot默认的配置文件

application.properties中

2. 查询结果的解析及封装,由mybatis自动完成映射封装,我们无需关注

3. 在mybatis中使用了数据库连接池技术,从而避免了频繁的创建连接、销毁连接而带来的资源浪

费。