springboot --- [dbcp] pool de connexion à la base de données

Exigences environnementales: eclipse (springboot, Tomcat, maven) et base de données MySQL

1. Commencez par configurer le fichier pom et le fichier application.yml

application.yml

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_1?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true
    password: root
    username: root
#useUnicode 允许使用自定义字符编码

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.4.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<!-- mysql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!-- Java Persistence API -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<!-- thymeleaf -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<!-- web -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <!-- websocket -->
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <!-- 数据库连接池jar包坐标 -->
  	<dependency>
  		<groupId>commons-dbcp</groupId>
  		<artifactId>commons-dbcp</artifactId>
  		<version>1.4</version>
  	</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2. Insérez les données de la base de données

create database test_1 character set utf8; 

use test_1; 

create table user(
id int primary key auto_increment,
username varchar(10),
password varchar(10)); 

insert into user values(null,'libai','123456'),(null,'tom','admin');

3. Ajoutez les fichiers suivants

Insérez la description de l'image ici

Le code est le suivant:
User.class

package com.example.demo.entity;

import java.sql.Date;
import javax.persistence.Entity;
import javax.persistence.Table;


@Entity
@Table(name="user")
public class User implements java.io.Serializable{
    
    
	private long id;
	private String Username;
	private String Password;
	private Date createdate;
	
    public User() {
    
    
    }

	public long getId() {
    
    
		return id;
	}

	public void setId(long id) {
    
    
		this.id = id;
	}

	public String getUsername() {
    
    
		return Username;
	}

	public void setUsername(String username) {
    
    
		Username = username;
	}

	public String getPassword() {
    
    
		return Password;
	}

	public void setPassword(String password) {
    
    
		Password = password;
	}

	public Date getCreatedate() {
    
    
		return createdate;
	}

	public void setCreatedate(Date createdate) {
    
    
		this.createdate = createdate;
	}
	
	
    

}

DBUtils

package com.example.demo;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
public class DBUtils {
    
    
	//DBCP连接池(BasicDataSource类)
	private static BasicDataSource ds;

	static {
    
    


		Properties p=new Properties();
		InputStream ips=DBUtils.class.getClassLoader()
				.getResourceAsStream("application.yaml");
		try {
    
    
			p.load(ips);
		} catch (Exception e) {
    
    
			// TODO: handle exception
			e.printStackTrace();
		}
		String driver=p.getProperty("driver");
		String url=p.getProperty("url");
		String username = p.getProperty("username");
		String password = p.getProperty("password");
		//创建数据库连接池对象
		ds = new BasicDataSource();
		//设置数据库连接信息
		ds.setDriverClassName(driver);
		ds.setUrl(url);
		ds.setUsername(username);
		ds.setPassword(password);
		//设置初始连接数量
		ds.setInitialSize(3);
		//设置最大连接数量
		ds.setMaxActive(10000); 
	}
	public static Connection getConn()throws Exception {
    
    
		//从连接池中获取连接  抛异常
		Connection conn = ds.getConnection();
		return conn;
	}
}

DémoApplication

package com.example.demo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    
    

	public static void main(String[] args) {
    
    
		SpringApplication.run(DemoApplication.class, args);
		//获取连接
		try (Connection conn=DBUtils.getConn();) {
    
    
			//创建SQL执行对象
			Statement stat = conn.createStatement();
			String sql = "select username,password from user";
			ResultSet rs = stat.executeQuery(sql);
			while(rs.next()) {
    
    
				String name = rs.getString("username");
				String pw = rs.getString("password");
				System.out.println("账号:"+name+"---密码:"+pw);
			}
		} catch (Exception e) {
    
    
			// TODO: handle exception
			e.printStackTrace();
		}
	}

}


résultat de l'opération:

Insérez la description de l'image ici
Cela indique que la connexion a réussi.

Je suis une recrue, veuillez soutenir!
De nombreux fichiers et code source exclusifs aux fans ont été téléchargés, veuillez cliquer sur la page d'accueil de l'avatar pour télécharger

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44182157/article/details/108942513
conseillé
Classement