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

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

 
阅读更多

JDBCCore

 

public final class JDBCCore {

	private static final Logger LOG = Logger.getLogger(JDBCCore.class);

	private static JDBCCore instance = new JDBCCore();

	private JDBCCore() {
	}

	/**
	 * @Title: getInstance
	 * @Description: 获取JDBCCore的实例,单例
	 * @return JDBCCore
	 * @author wenjianhai
	 * @date 2011-12-29
	 */
	public static JDBCCore getInstance() {
		return instance;
	}

	/**
	 * @Title: query
	 * @Description: 公共查询操作
	 * @param sql
	 *            : 查询语句
	 * @param params
	 *            : 查询条件
	 * @return
	 * @author wenjianhai
	 * @date 2011-12-29
	 */
	public String[][] query(String sql, String[] params) {

		if (null == sql || "".equals(sql.trim())) {
			LOG.error("The sql is null, return.");
			return null;
		}
		// 获取数据库连接
		Connection connection = JDBCUtil.getInstance().getConnection();

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

		PreparedStatement ps = null;
		ResultSet rs = null;
		String[][] result = null;

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

			for (int i = 0; i < len; i++) {
				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(...) */
			// 获取查询结果集
			rs = ps.executeQuery();
			// 返回此 ResultSet 对象中的列数
			int cols = rs.getMetaData().getColumnCount();

			List<String[]> rows = new ArrayList<String[]>(10);
			String[] rowValue = null;
			int i = 0;

			while (rs.next()) {

				rowValue = new String[cols];

				for (i = 0; i < cols; i++) {
					rowValue[i] = rs.getString(i + 1);
				}
				rows.add(rowValue);
			}

			result = new String[rows.size()][cols];

			rows.toArray(result);

			if (!rows.isEmpty()) {
				rows.clear();
			}

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

相关推荐

    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的用法,以及如何...

    j2ee07:jdbc01:Properties对象、四大参数、批量删除、基本的增删改查

    本文将深入探讨“j2ee07:jdbc01”主题中的几个关键概念,包括Properties对象的使用、JDBC的四大参数、批量删除操作以及基本的增删改查(CRUD)操作。 首先,Properties对象在JDBC中扮演着重要角色。它是Java.util....

    SSM练手:增删改查

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

    jdbc调用存储过程 函数例子

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

    jdbc-servlet-jsp01-实现登录-增删改查

    jsp01-实现登录-增删改查"中,我们将探讨如何使用Java的JDBC(Java Database Connectivity),Servlet和JSP(JavaServer Pages)技术来构建一个完整的Web应用程序,主要功能包括用户登录以及对数据进行增、删、改、...

    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框架和数据库操作的理解。

Global site tag (gtag.js) - Google Analytics