`
xurichusheng
  • 浏览: 346254 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JDBC公共操作方法(四):【查询】、【增、删、改】和【调用存储过程】的公共方法 02

 
阅读更多

/**
	 * @Title: operate
	 * @Description: 增、删、改的公共操作方法
	 * @param sql
	 *            : 操作语句
	 * @param params
	 *            : 操作条件
	 * @return
	 * @author
	 * @date 2011-12-29
	 */
	public int operate(String sql, String[] params) {

		// 进行数据库操作时,受影响的行数
		int affectedRows = -1;

		if (null == sql || "".equals(sql.trim())) {
			LOG.error("The sql is null, return.");
			return affectedRows;
		}

		// 获取数据库连接
		Connection connection = JDBCUtil.getInstance().getConnection();

		if (null == connection) {
			LOG.error("The database connction is null, return.");
			return affectedRows;
		}

		PreparedStatement ps = null;

		try {
			// 不允许自动提交事务
			connection.setAutoCommit(false);

			/*
			 * 设置事务隔离级别. 指示不可以发生脏读和不可重复读的常量;虚读可以发生
			 */
			connection
					.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
		} catch (SQLException e) {
			LOG.error("set connectin properties faile!", e);
			return affectedRows;
		}

		try {
			ps = connection.prepareStatement(sql);
			int len = params == null ? 0 : params.length;
			int position = 1;

			for (int i = 0; i < len; i++) {
				if (null != params[i] && 0 != params[i].trim().length()) {
					position = i + 1;
					try {
						ps.setString(position, params[i]);
					} catch (Exception e) {
						LOG.error("set String property faile!", e);
						Reader reader = new BufferedReader(new StringReader(
								params[i]));
						try {
							ps.setCharacterStream(position, reader,
									params.length);
						} catch (Exception ex) {
							LOG.error("set characterStream faile!", ex);
						} finally {
							// 关闭流
							IOUtil.closeReader(reader);
						}
					}
				}
			} /* end of for(...) */

			// 执行sql语句,并返回受影响的行数
			affectedRows = ps.executeUpdate();

			// 提交事务
			connection.commit();

		} catch (SQLException e) {
			LOG.error("JDBCCore:=>operate:SQLException!", e);
			JDBCUtil.rollback(connection);
		} catch (Exception e) {
			LOG.error("JDBCCore:=>operate:Exception!", e);
			JDBCUtil.rollback(connection);
		} finally {
			JDBCUtil.close(connection, null, ps);
		}
		return affectedRows;
	}
 
分享到:
评论

相关推荐

    jdbc调用存储过程实现增删改查

    本文将深入探讨如何使用JDBC调用Oracle数据库的存储过程来实现增删改查操作。 首先,理解JDBC是Java与各种数据库交互的桥梁,它提供了一组API,允许程序员执行SQL语句并处理结果。Oracle数据库则是一种广泛使用的...

    JDBC调用存储过程

    本文将详细讲解如何使用JDBC来调用存储过程,以实现数据的增删改查操作。 首先,理解存储过程是数据库中的一个重要概念。存储过程是一组预先编译好的SQL语句集合,它可以包含控制流语句、输入/输出参数,甚至可以有...

    Struts2 JDBC 增删改查

    总的来说,这个"Struts2 JDBC 增删改查"项目涵盖了Web应用的基本数据管理功能,涉及到Struts2框架的配置、Action设计、JDBC操作以及前后端交互等多个方面。通过学习和实践这个项目,开发者能够更好地理解和掌握Java ...

    JDBC 调用存储过程方法

    在数据库管理中,Java应用程序经常需要与数据库进行交互,执行SQL语句以及调用存储过程。...在实际开发过程中,结合具体的数据库管理系统文档,可以更深入地理解和应用JDBC调用存储过程的各种细节。

    JDBC实现Oracle数据库的增删改查

    在实际开发中,为了提高代码的可读性和可维护性,通常会使用连接池(如C3P0、HikariCP等)管理数据库连接,并使用DAO(Data Access Object)模式封装JDBC操作。 此外,对于大量数据的操作,考虑使用批处理,可以...

    使用jdbc创建和调用触发器实现增删改查

    本教程将详细讲解如何使用JDBC来创建和调用Oracle数据库中的触发器,以实现增(Insert)、删(Delete)、改(Update)和查(Select)操作。 首先,触发器是数据库中的一种特殊类型的存储过程,它在特定的数据库事件...

    java调用oracle存储过程入门实例 增删改查

    总结来说,这个入门实例涵盖了使用Java通过JDBC调用Oracle存储过程进行CRUD操作的基本流程,以及利用DOM4J解析XML配置文件和`ThreadLocal`管理数据库连接的方法。这样的设计使得程序更加模块化,易于维护,同时也...

    jdbc实现增删改查.rar

    本项目“jdbc实现增删改查.rar”就是通过jQuery EasyUI和原生JDBC来实现数据库的CRUD(Create、Read、Update、Delete)操作,并且包含了分页显示的功能。 首先,让我们深入了解JDBC。JDBC提供了一组接口和类,允许...

    jdbc+servlet增删改查

    在这个项目中,开发者利用JDBC与Servlet实现了对数据库的增(Add)、删(Delete)、改(Update)和查(Query)这四个基本操作。以下是对这些知识点的详细说明: 1. JDBC(Java Database Connectivity): JDBC是...

    java调用存储过程实现增删改查小程序

    本文将深入探讨如何使用Java来实现对数据库的增、删、改、查(CRUD)操作,通过存储过程来提高程序效率。 首先,我们需要了解存储过程的概念。存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以接受输入...

    JDBC连接MySql数据库+增删改查+分页+DWR增删改查 分页

    它允许Java应用程序通过编写Java代码来执行SQL语句,实现数据的增、删、改、查操作。在本项目中,JDBC被用来建立Java应用程序与MySQL数据库之间的连接,执行SQL查询和事务处理。JDBC的主要步骤包括加载驱动、建立...

    jdbc+jsp实现书籍的增删改查项目

    综上所述,"jdbc+jsp实现书籍的增删改查项目"涵盖了数据库操作、网页动态生成、用户交互等多个核心知识点,是学习Web开发和数据库管理的绝佳实践案例。通过这样的项目,开发者能够深入理解JDBC和JSP的用法,以及如何...

    SSM练手:增删改查

    这个项目主要是为了实践SSM框架的基础功能,即对数据进行增(Add)、删(Delete)、改(Update)和查(Query)操作。虽然没有涉及UI界面的美化,但这个练习对于理解和掌握SSM框架的基本工作流程至关重要。 首先,让...

    jdbc调用存储过程 函数例子

    本文将详细阐述如何通过JDBC在Java程序中调用存储过程和函数,并提供一个实际的例子。 ### 1. JDBC概述 JDBC是Java API,它提供了统一的接口来访问不同类型的数据库。通过JDBC,开发者可以进行数据库连接、执行SQL...

    jdbc基本操作增删改查-oracle

    本篇文章将详细讲解如何使用JDBC进行Oracle数据库的增删改查操作。 ### 1. JDBC驱动与连接 首先,我们需要在项目中引入Oracle的JDBC驱动,通常为ojdbc.jar。当项目运行时,通过`Class.forName()`加载驱动,然后...

    java调用oracle存储过程实现增删改查

    本文将详细介绍如何在Java中实现对Oracle存储过程的调用,以执行增删改查(CRUD)操作。 首先,确保你已安装了Oracle JDBC驱动(如ojdbc.jar),并将它添加到Java项目的类路径中。Oracle JDBC驱动提供了与Oracle...

    ssm简单的增删改查(初学者)

    SSM框架,全称Spring、Spring MVC和MyBatis,是Java Web开发中常用的一种集成框架,用于构建高效、灵活的Web应用程序。这个压缩包文件的内容可能...通过实践这样的增删改查案例,可以加深对SSM框架和数据库操作的理解。

    java实现增删改查使用Oracle数据库

    四、增删改查操作 1. 插入(Insert):使用PreparedStatement的executeUpdate()方法插入新数据。 2. 删除(Delete):同样使用executeUpdate()方法,根据指定条件删除数据。 3. 更新(Update):更新已有记录,执行...

    JSP+JDBC增删改查操作

    在Web项目开发中,"JSP+JDBC增删改查操作"是一个常见的技术组合,用于构建动态数据驱动的网页应用。JSP(JavaServer Pages)是Java平台上的服务器端脚本语言,它允许开发者在HTML页面中嵌入Java代码,以实现动态内容...

Global site tag (gtag.js) - Google Analytics