今天对JDBC进行了小小的封装
传入任意查询 SQL 语句,以表格的形式返回查询结果:
public class DB
{
Connection conn;
PreparedStatement ps = null;
ResultSet rs = null;
StringBuilder result = new StringBuilder();
String[][] resultTable = null;
public DB() throws Exception{
}
public String[][] queryForList(String sqlStr) throws Exception
{
if (sqlStr == null || sqlStr == "")
throw new RuntimeException("缺少参数");
if (!sqlStr.startsWith("select"))
throw new RuntimeException("SQL语法错误");
sqlStr = sqlStr.trim().replaceAll(";", "");
//计算行数
String countStr = "select count(*) from ( " + sqlStr + " )";
conn = DBUtil.getConnection();
ps = conn.prepareStatement(countStr);
rs = ps.executeQuery();
int rowCount = 0;
if (rs.next())
rowCount = rs.getInt(1) + 1;
// 计算列数
// 先提取select 和 from 之间的字符串
String tempStr = sqlStr;
tempStr = tempStr.substring("select".length(), tempStr.indexOf("from"));
String[] array = tempStr.split(",");
int colCount = array.length;
ps = conn.prepareStatement(sqlStr);
rs = ps.executeQuery();
resultTable = new String[rowCount][colCount];
resultTable[0] = tempStr.split(",");
int rows = 1;
while (rs.next())
{
int cols = 0;
while (true)
{
try
{
rs.getString(++cols);
}
catch (Exception e)
{
break;
}
}
String[] row = new String[cols-1];
for (int i = 1; i < cols ; i++)
{
row[i - 1] = rs.getString(i);
}
if (rows <rowCount)
resultTable[rows++] = row;
}
DBUtil.closeConnection(conn, ps, rs);
for(int i=0;i<resultTable.length;i++){
for(int j=0;j<resultTable[i].length;j++){
System.out.print(resultTable[i][j]+" ");
}
System.out.println();
}
return resultTable;
}
}
分享到:
相关推荐
这个"jdbc针对存储过程通用的jdbc封装.zip"文件很可能包含了一个Java库或示例代码,它对JDBC进行了封装,以简化调用数据库存储过程的过程。存储过程是预编译的SQL语句集合,它们在数据库服务器上执行,提供了性能...
spring-jdbc-4.0.0.RELEASE.jar这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。
这个封装类可能已经包含了对JDBC驱动的管理,包括加载驱动、建立连接、关闭连接等。 封装类的核心功能可能包括以下几个部分: 1. **连接管理**:创建并管理SQLite数据库的连接。这通常涉及`DriverManager.get...
总之,"JAVA的小小程序"和相关的JDBC简介及小试卷是Java学习道路上的重要资源。通过实践这些小程序和解答试卷,不仅可以巩固理论知识,还能提高实际编程技能,这对于任何Java开发者来说都是极其宝贵的。
4. 连接数据库,使用JDBC操作数据,如查询、插入、更新和删除。 5. 使用session和cookie来实现用户会话管理,保持用户登录状态。 6. 可能使用Ajax技术实现部分页面的异步更新,提高用户体验。 在开发过程中,通常还...
在SAE(新浪云应用引擎)环境中,对主从数据库的管理和封装是一个具有挑战性的任务,因为SAE是一个封闭的平台,它对开发者施加了一些特定的限制。本篇文章主要探讨如何在SAE中处理主从数据库连接的问题,并提供相关...
在Java开发中,Ibatis是一个流行的数据访问框架,它提供了比原生JDBC更为便捷的数据库操作方式。这个名为"Java封装ibatis操作数据库.rar"的压缩包文件,显然是一个包含有针对Ibatis进行DAO层封装的代码示例或者库。...
在"CommonLibJDK15(4hibernate)"这个子目录中,可能包含了支持Hibernate运行的公共库,如JDBC驱动、Hibernate核心库等。使用JDK15版本,说明此项目已经采用了较新的Java语言特性,如模块系统、增强的switch语句等,...
MyBatis是一个优秀的持久层框架,它对JDBC的操作数据库的过程进行封装,使开发者只需要关心业务逻辑,而不需要关心复杂的数据库访问细节。 MyBatis的优点 1. 简化了JDBC编程:MyBatis通过封装JDBC的操作,使开发者...
3. **数据访问**:与数据库交互的代码,可能使用JDBC(Java Database Connectivity)API,或者ORM框架如Hibernate或MyBatis来操作数据库。 4. **JavaBean**:`javaBean`文件通常包含表示业务对象的类,如`News`类,...
【正文】 本项目是一个基于JSP(JavaServer Pages)和JavaBean技术的网上书店系统,提供...通过对该项目的分析和学习,可以深入理解Web开发的基本流程,提升对JSP和JavaBean技术的理解,以及数据库设计和管理的能力。
总之,MyBatis 的事务管理机制是基于 JDBC 的简单封装,同时也支持与外部框架集成,以提供更加高效和灵活的事务处理方案。理解这些基本概念,可以帮助开发者更好地控制和调试应用程序的事务行为,避免数据不一致的...
这个jar 文件包含对ET对JDBC 数据访问进行封装的所有类。和事务访问数据库 5 et-common 这个jar 文件包含ET 框架基本的核心工具类。et 其它组件要都要使用到这个包里的类,是通用的...
3. **dbutils**: Apache Commons DBUtils是一个简单易用的数据库操作库,它提供了对JDBC的简单封装,可以简化数据库操作,例如执行SQL语句、处理结果集等。 4. **dom4j**: 这是一个Java文档对象模型库,主要用于XML...
在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,使得开发者能够通过SQL语句对存储在Hadoop集群上的大规模数据进行分析和处理。...
在JSP中,你可以将这些步骤封装到JavaBean或自定义标签库中,以提高代码复用性和可维护性。同时,为了更好的性能和安全性,建议使用连接池管理数据库连接,如Apache的DBCP或C3P0。 总的来说,“连接sqlserver2005的...
这就是SQL帮助类存在的原因,它封装了这些底层细节,使代码更简洁、易读。 一个典型的SQL帮助类通常包含以下功能: 1. **数据库连接管理**:提供连接池功能,如使用C3P0、HikariCP或Druid,以提高性能并减少资源...
它通过将SQL语句封装在XML配置文件中,并提供了一套简洁的API接口,简化了开发人员的操作步骤,提高了开发效率。 1. **ibatis为何出现?** - **背景需求**:在使用JDBC进行数据库操作时,开发者常常需要手动编写...
对于非关系型数据库(NoSQL)的支持,Mycat通过封装NoSQL API并基于JDBC来实现。这使得Mycat能够在Java应用中处理多种类型的数据库,包括文档型数据库MongoDB。 在Mycat 1.3版本中,已经实现了对MongoDB的支持。要...
在 Dao 类中,我们封装了对数据库的所有操作,使得业务代码无需直接与数据库打交道,从而降低了耦合度,提高了代码的可测试性和可维护性。在 "demo-dao-jdbc-master" 中,我们可能可以看到 Dao 接口及其具体的实现类...