在Java中,连接数据库通常通过JDBC(Java Database Connectivity)或者一些ORM(Object-Relational Mapping)框架,如Hibernate、MyBatis等。以下是使用JDBC连接数据库的基本步骤:
- 加载并注册JDBC驱动
使用Class.forName()
方法加载并注册数据库驱动。这步操作只需要执行一次。
Class.forName("com.mysql.cj.jdbc.Driver"); // 以MySQL为例
注意:从JDBC 4.0开始,驱动类的显式加载通常是可选的,因为JDBC驱动可以通过Java的ServiceLoader
机制自动加载。但是,某些数据库或JDBC驱动可能仍然需要显式加载
2. 建立数据库连接
使用DriverManager.getConnection()
方法建立到数据库的连接。这个方法需要数据库URL、用户名和密码作为参数。
String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "myuser"; String password = "mypassword"; Connection connection = DriverManager.getConnection(url, username, password);
- 创建Statement或PreparedStatement
使用Connection
对象的createStatement()
或prepareStatement()
方法创建Statement
或PreparedStatement
对象,用于执行SQL语句。
Statement statement = connection.createStatement(); // 或者 String sql = "SELECT * FROM mytable WHERE id = ?"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setInt(1, 123); // 设置SQL语句中的参数
- 执行SQL语句并处理结果
使用Statement
或PreparedStatement
对象的executeQuery()
、executeUpdate()
等方法执行SQL语句,并处理返回的结果。
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable"); while (resultSet.next()) { // 处理结果集... } // 或者对于PreparedStatement int rowsAffected = preparedStatement.executeUpdate(); // 对于更新、插入或删除操作
- 关闭资源
在完成数据库操作后,务必关闭ResultSet
、Statement
、PreparedStatement
和Connection
对象,以释放数据库资源。
resultSet.close(); statement.close(); // 或 preparedStatement.close(); connection.close();
注意:在实际应用中,建议使用try-with-resources语句来自动关闭这些资源,以避免资源泄露。
try (Connection connection = DriverManager.getConnection(url, username, password); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable")) { // 处理结果集... } catch (SQLException e) { // 处理异常... }