search
HomeDatabaseMysql TutorialJDBC使用事务实例
JDBC使用事务实例Jun 07, 2016 pm 02:50 PM
jdbcpackageaffairsuseExample

package qddx .JDBC ; import java .sql .* ; public class useTransaction { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null ; Statement st = null ; PreparedStatement pst = null ; ResultSet rs

<code class=" hljs avrasm">package qddx<span class="hljs-preprocessor">.JDBC</span><span class="hljs-comment">;</span>
import java<span class="hljs-preprocessor">.sql</span>.*<span class="hljs-comment">;</span>
public class useTransaction {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn = null<span class="hljs-comment">;</span>
        Statement <span class="hljs-keyword">st</span> = null<span class="hljs-comment">;</span>
        PreparedStatement pst = null<span class="hljs-comment">;</span>
        ResultSet rs = null<span class="hljs-comment">;</span>
        Savepoint sp = null<span class="hljs-comment">;</span>
        try{
        conn = JDBC_Connection<span class="hljs-preprocessor">.getConnection</span>()<span class="hljs-comment">;</span>
        //指定事务隔离级别
        conn<span class="hljs-preprocessor">.setTransactionIsolation</span>(conn<span class="hljs-preprocessor">.TRANSACTION</span>_READ_UNCOMMITTED)<span class="hljs-comment">;</span>
        pst = conn<span class="hljs-preprocessor">.prepareStatement</span>(<span class="hljs-string">"create table users (id smallint,username text)"</span>)<span class="hljs-comment">;</span>
        pst<span class="hljs-preprocessor">.execute</span>()<span class="hljs-comment">;</span>
        //提交事务
        conn<span class="hljs-preprocessor">.commit</span>()<span class="hljs-comment">;</span>
        pst<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
        }catch(SQLException e){
            System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"连接数据库或者建表失败"</span>)<span class="hljs-comment">;</span>
            System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"事务回滚到回滚点"</span>)<span class="hljs-comment">;</span>
            try{
            conn<span class="hljs-preprocessor">.rollback</span>()<span class="hljs-comment">;</span>
            }catch(SQLException ex){
                //ex<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
                System<span class="hljs-preprocessor">.out</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"回滚失败"</span>)<span class="hljs-comment">;</span>
            }
            try{
            conn<span class="hljs-preprocessor">.setSavepoint</span>()<span class="hljs-comment">;//设置一个存储点</span>
            <span class="hljs-keyword">st</span> = conn<span class="hljs-preprocessor">.createStatement</span>()<span class="hljs-comment">;</span>
            <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.executeUpdate</span>(<span class="hljs-string">"insert into users values(110,'Janes')"</span>)<span class="hljs-comment">;//执行更新语句</span>
            //<span class="hljs-keyword">st</span><span class="hljs-preprocessor">.executeUpdate</span>(<span class="hljs-string">"insert into users values('shibai','Janes')"</span>)<span class="hljs-comment">;//执行更新语句 失败的例子</span>
            conn<span class="hljs-preprocessor">.commit</span>()<span class="hljs-comment">;//提交事务</span>
            conn<span class="hljs-preprocessor">.releaseSavepoint</span>(sp)<span class="hljs-comment">;//释放存储点</span>
            <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
            conn<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>

            }catch(SQLException et){
                System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"操作失败"</span>)<span class="hljs-comment">;</span>
                System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"事务回滚到存储点"</span>)<span class="hljs-comment">;</span>
                try{
                conn<span class="hljs-preprocessor">.rollback</span>(sp)<span class="hljs-comment">;</span>
                <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
                conn<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
                }catch(SQLException exc){
                    System<span class="hljs-preprocessor">.out</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"回滚到存储点失败"</span>)<span class="hljs-comment">;</span>
                    //exc<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;;</span>
                }
                //et<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
            }
            //e<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
        }

    }

}
</code>
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何在Go中使用命名管道?如何在Go中使用命名管道?May 11, 2023 pm 04:22 PM

