在Java编程中,以下示例使用connect.commit()方法来提交事务执行查询。假定数据库名称是:testdb,其中有两张表:employee和dept,employee表中有4条记录,dept表中有2条记录。

创建数据库表的语句 –

use testdb; -- 员工表 drop table if exists employees; create table if not exists employees ( id int not null primary key, age int not null, name varchar(64), dept_id int(10) ); INSERT INTO employees VALUES (100, 28, 'MaxSu', 1); INSERT INTO employees VALUES (101, 25, 'WeiWang', 2); INSERT INTO employees VALUES (102, 30, 'KidaSu', 2); INSERT INTO employees VALUES (103, 28, 'KobeBryant', 1); ---- -- 部门表 drop table if exists dept; create table if not exists dept ( id int not null primary key, name varchar (64) ); INSERT INTO dept VALUES (1, '技术部'); INSERT INTO dept VALUES (2, '市场部');

以下示例使用connect.commit()方法来执行提交事务和查询语句。

package com.yiibai; import java.sql.*; public class CommitStatement { public static void main(String[] args) throws Exception { String JDBC_DRIVER = "com.mysql.jdbc.Driver"; String DB_URL = "jdbc:mysql://localhost/testdb?useSSL=false"; String User = "root"; String Passwd = "123456"; try { Class.forName(JDBC_DRIVER); } catch (ClassNotFoundException e) { System.out.println("Class not found " + e); } Connection con = DriverManager.getConnection(DB_URL, User, Passwd); con.setAutoCommit(false); Statement stmt = con.createStatement(); String createTable = "CREATE TABLE `employees` ( `id` int(11) NOT NULL, `age` int(11) NOT NULL,`name` varchar(64) DEFAULT NULL,`dept_id` int(10) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"; String query = "insert into employees(id, name,age,dept_id) values(1,'Maxsu', 27, 1)"; String query1 = "insert into employees(id, name,age,dept_id) values(5,'苏小牛', 24, 2)"; String query2 = "select * from employees"; // 创建表 stmt.execute(createTable); con.commit(); ResultSet rs = stmt.executeQuery(query2); int no_of_rows = 0; while (rs.next()) { no_of_rows++; } System.out.println("No. of rows before commit statement = " + no_of_rows); con.setAutoCommit(false); stmt.execute(query1); stmt.execute(query); con.commit(); rs = stmt.executeQuery(query2); no_of_rows = 0; while (rs.next()) { no_of_rows++; } System.out.println("No. of rows after commit statement = " + no_of_rows); } }

上述代码示例将产生以下结果。

No. of rows before commit statement = 0 No. of rows after commit statement = 2

注:如果JDBC驱动程序安装不正确,将获得ClassNotfound异常。

Class not found java.lang.ClassNotFoundException: com.mysql.jdbc.Driver JDBC Class found SQL exception occuredjava.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/testdb

¥ 我要打赏 纠错/补充 收藏

java 事务提交_Java如何提交事务/查询?相关推荐

  1. java 事务提交_JAVA设置手动提交事务,回滚事务,提交事务的操作

    我就废话不多说啦,还是直接看代码吧! /** * 设置数据库是否自动提交事务 * @param flag * @throws SQLException */ public void setAutoCo ...

  2. mysql与java的计算效率_java mysql数据库查询效率问题

    主要实现的功能是事先通过条件筛选一部分id出来,在通过遍历这些id找到相应的Bfinalstatement,存为对象,放入list,但是发现数据量才达到1000时(1000个Bfinalstateme ...

  3. java 重复提交_java解决重复提交表单

    在前端代码写一个随机数出来,把这个随机数放在两个地方,一个是session域对象中,一个是表单的隐藏域中.传到后台进行比对,根据这两个值是不是一致,一致的话不是表单重复提交,不一致就是表单重复提交.注 ...

  4. java 事务_Java中事务总结详解(精华)

    1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...

  5. java spring事务管理系统_Java Spring-事务管理概述

    2017-11-11 23:05:39 事务(Transaction):是逻辑上一组操作,要么全都成功,要么全都失败. 一.事务的特性 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致 ...

  6. java hibernate详细_Java事务管理学习之Hibernate详细介绍

    hibernate是jdbc轻量级的封装,本身不具备事务管理的能力,在事物管理层面,一般是委托于底层的jdbc和jta来完成调度的.下面这篇文章主要给大家介绍了Java事务管理学习之Hibernate ...

  7. java mysql 事物_java基础之MySQL事务和视图

    第三节 事务和视图 3.1事务 事务是用来维护数据库完整性的,它能够保证一系列的MySQL操作要么全部执行,要么全不执行.举一个例子来进行说明,例如转账操作:A账户要转账给B账户,那么A账户上减少的钱 ...

  8. java中事务特性_java事务的四大特性ACID

    前言 对于要把事务在实际中使用好,需要了解事务的特性. 事务的四大特性主要是:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability ...

  9. java jta 例子_Java事务与JTA

    一.什么是JAVA事务 通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令.更简答的说就是:要么 ...

  10. java 事务的提出者_java中什么是事务

    展开全部 一.什么是Java事务32313133353236313431303231363533e58685e5aeb931333363386138 通常的观念认为,事务仅与数据库相关. 事务必须服从 ...

最新文章

  1. ffmpeg拿AVPacket做缓冲队列时注意
  2. NVIDIA之AI Course:Getting Started with AI on Jetson Nano—Class notes(一)
  3. QString string char*互转
  4. android 锁屏解决方案,Android 实现锁屏的较完美方案
  5. Detective Book
  6. android stuido 在线安装svn插件,添加版本库无响应
  7. 茶叶的游离态咖啡因与结合态咖啡因
  8. flink的table/sql api的多种写法汇总
  9. [JSON].valueOf( keyPath )
  10. 《Go 语言程序设计》读书笔记(四)接口
  11. Android系统(50)----Android窗口机制
  12. try...catch...finally的陷阱——加锁的线程开发经验分享
  13. C# Bitmap 频繁创建报错 软件闪退 内存溢出
  14. Linux系统上QQ闪退的问题
  15. 关于 Spring 中 getBean 的全流程源码解析
  16. shell编程三大神器之sed
  17. 【esxi跑网心云(cdn)软路由拨号】esxi服务器使用ikuai虚拟机拨号并配置家庭路由器上网
  18. 给腾讯云主机上配置SFTP
  19. python tensorflow车型识别(一):建立数据
  20. 使用VSccde上传文件到Git时可能出现的情况

热门文章

  1. python制作圣诞贺卡_制作这种动态圣诞节电子贺卡,美炸了!
  2. w10打游戏老是弹出计算机,win10游戏频繁弹回桌面怎么办_win10玩游戏总切回桌面的解决方法-系统城...
  3. Linux基本操作之重定向文件
  4. 重新训练大脑!这些APP可治愈心理疾病
  5. amazeui学习笔记--js插件(UI增强)--警告框Alert
  6. odoo13 订单模板设置_Odoo 13开发者文档:视图
  7. 爆款升级当贝NEW D3X来了,画质亮度远超坚果O1S,性能小钢炮实至名归
  8. 关于 Uncaught ReferenceError: mOxie is not defined情况下的问题
  9. 国有资产管理系统web
  10. 广州大学机器学习与数据挖掘实验一:线性回归