1. 项目中老是遇到数据库异常关闭的情况,真烦,
  1. 想用hibernate呢,那个玩意儿又太笨重,感慨C#和PHP的舒适方便性,模拟TP写了个数据处理层,将就用着先
    代码里有很多项目中的东西,不要直接COPY了。。。了解实现方法就行了
  2.  
  3. /**
  4. * @模拟TP数据操作基类框架
  5. * @author 牛牛 Q 184377367
  6. * @20131218
  7. */
  8.  
  9. package Model;
  10.  
  11. import java.lang.reflect.Method;
  12. import java.sql.ResultSet;
  13. import java.sql.ResultSetMetaData;
  14. import java.sql.SQLException;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. import xqlbsw.DB;
  19. import xqlbsw.DataFactory;
  20. import lib.DBC;
  21.  
  22. public class ModelBase {
  23.  
  24. public String table;
  25. public DBC db = null;
  26. public String where = "";
  27. public String Field = "";
  28.  
  29. public Boolean Delete() throws Exception {
  30.  
  31. String dbChar = "delete " + this.table + " where " + this.where;
  32. DataFactory.GDO().Update(dbChar);
  33. DataFactory.GDO().free();
  34. return true;
  35.  
  36. }
  37.  
  38. public ModelBase table(String t) {
  39. this.table = t;
  40. return this;
  41. }
  42.  
  43. public ModelBase Field(String s) {
  44. this.Field = s;
  45. return this;
  46. }
  47.  
  48. public ModelBase Where(String s) {
  49. this.where = s;
  50. return this;
  51. }
  52.  
  53. public List Select() throws SQLException {
  54.  
  55. if (this.Field == "") {
  56. this.Field = "*";
  57. }
  58. String dbChar = "select " + this.Field + " from " + this.table;
  59. if (this.where != "") {
  60. dbChar += " where " + this.where + "";
  61. }
  62.  
  63. List list = this.toList(DataFactory.GDO().getCrmResult(dbChar));
  64. DataFactory.GDO().free();
  65. return list;
  66.  
  67. }
  68.  
  69. public List toList(ResultSet rs) {
  70. List list = new ArrayList();
  71. try {
  72. // 获取数据库表结构
  73. ResultSetMetaData meta = rs.getMetaData();
  74. Object obj = null;
  75. String clsName = this.getClass().getName();
  76. String aryClassName[] = clsName.split("\\.");
  77.  
  78. while (rs.next()) {
  79. // 获取formbean实例对象
  80. obj = Class.forName(
  81. "Domain." + aryClassName[(aryClassName.length) - 1])
  82. .newInstance();
  83. // 循环获取指定行的每一列的信息
  84. for (int i = 1; i <= meta.getColumnCount(); i++) {
  85. // 当前列名
  86. String colName = meta.getColumnName(i);
  87. // 将列名第一个字母大写(为什么加+""呢?为了把char类型转换为String类型。replace的参数是String类型。)
  88. colName = colName.replace(colName.charAt(0) + "",
  89. new String(colName.charAt(0) + "").toUpperCase());
  90. // 设置方法名
  91. String methodName = "set" + colName;
  92. // 获取当前位置的值,返回Object类型
  93. Object value = rs.getObject(i);
  94. // 利用反射机制,生成setXX()方法的Method对象并执行该setXX()方法。
  95. Method method = obj.getClass().getMethod(methodName,
  96. value.getClass());
  97. method.invoke(obj, value);
  98. }
  99. list.add(obj);
  100. }
  101. } catch (Exception ex) {
  102. ex.printStackTrace();
  103. } finally {
  104. return list;
  105. }
  106. }
  107.  
  108. }

JAVA中把ResultSet转换成LIST的更多相关文章

  1. java中汉字自动转换成拼音

    java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...

  2. Java中windows路径转换成linux路径等工具类

    项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...

  3. Java中的List转换成JSON报错(五)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanu ...

  4. Java中的List转换成JSON报错(四)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/colle ...

  5. Java中的List转换成JSON报错(二)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/loggi ...

  6. Java中的List转换成JSON报错(一)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/ ...

  7. Java中的List转换成JSON报错(三)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher a ...

  8. java中的时区转换

    目录 java中的时区转换 一.时区的说明 二.时间的表示 三.时间戳 四.Date类和时间戳 五.java中的时区转换 java中的时区转换 一.时区的说明 地球表面按经线从东到西,被划成一个个区域 ...

  9. Java将ip字符串转换成整数的代码

    下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...

随机推荐

  1. ruby简单的基础 5

    方法和代码块 在Ruby中.{}或do...end之间的代码是一个代码块.代码块只能出如今一个方法的后边,它紧接在方法最后一个參数的同一行上,一般由yieldkeyword调用代码块中的代码. 方法是 ...

  2. HDU1963 && POJ2063:Investment(完全背包)

    Problem Description John never knew he had a grand-uncle, until he received the notary’s letter. He ...

  3. VS2010 打包问题汇总

    问题1:打包时:应将msadox28.tlb排除 ,受到windows系统文件保护 解决方案:文件选项上,选择排除即可. 问题2:路径有文件,生成报错,提示找不到文件或文件被锁定. 解决方案:文件被锁 ...

  4. Truncate Delete 用法

    Truncate /Delete  Table 1.含义上都是删除表全部记录 2.Truncate 是属于数据定义语言,系统不会写每一笔记录操作事务日志,无法恢复记录数据的操作 Truncate Ta ...

  5. 基于HTTP协议下载文件的实现

    最近在开发文件下载的程序,该程序是基于HTTP开发的. 首先是了解了文件传输到客户端的大概格式,然后分析该格式,实现写入文件的功能. 自己构造的HTTP包如下: GET /*********.rar ...

  6. Chrome NativeClient创建 (转)

    Chrome NativeClient创建 该demo目标是让chrome扩展启动本地exe 1创建一个名叫nativeMsgDemo的控制台程序 #include <Windows.h> ...

  7. Java中的变量与变量的作用域

    关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标 ...

  8. ThinkPHP第二十一天(JQuery元素获取,parents属性,toggle方法,确认弹出对话框使用)

    1.JQuery用法 A:$(function(){code...});表示当页面载入完毕后执行 B:获取元素方法:根据class名称 $('.classname'),根据ID名称 $('#IDnam ...

  9. ThinkPHP中的CURD操作

    <?php //查询多条记录,返回二维数组 $result = M("admin")->select(); $result = M("admin") ...

  10. linux 使用者管理

    1.用户标识符 UID  用户ID GID  用户组ID 2./etc/passwd 文件结构 id范围:0系统管理员|1~499 (系统账号)|500~65535 可登录账号