JDBC中的事务处理指的是事务的一致性等问题,例如插入一条数据(id,name,password)到表中,另一条数据(address,id)到另一张表中,并且两条数据是相关联的,那么假设第一条数据插入成功,但是第二条数据由于异常没有插入成功,那么此时为了保证事务的一致性、完整性,则两条数据都不能够插入。

1、

创建Conn连接类

Conn.java

 package com.test.conn;

 import java.sql.Connection;
import java.sql.DriverManager; public class Conn { public Connection getCon(){
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/mytest?useUnicode = true&characterEncoding=utf-8";
String user="root";
String password="";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn.getMetaData().getURL());
return conn;
}
catch(Exception e){
e.printStackTrace();
return null;
}
}
}

2、Service_ForData.java 用来测试调用,其中加入了事务处理

 package com.test.service;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class Service_ForData { private static Connection conn ;
private static PreparedStatement pstmt; public static void main(String[] args) {
conn = new com.test.conn.Conn().getCon(); try {
conn.setAutoCommit(false);
addPerson(conn);
addAddress(conn);
conn.commit();
} catch (Exception e) {
System.out.println("捕获到异常");
e.printStackTrace();
try {
conn.rollback();
System.out.println("事务回滚成功");
} catch (SQLException e1) { e1.printStackTrace();
} } } public static void addPerson(Connection conn) throws Exception{ pstmt = conn.prepareStatement("insert into person (id,name,password) values(?,?,?)");
pstmt.setInt(,);
pstmt.setString(,"tom");
pstmt.setString(, "");
pstmt.executeUpdate(); } public static void addAddress(Connection conn) throws Exception{
pstmt = conn.prepareStatement("insert into address (id,address,userid) values(?,?,?)");
pstmt.setInt(, );
pstmt.setString(, "obsnsjka");
pstmt.setInt(, );
pstmt.executeUpdate();
} }

由于addAddress()方法插入不成功,所以两条记录都不插入

结果截图如下:

JDBC编程之事务处理的更多相关文章

  1. JavaEE之JDBC编程[详解]

    1.数据库简介 数据库(DB,Data Base ) 数据库管理系统(DBMS,Data Base Management System) 关系型数据库(RDB) 关系型数据库管理系统(RDBMS) S ...

  2. JDBC编程之事务的使用教程

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5868750.html  关于事务的理论知识.ACID特性等等,网上太多了,在此不一一重复.本文主要着重  事务 ...

  3. 第十三章.MySQL数据库与JDBC编程(下)

    JDBC的典型用法: JDBC4.2常用接口和类简介: DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法: publi ...

  4. 单独使用jdbc编程问题总结(一)

    在学习Mybatis之前,我们先来回顾JDBC编程的相关知识.在此基础上深入的学习Mybatis框架.如有错误,敬请指正. (一)首先我们既然要使用jdbc,当然是要操作数据库了.创建一个名为:myb ...

  5. 浅谈JDBC编程

    一.概述 1.为什么要用JDBC 数据库是程序不可或缺的一部分,每一个网站和服务器的建设都需要数据库.对于大多数应用程序员(此处不包含数据库开发人员)来说,我们更多的不是在DBMS中对数据库进行操纵, ...

  6. 02Mybatis_原生态jdbc编程中的问题总结——从而引生出为什么要用Mybatis

    我们先用jdbc去编写一个例子: 第一步:建表 /* SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis ************** ...

  7. JDBC编程的方式

    JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 从上面可以看出JDBC编程一般要如下步骤: 1. 加载数据库驱动 2. 创建并获取数据库连接 3. 创建jdbc stateme ...

  8. JAVA基础知识之JDBC——编程步骤及执行SQL

    JDBC编程步骤 下面以mysql数据库为例, 1.加载驱动 首先需要下载数据库的驱动jar文件,并且在eclipse包中加入到class path中去, 例如mysql的驱动文件 mysql-con ...

  9. JDBC编程 之 增删改查

    JDBC编程之数据增加,更改,查询,删除 package com.good.jdbc; import java.sql.Connection; import java.sql.DriverManage ...

随机推荐

  1. 《UNIX网络编程》之多客户连接服务端,可重用套接字对

    该网络编程之客户端与服务端程序模板支持: 1. 多客户端同时连接服务端,即服务程序可以同时为多个客户端服务: 2. 服务端支持套接字对重用,即即使处于TIME_WAIT状态,仍可支持服务端重启: 3. ...

  2. js类封装

    将js方法封装成类,好处就是团队开发中避免命名冲突,部分类整理代码如下: function LocalStorageHelper() { //检测浏览器是否支持localStorage this.ch ...

  3. java中Class.forName与new

    一.使用Class.forName 1.装载类 Class clazz = Class.forName("xx.xx.xx"); 2.初始化对象 clazz.newInstance ...

  4. linux 第二天

    文件权限和用户组 groupadd 组名 groupadd policeman 查看组 vi /etc/group cat /etc/group 创建用户,并同时指定将该用户分配到哪个组 userad ...

  5. Oracle 11g随Redhat 5系统自动启动与关闭的设置方法

    最近,ORACLE系统基本调试通过,是时候设置ORACLE随RHEL自动启动与关闭服务的时候了,之所以把这个任务放在最后来做,是因为我觉得这个应该不会很难,但真正实施起来,还是遇到了个不小的障碍:写好 ...

  6. MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用

    列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如下: SELECT * FROM article WHERE uid IN(SELECT ui ...

  7. html网页代码各种名称及作用

    基本Web页文件<HTML><HEAD><TITLE></TITLE></HEAD><BODY></BODY>< ...

  8. ecshop模板如何修改详细图解

    ecshop模板如何修改?很多人在问这个问题,今天就以图解的方式给大家详细说下.相信学完之后,你会很清楚如何修改ecshop模板,不管你是初学者还是程序高手. 1, ecshop的模板结构 ecsho ...

  9. Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案

    以前有想过用 Memcache 实现M/S架构的负载均衡方案,直到听说了 Redis 后才发现它做得更好.发了几天时间研究了一下 Redis ,感觉真的很不错,特整理一下! 以下操作都是在 SUSE  ...

  10. 使用 HTML5 设计辅助功能

    使用 HTML5 设计辅助功能 Rajesh Lal 下载代码示例 如果您真的对面向广大受众感兴趣,将需要为网站设计辅助功能. 辅助功能使网页更易于访问.更易于使用,可供每个人浏览. 通常,使用最新的 ...