- さまざまな接続プールとDriverManagerをテストして、mysqlデータベースに接続します
- mysqlバージョン: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;
}
}
<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>