1. 特殊说明:
从MySql 8.0(含)以后, 驱动名称使用 "com.mysql.cj.jdbc.Driver", 之前版本使用 "com.mysql.jdbc.Driver"
2. 本人电脑安装的MySql 8.0版本, Eclipse目录结构如下.
MySql驱动的下载, 可以参考: Java MySQL 连接 | 菜鸟教程
3. 新建DBUtils类, 参考如下
package com.cwx.db;
import java.sql.*;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DBUtils {
private static DataSource datasource;
static {
try {
Properties prop= new Properties();
prop.load(DBUtils.class.getClassLoader().getResourceAsStream("db.properties"));
datasource= DruidDataSourceFactory.createDataSource(prop);
if (datasource!= null) {
System.out.println("初始化数据源信息成功...");
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("初始化数据源信息异常...");
e.printStackTrace();
}
}
public static DataSource getDataSource() {
return datasource;
}
public static Connection getConnection() {
Connection connection= null;
try {
connection= datasource.getConnection();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return connection;
}
public static void returnConnetion(Connection connection, Statement statement, ResultSet resultSet) {
if (resultSet!= null) {
try {
resultSet.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
if (statement!= null) {
try {
statement.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
if (connection!= null) {
try {
connection.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public static void commit(Connection connection) {
if (connection!= null) {
try {
connection.commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public static void rollBack(Connection connection) {
if (connection!= null) {
try {
connection.rollback();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
4. 在src目录下放置属性文件 , 参考如下
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc\:mysql\://192.168.2.188\:3306/newssystem?characterEncoding\=utf-8&autoReconnect\=true&failOverReadOnly\=false&useSSL\=FALSE&serverTimezone\=UTC
username=root
password=1234
initialSize=10
maxActive=100
maxWait=3000
5. 新建测试类Test , 参考如下
package com.cwx.test;
import java.sql.*;
import com.cwx.db.DBUtils;
public class Test {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//获取一个连接
Connection connection= DBUtils.getConnection();
PreparedStatement statement;
try {
statement = connection.prepareStatement("select * from T_B_User");
ResultSet resultSet= statement.executeQuery();
while (resultSet.next()) {
//该表有12列 循环取出
for (int i = 1; i <= 12; i++) {
System.out.print(resultSet.getString(i) + "\t");
}
System.out.println();
}
//归还连接
DBUtils.returnConnetion(connection, statement, resultSet);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
6. 测试效果
还有些地方没有弄明白, 比如属性文件里还会有些什么具体参数可设置, 待再学习下再补上.