`

jdbc连接各数据库及事务处理

 
阅读更多

jdbc连接各数据库及事务处理:

下面罗列了各种数据库使用JDBC连接的方式:

1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);

2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);

 

5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB为数据库名
Connection conn= DriverManager.getConnection(url);

6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
 //myDB为数据库名
Connection conn= DriverManager.getConnection(url);

7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);

 

8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
 Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

Java中的事务处理

  一般情况下,J2EE应用服务器支持JDBC事务、JTA(Java Transaction API)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在JTA事务中嵌套JDBC事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面我们列举两种事务处理方式。
 
  1、JavaBean中使用JDBC方式进行事务处理

  在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。

 

public int delete(int sID) { 
 dbc = new DataBaseConnection(); 
 Connection con = dbc.getConnection(); 
 try { 
  con.setAutoCommit(false);// 更改JDBC事务的默认提交方式 
  dbc.executeUpdate("delete from bylaw where ID=" + sID); 
  dbc.executeUpdate("delete from bylaw _content where ID=" + sID); 
  dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID); 
  con.commit();//提交JDBC事务 
  con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式 
  dbc.close(); 
  return 1; 
 } 
 catch (Exception exc) { 
  con.rollBack();//回滚JDBC事务 
  exc.printStackTrace(); 
  dbc.close(); 
  return -1; 
 } 
} 

 

2、SessionBean中的JTA事务

  JTA 是事务服务的 J2EE 解决方案。本质上,它是描述事务接口(比如 UserTransaction 接口,开发人员直接使用该接口或者通过 J2EE 容器使用该接口来确保业务逻辑能够可靠地运行)的 J2EE 模型的一部分。JTA 具有的三个主要的接口分别是 UserTransaction 接口、TransactionManager 接口和 Transaction 接口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如 suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。例如,UserTransaction 能够执行事务划分和基本的事务操作,而 TransactionManager 能够执行上下文管理。
 
  应用程序可以调用UserTransaction.begin()方法开始一个事务,该事务与应用程序正在其中运行的当前线程相关联。底层的事务管理器实际处理线程与事务之间的关联。UserTransaction.commit()方法终止与当前线程关联的事务。 UserTransaction.rollback()方法将放弃与当前线程关联的当前事务。

public int delete(int sID) { 
 DataBaseConnection dbc = null; 
 dbc = new DataBaseConnection(); 
 dbc.getConnection(); 
 UserTransaction transaction = sessionContext.getUserTransaction();//获得JTA事务 
 try { 
  transaction.begin(); //开始JTA事务 
  dbc.executeUpdate("delete from bylaw where ID=" + sID); 
  dbc.executeUpdate("delete from bylaw _content where ID=" + sID); 
  dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID); 
  transaction.commit(); //提交JTA事务 
  dbc.close(); 
  return 1; 
 } 
 catch (Exception exc) { 
  try { 
   transaction.rollback();//JTA事务回滚 
  } 
  catch (Exception ex) { 
   //JTA事务回滚出错处理 
   ex.printStackTrace(); 
  } 
  exc.printStackTrace(); 
  dbc.close(); 
  return -1; 
 } 
} 
 

 

 

分享到:
评论

相关推荐

    jdbc连接数据库事务工厂模式

    这是我总结的jdbc连接数据库事务工厂模式的例子在项目中经常用,很不错的。

    JAVA反射机制和JDBC和各种数据库的连接

    JAVA的反射机制 JDBC连接各种数据库的方法

    JDBC数据库编程实验

    (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法。 (6)初步理解数据访问层的基本设计方法,理解web...

    jdbc连接数据库的方式2

    二、JDBC连接MySql方式 下面是使用JDBC连接MySql的一个小的教程 1、查找驱动程序 MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此...

    Java连接数据库 JDBC封装类 带使用例子

    Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。

    JDBC 3.0数据库开发与设计

    2.2 使用JDBC连接数据库 2.2.1 SQLJ基本知识 2.2.2 用PL/SQL和Java建立应用程序的基本知识 2.2.3 PL/SQL和Java的特性 2.2.4 PL/SQL和Java的实际开发应用实例 2.2.5 Java连接各类数据库的程序代码 2.3 Web应用...

    JDBC连接数据库,包含DBCP、C3P0连接池,慕课网实例的源码

    Java JDBC基本入门知识,带增删改查例子,支持MySql数据库,包含事务管理,返回数据格式有类对象和List集合格式。有利于初学者理解Java是怎么连接和操作数据库的,也是慕课网中 JDBC之对面女孩走过来的实例源码,亲...

    jdbc事务练习_连接2个数据库

    jdbc事务练习_连接2个数据库 模拟一次转账操作,从oracle中取50到mysql的账户中; 2个数据库的user表都进行update操作 mysql的update失败会回滚oracle的update

    基于JDBC的数据库连接池技术研究与应用

    1、并发问题 2、多数据库服务器和多用户 3、事务处理 4、连接池的分配与释放 5、连接池的配置与维护 连接池模型

    java使用jdbc对mysql的操作封装,包括java使用jdbc对mysql进行事务处理

    封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...

    spring声明式事务管理+jdbc+连接池.zip

    spring声明式事务管理+jdbc+连接池.zip

    解决数据库连接方法

    一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ...

    oracle+MySQL+jdbc数据库教程

    学员将通过实战示例掌握如何使用JDBC API进行数据库连接、执行SQL命令、处理结果集,以及进行事务管理。这一技能对于Java后端开发者来说是必不可少的,能够极大地提升其在企业级应用开发中的竞争力。 通过本课程的...

    Java数据库接口JDBC介绍

    目录 前言 1 参考资料 1 第1章 JDBC概述 2 1.1 JDBC用途 2 第2章 主要调用对象接口介绍 2 2.1 connection对象 2 2.1.1 DriverManager.getConnection方法 3 2.1.2 URL说明 3 ...第3章 常用数据库JDBC写法 10

    JDBC连接数据库,包含DBCP、C3P0连接池,慕课网JDBC之对面的女孩走过来项目的源码

    Java JDBC基本内容,带增删改查例子,支持MySql数据库,支持事务,返回数据格式 支持list集合格式,以及封装对象。有利于初学者理解数据库和Java的连接,还有连接池的两个小demo,也是慕课网上 JDBC之对面的女孩走...

    JDBC连接池(转发)

    本文介绍了基于JDBC的数据库连接池的工作原理,阐述了连接池技术的事务处理、多数据库服务器等各项关键技术,提出了一个高效的连接池管理策略,最后详细说明了数据库连接池应用的具体实现过程。 我觉得很有启发,...

    基于韩顺平老师数据库完结和jdbc完结

    Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。JDBC的基本原理图[重要!JDBC程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个SQL语句...

    sharding-jdbc分布式数据库培训方案

    分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取...

    JDBC线程安全的Druid数据库连接类

    JDBC工具类使用阿里巴巴的数据库连接池Druid,支持高并发,支持多线程环境下的事务和查询测试。

Global site tag (gtag.js) - Google Analytics