0、参照c3p0的基本使用
- 参考链接:Java数据库连接池c3p0的基本使用
1、导入jar包
- Github地址:https://github.com/alibaba/druid
- 在Tags中找到相对应的版本,说明中有下载连接,下载jar包导入到工程
[……]
Java中数据库操作中的事务实现(JDBC)[……]
package com.yusian.utils;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class Utils {
private static String url; // 数据库连接url
private static String user; // 数据库用户名
private static String pass; // 数据库密码
private static String driver;
/**
* 读取配置文件初始化参数值
*/
static {
// 通过ClassLoader获取配置文件的路径
ClassLoader loader = Utils.class.getClassLoader();
URL jdbc = loader.getResource("jdbc.properties");
try {
// 通过Properties类读取配置文件中的数据,赋值给静态变量
Properties prop = new Properties();
prop.load(new FileReader(jdbc.getPath()));
url = prop.getProperty("url");
user = prop.getProperty("user");
pass = prop.getProperty("pass");
driver = prop.getProperty("driver");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
* @return 数据库连接对象Connection
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
// 注册MySQL驱动类
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 获取MySQL连接对象
return DriverManager.getConnection(url, user, pass);
}
/**
* 释放更新类数据库操作对象
* @param conn 数据库连接对象
* @param stmt SQL语句执行对象
*/
public static void releaseExcuteUpdate(Connection conn, Statement stmt) {
releaseCloseableObject(stmt);
releaseCloseableObject(conn);
}
/**
* 释放查询类数据库操作对象
* @param conn 数据库连接对象
* @param stmt SQL执行对象
* @param retSet 查询结果
*/
public static void releaseExecuteQuery(Connection conn, Statement stmt, ResultSet retSet) {
releaseCloseableObject(retSet);
releaseExcuteUpdate(conn, stmt);
}
/**
* 释放资源
* @param object 需要释放的资源对象
*/
private static void releaseCloseableObject(AutoCloseable object) {
if (object == null) return;
try {
object.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
[……]
jdbc定义的是一套接口,每种数据库类型都有各自的实现,我们调用的都是接口,编译器可能并不清楚该采用哪种实例,所以需要先初始化。
Class.forName("com.mysql.jdbc.Driver");
String connectUrl = "jdbc:mysql://example.domain.com:3306/db3?useSSL=false";
Connection conn = DriverManager.getConnection(connectUrl, "user", "password");
两个重要的方法:
executeUpdate
执行DML语句和DDL语句,即数据或库表的增删改操作;executeQuery
执行DQL语句,即数据库的查询操作;String sql = "select * from xxx";
Statement stmt = conn.createStatement();
ResultSet resultSet = stmt.executeQuery(sql);
while (resultSet.next()) {
String uname = resultSet.getString("column1");
int balance = resultSet.getInt("column2");
System.out.println(uname + "--" + balance);
}
stmt.close();
conn.close();
[……]