如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中
来源:互联网 发布:js replace . 编辑:程序博客网 时间:2024/05/16 07:32
我们知道在使用EasyUI时,它只认JSON,所以封装JSON显得尤为重要。在操作数据库的时候,通常为了简化JDBC,我们通常会使用DBUtil,那么DBUtil中有个方法,例如:
如果只是使用简单的JDBC,返回的结果是ResultSet,那么ResultSet有相应的rs.getMetaData();方法,这其中就有getColumnName(column)方法获得属性名,获取属性名对应的属性值也很简单,只需要rs.getObject();即可。
List<Grade> list = (List<Grade>) runner.query(sql.toString(),new BeanListHandler(Grade.class), params);
这里的runner.query()方法返回的就是List,这是如果我们想把这个List中的数据封装到JSONArray中,分别需要:表中的属性名,和属性名对应的属性值。
为了让这个封装方法具有通用性,这里引入泛型与反射,构成静态方法,充作工具类使用。
/** * * @param list 外面传进来的list集合 * @param clazz 为了获取属性名,传进来一个class * @return 返回JSONArray */public static <T> JSONArray formatRsToJsonArray(List<T> list,Class<T> clazz ) {try {//首先创建一个JSONArray对象JSONArray jsonArray = new JSONArray();//获取List迭代器Iterator it = list.iterator();while(it.hasNext()){//新建一个JSONOBject//先将获取到的一条记录存入JSONObject中JSONObject o = new JSONObject();Field [] fs = clazz.getDeclaredFields();//获取传进来的class的所有属性Object object = it.next(); //记录迭代器的下一个记录for (int i = 0; i < fs.length; i++) {fs[i].setAccessible(true);//强暴遍历到的属性,以获取私有属性Field f = object.getClass().getDeclaredField(fs[i].getName()); //根据强暴到的属性名再次获取属性f.setAccessible(true); //强暴,获取私有属性String name = fs[i].getName(); //得到属性名Object value = f.get(object);//得到属性名对应的属性值 o.put(name, value); //将属性名和属性值分别作为Key、value存入JSONObject中}jsonArray.add(o); //最后将JSONObject加入JSONArray中}return jsonArray; //返回JSONArray} catch (Exception e) {throw new RuntimeException(e);}}
如果只是使用简单的JDBC,返回的结果是ResultSet,那么ResultSet有相应的rs.getMetaData();方法,这其中就有getColumnName(column)方法获得属性名,获取属性名对应的属性值也很简单,只需要rs.getObject();即可。
这里如果返回的List,就需要采用我这里的方法了,也算个封装吧。用到了点泛型、反射。
0 0
- 如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中
- BeanListHandler:(常用)将多条记录封装到一个装有JavaBean的List集合中;MapHandler: 将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是
- js获取返回jsonArray中最后一个对象的id
- dbutils中使用BeanListHandler时发生的错误
- 将一个jsonArray添加到另一个jsonarray中
- [VB.NET]请问如何将从数据库提出来的一列数据存入一个数组中?
- 如何通过PowerShell将一个Site Collection从Default Content Database中转移到其他的Content Database中?
- 如何将xml文件存入oracle 的xmltype类型中
- 如何将以选择好的文本存入剪切板中。
- 如何将批量的数据存入SQL数据库中
- SSH使用QBC查询时无法将查处的集合存入实体集合中,而是返回Object[]
- 如何将图片存入数据库中
- 如何将图片存入数据库中
- 使用adatabase将打开的数据库名称存入数组中
- 将HashMap中value值存入List中
- java 中如何使用 json 和jsonArray
- 在struts2 中 JSONArray.fromObject转化字符串的一个特殊用法,直接返回值
- 如何通过PowerShell将一个Site Collection从Default Web Application中转移到另一个Web Application中?
- usc@1113:奖学金
- ACM-BFS之Open the Lock——hdu1195(双向BFS)
- 关于StoryBoard拖控件与NSNotificationCenter的使用
- UISearchBar控件!
- winform下载文件
- 如何将DBUtil中使用BeanListHandler中转返回的List存入一个JSONArray中
- 【wikioi】1166矩阵取数游戏
- 大陆IP无法登录?
- java web初学日志
- find 和 grep 的结合使用
- 【转】任务映像已损坏或篡改(异常来自HRESULT:0x80041321)
- MyEclipse常用的快捷键
- ubuntu下文件颜色代表意思
- 水仙花数