Java 数据库连接(JDBC, Java Database Connectivity) 是 Java 提供的一种用于连接和操作数据库的 API。它允许 Java 程序执行 SQL 语句、获取数据、更新数据、执行事务等数据库操作。
Class.forName
方法加载数据库驱动程序。DriverManager
的 getConnection
方法建立与数据库的连接。Connection
对象的 createStatement
方法创建一个 Statement
对象。Statement
对象的 executeQuery
或 executeUpdate
方法执行 SQL 语句。ResultSet
对象处理从数据库返回的结果。ResultSet
、Statement
和 Connection
对象,释放数据库资源。import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class JDBCExample {
public static void main(String[] args) {
try {
// 1. 加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/testdb";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
// 3. 创建 SQL 语句
Statement stmt = conn.createStatement();
String sql = "SELECT id, name FROM users";
// 4. 执行 SQL 语句
ResultSet rs = stmt.executeQuery(sql);
// 5. 处理结果集
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
}
// 6. 关闭资源
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在 pom.xml
文件中添加 Druid 依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.15</version> <!-- 根据最新版本选择 -->
</dependency>
JDBCUtil
工具类package com.atguigu.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtil {
// Druid 数据源对象
private static DataSource dataSource;
static {
try {
// 加载配置文件
Properties properties = new Properties();
InputStream inputStream = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
properties.load(inputStream);
// 创建 Druid 数据源
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取数据库连接
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
// 关闭资源
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
druid.properties
文件在 resources
目录下创建 druid.properties
文件,用于配置 Druid 连接池:
# 基本连接属性
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
username=root
password=your_password
# 连接池配置
initialSize=5
maxActive=20
minIdle=5
# 超时配置
maxWait=60000
# 检测空闲连接间隔
timeBetweenEvictionRunsMillis=60000
# 连接最小生存时间
minEvictableIdleTimeMillis=300000
# 测试 SQL 连接的有效性
validationQuery=SELECT 1
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
JDBCUtil
类import com.atguigu.utils.JDBCUtil;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBCUtil {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
conn = JDBCUtil.getConnection();
// 创建Statement对象
stmt = conn.createStatement();
String sql = "SELECT * FROM users";
// 执行查询
rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
JDBCUtil.close(conn, stmt, rs);
}
}
}
© 著作权归作者所有
本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。