JDBC学习----10--jdbc事务自动提交机制

import java.sql.*;

/**
 * @author zzw
 * @create 2020/11/16-13:05
 * jdbc事务机制:
 *      1:jdbc中的事务是自动提交的,什么是自动提交
 *          只要执行一条DML语句(一条删除、更新。。。语句等),则自动提交一次,这是jdbc默认的事务行为
 *          但是在实际的业务中,通常都是N条DML(多条删除、更新。。。语句等)语句同时联合才能完成的,必须
 *          保证他们这些DML语句在用一个事务中同时成或者同时失败
 *      2:可以写测试语句看看是不是自动提交的(例如先写个修改,给占位符传两次值)
 *          用断点可以看出每执行一条语句就进行了一次修改。
 *          所以是自动提交的
 *
 */
public class jdbcTest10 {
    public static void main(String[] args) {
        //jdbc6步走
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            //1、注册驱动
            Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            //2、获取连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "a");
            //3、获取数据库操作对象
            String sql="update jdbc02 set a=? where b=? ";
            ps = conn.prepareStatement(sql);
            //编译之后给占位符赋值
            ps.setString(1,"mmm");
            ps.setInt(2,1);
            int count=ps.executeUpdate();
            System.out.println(count);

            //重新传值
            ps.setString(1,"mmmmm");
            ps.setInt(2,2);
            count=ps.executeUpdate();
            System.out.println(count);




            //4、执行sql,根据数据库的操作不同,使用不同的PreparedStatement方法,这里我们使用executeUpdate()
            count = ps.executeUpdate();
            System.out.println(count);
            //5、处理查询结果集
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //6、释放资源
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JDBC是Java Database Connectivity的缩写,是Java语言中用于连接和操作数据库的接口。它提供了一组标准的API,可以用来访问各种不同类型的关系型数据库,如Oracle、MySQL、SQL Server等。JDBC驱动程序是一个Java类库,可以将JDBC API映射到特定数据库的接口上。通过使用JDBC,可以在Java程序中执行SQL语句,并对数据库进行增删改查等操作。 ### 回答2: JDBC是Java Database Connectivity(Java数据库连接)的缩写,是Java语言中用于与数据库进行连接和操作的API(应用程序接口)。它可以让开发者使用Java语言轻松地访问各种不同类型的数据库。 JDBC的高级特性包括以下几个方面: 1. 连接池:JDBC连接池是一种管理数据库连接的机制。它可以在应用程序启动时创建一定数量的数据库连接,并在需要时将这些连接分配给应用程序使用。通过使用连接池,可以减少每次请求时创建和关闭数据库连接的开销,提高应用程序的性能。 2. 事务管理:JDBC提供了事务管理的功能,可以对多个数据库操作进行批量提交或回滚。通过使用事务,可以确保多个操作的一致性和完整性,同时避免因意外错误导致数据丢失或不一致的问题。 3. 批量更新:JDBC提供了批量更新的功能,可以将多个数据操作一次性提交到数据库,从而减少与数据库的交互次数,提高性能。批量更新适用于需要同时操作多个数据记录的场景,比如大量数据的插入、更新或删除。 4. 元数据查询:JDBC可以通过元数据查询数据库的结构和属性信息,包括表、列、索引等的定义和属性。开发者可以使用元数据查询来动态获取数据库的结构,从而实现一些灵活的操作和功能,例如自动生成代码或报表等。 5. 执行计划:执行计划是指数据库在执行SQL语句时所采取的具体执行策略。JDBC可以获取和分析执行计划信息,帮助开发者优化SQL语句的性能。通过查看执行计划,开发者可以了解数据库在执行SQL语句时所使用的索引、排序、连接等操作,从而针对性地进行性能优化。 总结来说,JDBC的高级特性包括连接池、事务管理、批量更新、元数据查询和执行计划等。通过使用这些特性,开发者可以更加灵活和高效地与数据库进行交互,实现更复杂的数据操作和业务需求。 ### 回答3: Java高级特性中的一个重要组成部分是JDBC(Java Database Connectivity),它为Java应用程序提供了与数据库之间连接的能力。 JDBC允许开发人员使用标准的SQL语句来查询和操作各种类型的数据库,无论是关系型数据库如MySQL、Oracle还是非关系型数据库如MongoDB。JDBC通过数据库驱动程序(Driver)来实现与数据库的通信,每种数据库都需要特定的驱动程序。 使用JDBC的第一步是加载数据库驱动程序。开发人员需要使用"Class.forName()"方法来加载驱动程序的类。一旦驱动程序加载成功,开发人员可以使用"DriverManager.getConnection()"方法来创建与数据库的连接。 在成功连接数据库之后,开发人员可以使用Java的数据库API(Application Programming Interface)来执行SQL语句、事务管理和获取查询结果等。JDBC提供了一组接口和类来实现这些功能,例如"Statement"、"PreparedStatement"和"ResultSet"等。 JDBC还支持元数据(MetaData),可以通过元数据获取关于数据库的信息,如表结构、列名和数据类型等。元数据使得开发人员可以动态地获取和处理数据库的信息,从而实现更高级的功能。 除了基本的SQL操作,JDBC还支持批量处理、存储过程和批量更新等高级特性。批量处理可以提高性能,减少与数据库的通信次数;存储过程可以在数据库端执行一系列操作,减少与客户端的通信;批量更新可以一次性更新多个记录,提高效率。 总之,JDBC是Java高级特性中与数据库交互的重要组成部分,通过它可以实现Java应用程序与各种类型的数据库的连接和操作。JDBC提供了丰富的API和功能,方便开发人员进行数据库操作,并支持高级特性如元数据、批量处理和存储过程等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值