命名管道是一种在操作系统中相对比较低级的进程通信方式,它是一种以文件为中介的进程通信方式。在Go语言中,通过os包提供了对命名管道的支持。在本文中,我们将介绍如何在Go中使用命名管道来实现进程间通信。一、命名管道的概念命名管道是一种特殊的文件,可以被多个进程同时访问。在Linux系统中,命名管道是一种特殊的文件类型,它们存在于文件系统的某个位置上,并且可以在

Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决May 16, 2023 pm 11:55 PM

Java8-291之后,禁用了TLS1.1,使JDBC无法用SSL连接SqlServer2008怎么办,以下是解决办法修改java.security文件1.找到jre的java.security文件如果是jre,在{JAVA_HOME}/jre/lib/security中,比如????C:\ProgramFiles\Java\jre1.8.0_301\lib\security如果是Eclipse绿色免安装便携版在安装文件夹搜索java.security,比如????xxx\plugins\org

如何在Go中使用第三方库?如何在Go中使用第三方库?May 11, 2023 pm 03:30 PM

在Go语言中,使用第三方库是非常方便的。许多优秀的第三方库和框架可以帮助我们快速地开发应用程序,同时也减少了我们自己编写代码的工作量。但是如何正确地使用第三方库,确保其稳定性和可靠性,是我们必须了解的一个问题。本文将从以下几个方面介绍如何使用第三方库,并结合具体例子进行讲解。一、第三方库的获取Go语言中获取第三方库有以下两种方式:1.使用goget命令首先

Java使用JDBC API连接MySQL数据库遇到的常见问题Java使用JDBC API连接MySQL数据库遇到的常见问题Jun 10, 2023 am 09:55 AM

近年来,Java语言的应用越来越广泛,而JDBCAPI是Java应用程序中与数据库交互的一种创造性方法,JDBC基于一种名为ODBC的开放数据库连接标准,使得Java应用程序能够连入任何数据库管理系统(DBMS)。其中,MySQL更是一款备受青睐的数据库管理系统。然而,连接MySQL数据库时,开发人员也会遇到一些常见问题,本文旨在介绍JDBCAPI连接M

Java错误:JDBC错误,如何解决和避免Java错误:JDBC错误,如何解决和避免Jun 24, 2023 pm 02:40 PM

随着Java的广泛应用,Java程序在连接数据库时经常会出现JDBC错误。JDBC(JavaDatabaseConnectivity)是Java中用于连接数据库的编程接口,因此,JDBC错误是在Java程序与数据库交互时遇到的一种错误。下面将介绍一些最常见的JDBC错误及如何解决和避免它们。ClassNotFoundException这是最常见的JDBC

Java如何实现JDBC批量插入Java如何实现JDBC批量插入May 18, 2023 am 10:02 AM

一、说明在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,效率比单条执行executeUpdate高很多,这是什么原理呢?在mysql和oracle中又是如何实现批量执行的呢?本文将给大家介绍这背后的原理。二、实验介绍本实验将通过以下三步进行a.记录jdbc在mysql中批量执行和单条执行的耗时b.记录jdbc在oracle中批量执行和单条执行的耗时c.记录oracleplsql批量执行和单条执行的耗时相关java和数据库版本如下:Java17,Mysql8,Oracl

MySQL中的JDBC编程该如何分析MySQL中的JDBC编程该如何分析May 30, 2023 pm 10:19 PM

一、数据库编程的必备条件编程语言,如Java,C、C++、Python等数据库,如Oracle,MySQL,SQLServer等数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。二、Java的数据库编程:JDBCJDBC,即JavaDatabaseConnectiv

如何在 Windows 11 中按需使用 OneDrive 的文件如何在 Windows 11 中按需使用 OneDrive 的文件Apr 14, 2023 pm 12:34 PM

&lt;p&gt;Windows 系统上的 OneDrive 应用程序允许您将文件存储在高达 5 GB 的云上。OneDrive 应用程序中还有另一个功能,它允许用户选择一个选项,是将文件保留在系统空间上还是在线提供,而不占用您的系统存储空间。此功能称为按需文件。在这篇文章中,我们进一步探索了此功能,并解释了有关如何在 Windows 11 电脑上的 OneDrive 中按需使用文件的各种选项。&lt;/p&gt;&lt;h2&gt;如何使用 On

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)