java-08 jdbc

jdbc连接数据库是一种用于在Java应用程序中访问和操作数据库的技术。

如果你觉得我分享的内容或者我的努力对你有帮助,或者你只是想表达对我的支持和鼓励,请考虑给我点赞、评论、收藏。您的鼓励是我前进的动力,让我感到非常感激。

1 jdbc操作数据库的基本步骤

JDBC连接数据库的基本步骤如下:

  1. 加载数据库驱动:使用Class.forName()加载特定数据库的JDBC驱动。
  2. 创建数据库连接:使用DriverManager.getConnection()方法建立连接。
  3. 创建Statement对象:通过连接对象创建Statement对象来执行SQL语句。
  4. 执行SQL语句:使用Statement对象执行SQL查询、更新等操作。
  5. 处理结果:如果是查询操作,处理结果集。
  6. 关闭资源:关闭结果集、Statement和连接对象,释放资源。

以下是一个简单的示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class JdbcExample {
   
    public static void main(String[] args) {
   
        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";
 
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
 
        try {
   
            // 加载数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            
            // 建立数据库连接
            conn = DriverManager.getConnection(jdbcUrl, username, password);
            
            // 创建Statement对象
            stmt = conn.createStatement();
            
            // 执行SQL查询
            String sql = "SELECT * FROM mytable";
            rs = stmt.executeQuery(sql);
            
            // 处理结果集
            while (rs.next()) {
   
                // 获取并处理数据
            }
        } catch (Exception e) {
   
            e.printStackTrace();
        } finally {
   
            // 关闭资源
        }
    }
}

2 jdbc事务操作

在JDBC中控制事务通常涉及以下步骤:

  1. 关闭自动提交:调用 Connection 对象的 setAutoCommit(false) 方法,禁用自动提交,开启事务控制。
  2. 执行数据库操作:使用 Connection 对象进行数据库操作,如 executeUpdate 或 executeQuery。
  3. 如果操作成功,调用 commit() 方法提交事务。如果操作过程中出现异常,捕获异常并调用 rollback() 方法回滚事务。
  4. 操作完成后,关闭 Connection 对象。

下面是一个简单的例子:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
 
public class JDBCTransactionExample {
   
    public static void main(String[] args) {
   
        Connection conn = null;
        Statement stmt = null;
 
        try {
   
            // 加载并Register JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
 
            // 建立连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");
 
            // 关闭自动提交
            conn.setAutoCommit(false);
 
            // 创建Statement
            stmt = conn.createStatement();
 
            // 执行SQL更新
            String sql1 = "UPDATE mytable SET age = age + 1 WHERE id = 1";
            stmt.executeUpdate(sql1);
 
            // 可以添加更多的SQL操作
            // String sql2 = "INSERT INTO mytable (name, age) VALUES ('John', 25)";
            // stmt.executeUpdate(sql2);
 
            // 提交事务
            conn.commit();
            System.out.println("事务已提交");
 
        } catch (ClassNotFoundException | SQLException e) {
   
            try {
   
                // 出现异常时回滚事务
                if (conn != null) {
   
                    conn.rollback();
                    System.out.println("事务已回滚");
                }
            } catch (SQLException ex) {
   
                ex.printStackTrace();
            }
            e.printStackTrace();
        } finally {
   
            // 关闭资源
            try {
   
                if (stmt != null) stmt.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值