Various connection pools and DriverManager connect to mysql database

  • Test various connection pools and DriverManager to connect to the mysql database
  • mysql version : 8.0
package mysql;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.commons.dbcp.BasicDataSource;

import com.alibaba.druid.pool.DruidDataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

/**
 *测试各种连接池连接mysql数据库
 */
public class ConnectionTest {
	private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
	private static final String USER = "root";
	private static final String PASSWORD = "123456";
	private static final String DB_URL = "jdbc:mysql://localhost:3306/ljb_database?useSSL=false&serverTimezone=UTC";

	public static void main(String[] args) throws Exception {
		Connection conn = useDbcpConnection();
		executeQuery(conn);
		conn = useDriverConnection();
		executeQuery(conn);
		conn = useC3P0Connection();
		executeQuery(conn);
		conn = useHikariConnnection();
		executeQuery(conn);
		conn = useDruidConnection();
        executeQuery(conn);
	}

	private static Connection useDruidConnection() throws SQLException {
		Connection conn;
		@SuppressWarnings("resource")
		DruidDataSource dds = new DruidDataSource();
        dds.setDriverClassName(DRIVER);
        dds.setUrl(DB_URL);
        dds.setUsername(USER);
        dds.setPassword(PASSWORD);
        conn = dds.getConnection();
		return conn;
	}

	@SuppressWarnings("resource")
	private static Connection useHikariConnnection() throws SQLException {
		HikariConfig config = new HikariConfig();
		//The new driver class is `com.mysql.cj.jdbc.Driver'. 
		//The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
//		config.setDriverClassName("com.mysql.jdbc.Driver");
		config.setJdbcUrl(DB_URL);
		config.setUsername(USER);
		config.setPassword(PASSWORD);
		return new HikariDataSource(config).getConnection();
	}

	private static Connection useC3P0Connection() throws PropertyVetoException, SQLException {
		ComboPooledDataSource ds = new ComboPooledDataSource();
		ds.setDriverClass(DRIVER);
		ds.setJdbcUrl(DB_URL);
		ds.setUser(USER);
		ds.setPassword(PASSWORD);
		return ds.getConnection();
	}

	private static void executeQuery(Connection conn) {
		try {
			Statement stmt = conn.createStatement();
			String sql = "select * from ljb_test";
			ResultSet rs = stmt.executeQuery(sql);
			while (rs.next()) {
				System.out.println(rs.getInt("id"));
				System.out.println(rs.getLong("salary"));
				System.out.println(rs.getString("english_name"));
				System.out.println(rs.getString("descr"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static Connection useDbcpConnection() throws SQLException {
		BasicDataSource dataSource = new BasicDataSource();
		dataSource.setUrl(DB_URL);
		dataSource.setUsername(USER);
		dataSource.setPassword(PASSWORD);
		return dataSource.getConnection();
	}

	private static Connection useDriverConnection() throws ClassNotFoundException, SQLException {
		Class.forName(DRIVER);
		Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
		return conn;
	}
}

  • maven dependency
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.ljb</groupId>
	<artifactId>mysql</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.18</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/commons-pool/commons-pool -->
		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
			<version>1.4</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
		<dependency>
			<groupId>com.mchange</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.5.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.21</version>
		</dependency>
		<dependency>
			<groupId>com.zaxxer</groupId>
			<artifactId>HikariCP</artifactId>
			<version>2.7.2</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>target/lib</outputDirectory>
							<excludeTransitive>false</excludeTransitive>
							<stripVersion>true</stripVersion>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!--java代码打包插件,不会将依赖也打包 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

Guess you like

Origin blog.csdn.net/sdkdeveloper/article/details/103632087