java如何连接数据库
连接数据库的基本步骤
在Java中连接数据库通常使用JDBC(Java Database Connectivity)API。以下是连接数据库的核心步骤:
-
加载数据库驱动
需要加载对应数据库的JDBC驱动类。例如MySQL的驱动类为com.mysql.jdbc.Driver(旧版)或com.mysql.cj.jdbc.Driver(新版)。Class.forName("com.mysql.cj.jdbc.Driver"); -
建立数据库连接
使用DriverManager.getConnection()方法传入数据库URL、用户名和密码。String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = "password"; Connection connection = DriverManager.getConnection(url, user, password); -
执行SQL语句
通过Connection对象创建Statement或PreparedStatement执行SQL查询或更新。Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM users"); -
处理结果集
遍历ResultSet获取查询结果。while (resultSet.next()) { String name = resultSet.getString("name"); int age = resultSet.getInt("age"); System.out.println(name + ", " + age); } -
关闭资源
释放Connection、Statement和ResultSet资源,避免内存泄漏。resultSet.close(); statement.close(); connection.close();
使用连接池优化性能
频繁创建和关闭连接会影响性能,推荐使用连接池(如HikariCP、DBCP)。
-
添加依赖
Maven项目中引入HikariCP依赖:<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>5.0.1</version> </dependency> -
配置连接池
创建HikariDataSource并设置连接参数:HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase"); config.setUsername("username"); config.setPassword("password"); HikariDataSource dataSource = new HikariDataSource(config); -
从连接池获取连接
try (Connection connection = dataSource.getConnection()) { // 执行SQL操作 } // 自动归还连接
使用PreparedStatement防止SQL注入
避免直接拼接SQL字符串,改用参数化查询:
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
pstmt.setString(1, "Alice");
pstmt.setInt(2, 25);
pstmt.executeUpdate();
}
常见数据库连接示例
-
MySQL
URL格式:jdbc:mysql://主机:端口/数据库名?参数String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; -
PostgreSQL
URL格式:jdbc:postgresql://主机:端口/数据库名Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:5432/mydb"; -
Oracle
URL格式:jdbc:oracle:thin:@主机:端口:服务名Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
异常处理建议
使用try-with-resources自动关闭资源,并捕获SQLException:
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
// 操作数据库
} catch (SQLException e) {
e.printStackTrace();
}






