如何用java做数据库
使用Java连接数据库的方法
Java可以通过JDBC(Java Database Connectivity)技术连接和操作数据库。以下是具体步骤和示例代码。
添加JDBC驱动依赖
在项目中添加对应数据库的JDBC驱动。以MySQL为例,Maven项目的pom.xml需添加以下依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
建立数据库连接
使用DriverManager获取数据库连接。需提供数据库URL、用户名和密码。
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
try (Connection connection = DriverManager.getConnection(url, username, password)) {
System.out.println("数据库连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
执行SQL查询
通过Statement或PreparedStatement执行SQL语句。以下为查询示例:
String sql = "SELECT * FROM users";
try (Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql)) {
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id"));
System.out.println("Name: " + resultSet.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
使用PreparedStatement防止SQL注入
对于动态SQL,推荐使用PreparedStatement以提高安全性。
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, "John Doe");
statement.setString(2, "john@example.com");
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
事务管理
通过Connection对象控制事务,确保数据一致性。
try (Connection connection = DriverManager.getConnection(url, username, password)) {
connection.setAutoCommit(false);
try {
// 执行多个SQL操作
connection.commit();
} catch (SQLException e) {
connection.rollback();
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
使用连接池优化性能
生产环境建议使用连接池(如HikariCP)管理数据库连接。
HikariConfig config = new HikariConfig();
config.setJdbcUrl(url);
config.setUsername(username);
config.setPassword(password);
try (HikariDataSource dataSource = new HikariDataSource(config);
Connection connection = dataSource.getConnection()) {
// 使用连接操作数据库
} catch (SQLException e) {
e.printStackTrace();
}
注意事项
- 数据库连接是稀缺资源,使用后需及时关闭。
- 推荐使用try-with-resources确保资源释放。
- 生产环境避免硬编码敏感信息,建议使用配置文件或环境变量。







