package com.chinacountry.databases; import java.sql.*; import java.util.StringTokenizer; public class connDB { String sDBDriver = "org.gjt.mm.mysql.Driver"; String sConnStr = "jdbc:mysql://10.100.27.13:3306/db1"; Connection cn = null; Statement stmt; boolean autoCommit; private String DbType="MYSQL"; //private String DbType="oracle"; private connDB() { init(); } private void init() { try { Class.forName(sDBDriver).newInstance(); cn = DriverManager.getConnection(sConnStr,"naxweb","naxweb");
} catch(Exception e) { System.err.println("conndb(): " + e.getMessage()); } } public static connDB getNewInstance() { return new connDB(); } //数据绑定的资料好像很少,有空给大家一个例子。在这里只能返回PreparedStatement。 public PreparedStatement getPreparedStmt(String sql) throws SQLException { PreparedStatement preStmt=null; try { preStmt = cn.prepareStatement(sql); } catch(SQLException ex) { ex.printStackTrace(); throw ex; } return preStmt; } public void beginTrans() throws SQLException { try { autoCommit=cn.getAutoCommit(); cn.setAutoCommit(false); } catch(SQLException ex) { ex.printStackTrace(); System.out.print("beginTrans Errors"); throw ex; } } public void commit() throws SQLException { try { cn.commit(); cn.setAutoCommit(autoCommit); } catch(SQLException ex) { ex.printStackTrace(); System.out.print("Commit Errors"); throw ex; } } public void rollback() { try { cn.rollback(); cn.setAutoCommit(autoCommit); } catch(SQLException ex) { ex.printStackTrace(); System.out.print("Rollback Errors"); //throw ex; } } public boolean getAutoCommit() throws SQLException { boolean result=false; try { result=cn.getAutoCommit(); }
catch(SQLException ex) { ex.printStackTrace(); System.out.println("getAutoCommit fail"+ex.getMessage()); throw ex; } return result; } //默认的情况下一次executeQuery(String sql)是一次事务。 //但是可以调用beginTrans(),然后多次executeQuery(String sql),最后commit()实现多sql的事务处理(注意在这种情况下如果发生违例,千万不要忘了在catch(){调用rollBack()})。 // public ResultSet executeQuery(String sql) throws SQLException { ResultSet rs = null; try { stmt=cn.createStatement(); rs = stmt.executeQuery(sql); } catch(SQLException ex) { ex.printStackTrace(); System.out.println("conndb.executeQuery:"+ex.getMessage()); throw ex; } return rs; } public void executeUpdate(String sql) throws SQLException { try { stmt=cn.createStatement(); stmt.executeUpdate(sql); } catch(SQLException ex) { ex.printStackTrace(); System.out.println("conndb.executeUpdate:"+ex.getMessage()); throw ex; } } //Method doBatch 的参数sql,是由一些sql语句拼起来的,用;隔开。可以将许多的sql放在一个事物中,一次执行。 public int[] doBatch(String sql) throws SQLException { int[] rowResult=null; String a; try { //boolean autoCommit=cn.getAutoCommit(); //cn.setAutoCommit(false); stmt=cn.createStatement(); StringTokenizer st = new StringTokenizer(sql,";"); while (st.hasMoreTokens()) { a=st.nextToken(); stmt.addBatch(a); } rowResult=stmt.executeBatch(); } catch(SQLException ex) { ex.printStackTrace(); System.out.println("conndb.doBatch:"+ex.getMessage()); throw ex; } return rowResult; } public String getDbType() { return DbType; } public void close() throws SQLException { try { stmt.close(); stmt=null; cn.close(); cn=null; } catch(SQLException ex) { ex.printStackTrace(); System.out.println("Closeing connection fail"+ex.getMessage()); throw ex;
} } public static void main(String[] args) throws Exception { connDB con=connDB.getNewInstance(); System.out.print(con.getDbType()); } }
|
相关推荐
在Java编程中,连接数据库并执行SQL语句是常见的任务,而`JDBC`(Java Database Connectivity)就是实现这一目标的接口和API。本篇将深入讲解如何在使用JDBC时,通过统一的方式设置SQL语句中的参数,提高代码的...
3. **Connection**: 表示与数据库的连接,提供了执行SQL语句和事务处理的方法。 4. **Statement**: 用于执行静态SQL语句的接口,支持基本的查询和数据操作。 5. **PreparedStatement**: 提供预编译的SQL语句,支持...
在处理大量数据时,JDBC的批处理功能可以显著提高效率,减少网络通信次数,并优化数据库操作。本文将详细阐述JDBC批处理的基本概念、优势以及如何在实际应用中使用。 一、批处理的概念 批处理是指一次性提交多个SQL...
Oracle官方JDBC Demo是Oracle公司提供的Java数据库连接(JDBC)示例代码,旨在帮助开发者理解和使用JDBC驱动程序与Oracle数据库进行交互。这个压缩包包含了一些基础到高级的JDBC操作实例,对于初学者和有经验的开发...
MySQL批处理是JDBC提供的一种优化数据库操作的方法,它允许开发者一次提交多个SQL语句,从而提高数据处理效率。本文将深入探讨JDBC在MySQL数据库中的应用,以及如何实现批处理操作。 首先,理解JDBC的基础知识至关...
JDBC支持事务处理,可以通过`Connection`对象的`setAutoCommit()`和`commit()`方法来控制事务的提交和回滚。 ```java conn.setAutoCommit(false); try { // SQL操作 conn.commit(); } catch (SQLException e) { ...
此版本的驱动程序支持最新的SQL标准,并提供了对多种数据库特性的广泛支持,如存储过程、事务处理、批处理操作等。 首先,JDBC Driver 3.0分为四种类型:Type 1、Type 2、Type 3和Type 4。在SQL Server JDBC中,...
在Java数据库连接(JDBC)中,增删改查(CRUD)操作是与数据库交互的基础,事务处理、批处理和预编译SQL语句则是提高效率和保证数据一致性的关键技术。以下是对这些概念的详细说明: 1. **JDBC增删改查(CRUD)**:...
批处理导入SQL文件是数据库管理中的一个重要操作,它主要用于高效地执行大量SQL语句,比如在数据迁移、数据库初始化或更新时。批处理通过合并多个SQL命令为一个单一的处理单元,可以显著提高数据处理速度,减少网络...
Java Database Connectivity (JDBC) 是Java平台中用于与数据库交互的一组接口和类,它是Java标准API的一部分,允许Java开发者执行SQL语句并处理结果。在处理大量数据时,JDBC提供了批处理功能,以提高性能和效率。...
JDBC支持事务处理,可以在一组操作中控制数据的原子性、一致性、隔离性和持久性。通过`Connection`对象的`setAutoCommit(false)`禁用自动提交,然后手动调用`commit()`或`rollback()`。 8. **错误处理**: 在实际...
标题“sqljdbc.sqljdbc4.rar”指的是一个包含SQL Server JDBC驱动的压缩文件,其中可能包含了“sqljdbc.jar”和“sqljdbc4.jar”这两个版本的驱动。这些驱动是微软为Java应用程序提供连接到Microsoft SQL Server...
SQLJDBC驱动程序允许Java开发者使用标准的JDBC API来执行SQL语句、处理结果集、事务管理和数据库连接管理。这些驱动程序在Java应用服务器、Web应用,如JSP(JavaServer Pages)中特别有用,因为它们提供了跨平台的...
SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的一种重要方式。JDBC(Java Database Connectivity)是Java API,允许Java应用程序通过Java虚拟机(JVM)与各种数据库建立连接。在...
在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...
在Java数据库连接(Java Database Connectivity, JDBC)中,批处理是一项重要的功能,它允许开发者一次性提交多个SQL语句,从而提高数据处理的效率和性能。批处理是数据库操作中的优化手段,尤其在处理大量数据时,...
jdbcDemo.sql
jdbcdemo.sql
JDBC 批量处理语句是指使用 JDBC 连接数据库时,批量执行 SQL 语句的方法。这种方法可以大大提高更新处理速度,减少数据库访问次数,提高应用程序的性能。 在 JDBC 中,批量处理语句包括两个方法:addBatch(String)...
该驱动提供了全面的SQL Server功能,包括事务管理、批处理、预编译语句等。 2. **SQLJDBC4**: 这是SQLJDBC的一个升级版,同样遵循JDBC Type 4规范,它增加了对Java SE 6的支持,并包含了对SSL加密连接的改进,增强...