JAVA中把ResultSet转换成LIST
项目中老是遇到数据库异常关闭的情况,真烦,
想用hibernate呢,那个玩意儿又太笨重,感慨C#和PHP的舒适方便性,模拟TP写了个数据处理层,将就用着先
代码里有很多项目中的东西,不要直接COPY了。。。了解实现方法就行了 /**
* @模拟TP数据操作基类框架
* @author 牛牛 Q 184377367
* @20131218
*/ package Model; import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import xqlbsw.DB;
import xqlbsw.DataFactory;
import lib.DBC; public class ModelBase { public String table;
public DBC db = null;
public String where = "";
public String Field = ""; public Boolean Delete() throws Exception { String dbChar = "delete " + this.table + " where " + this.where;
DataFactory.GDO().Update(dbChar);
DataFactory.GDO().free();
return true; } public ModelBase table(String t) {
this.table = t;
return this;
} public ModelBase Field(String s) {
this.Field = s;
return this;
} public ModelBase Where(String s) {
this.where = s;
return this;
} public List Select() throws SQLException { if (this.Field == "") {
this.Field = "*";
}
String dbChar = "select " + this.Field + " from " + this.table;
if (this.where != "") {
dbChar += " where " + this.where + "";
} List list = this.toList(DataFactory.GDO().getCrmResult(dbChar));
DataFactory.GDO().free();
return list; } public List toList(ResultSet rs) {
List list = new ArrayList();
try {
// 获取数据库表结构
ResultSetMetaData meta = rs.getMetaData();
Object obj = null;
String clsName = this.getClass().getName();
String aryClassName[] = clsName.split("\\."); while (rs.next()) {
// 获取formbean实例对象
obj = Class.forName(
"Domain." + aryClassName[(aryClassName.length) - 1])
.newInstance();
// 循环获取指定行的每一列的信息
for (int i = 1; i <= meta.getColumnCount(); i++) {
// 当前列名
String colName = meta.getColumnName(i);
// 将列名第一个字母大写(为什么加+""呢?为了把char类型转换为String类型。replace的参数是String类型。)
colName = colName.replace(colName.charAt(0) + "",
new String(colName.charAt(0) + "").toUpperCase());
// 设置方法名
String methodName = "set" + colName;
// 获取当前位置的值,返回Object类型
Object value = rs.getObject(i);
// 利用反射机制,生成setXX()方法的Method对象并执行该setXX()方法。
Method method = obj.getClass().getMethod(methodName,
value.getClass());
method.invoke(obj, value);
}
list.add(obj);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
return list;
}
} }
JAVA中把ResultSet转换成LIST的更多相关文章
- java中汉字自动转换成拼音
java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...
- Java中windows路径转换成linux路径等工具类
项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...
- Java中的List转换成JSON报错(五)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanu ...
- Java中的List转换成JSON报错(四)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/colle ...
- Java中的List转换成JSON报错(二)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/loggi ...
- Java中的List转换成JSON报错(一)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/ ...
- Java中的List转换成JSON报错(三)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher a ...
- java中的时区转换
目录 java中的时区转换 一.时区的说明 二.时间的表示 三.时间戳 四.Date类和时间戳 五.java中的时区转换 java中的时区转换 一.时区的说明 地球表面按经线从东到西,被划成一个个区域 ...
- Java将ip字符串转换成整数的代码
下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...
随机推荐
- linux去掉svn里记住的用户名密码
去掉svn里记住的用户名密码 删除掉 c:\Documents and Settings\administrator\ApplicationData\Subversion\auth\svn.sim ...
- Java-----Excel转HTML
尽管是转别人的(忘了哪转过来的了),但此处标为原创不是为了提高訪问量,也不是为了其它.仅仅是纯粹的认为有实际用途.希望能给很多其它有此需求的人看到并能帮到他们就足够了 所需jar包:jxl.jar p ...
- 设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类
1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式. 在它的核心结构中仅仅包括一个被称为单例类的特殊类. 通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问.从而方便对实例个 ...
- php curl模拟post请求提交数据样例总结
在php中要模拟post请求数据提交我们会使用到curl函数,以下我来给大家举几个curl模拟post请求提交数据样例有须要的朋友可參考參考.注意:curl函数在php中默认是不被支持的,假设须要使用 ...
- Process Node.js 进程
Process 进程 process.argv 是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数. process.stdout 标准输出流 co ...
- Java 中的resultset详解
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
- Hibernate工作流程
Hibernate创建步骤 (五大核心接口:Configuration/SessionFactory/Session/Transaction/Query) 1.新建工程,导入需要的jar包. 2.利用 ...
- 对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。
在程序中调用C++链接库中的回调函由于没有考虑生命周期,直接写委托回随机的被gc给回收掉导致报这个错误 错误的程序: private void InitPlateIdentify() { try { ...
- WebApi服务
WCF 它利用TCP.HTTP.MSMQ等传输协议构建“契约先行”的服务.WCF最初为基于SOAP的服务而设计[xml],繁琐.冗余.慢.沉重 WebApi 基于http协议,轻量级的,支持URL路由 ...
- Java和JavaScript的时间互传
原创文章,转载请注明:Java和JavaScript的时间互传 By Lucio.Yang 1.从JavaScript到Java JavaScript: function query(){ var s ...