继承AbstractListHandler实现自己的 MapListHandler方法
来源:互联网 发布:网络好声音视频 编辑:程序博客网 时间:2024/05/17 02:44
好久没来更新博客了,最近一直在忙乎一些乱七八糟的东西.郁闷,邮政那个从去年做到了现在,一直在催,而我这边又抽不出手,就算抽出空,但静不下心,看到就烦.
之前一直在使用 Apache DbUtils 包,1.4版本新增的异步查询还不错,现 在就说说它提供的MapListHandler类,它默认是交给 BasicRowProcessor类的 toMap处理,可toMap方法执行,然后返回一个Map,问题就出在这个toMap方法里面,它里面是这样写的:
result.put(rsmd.getColumnName(i), rs.getObject(i)); //这里直接用getObject取出值.
在表中有字段是Number(10,2)类型的,它的值是xx.00,由于使用getObject()直接取出值,小数点后面的值就给抹去了,可老大说要显示它后面的二个小数值._ _,没找到,就自己继承AbstractListHandler实现了一个类。
/***自定义的类*/public class MyMapListHandler extends AbstractListHandler<map> { private static ConvertToMap convert; //数字格式化 private static java.text.DecimalFormat df =new java.text.DecimalFormat("0.00"); public MyMapListHandler() { if (CheckUtil.CheckNull(convert)) { convert = new ConvertToMap(); } } @Override protected Map handleRow(ResultSet rs) throws SQLException { return convert.toMap(rs); } private class ConvertToMap extends BasicRowProcessor { @Override public Map toMap(ResultSet rs) throws SQLException { Map result = new HashMap(); ResultSetMetaData rsmd = rs.getMetaData(); int cols = rsmd.getColumnCount(); for (int i = 1; i <= cols; i++) { result.put(rsmd.getColumnName(i), getTypeValue(rsmd, rs, i)); } return result; } } //在这个方法中格式化数字 private Object getTypeValue(ResultSetMetaData rsmd, ResultSet rs, int index) throws SQLException { Object result = null; int type = rsmd.getColumnType(index);//得到字段类型 switch (type) { case Types.NUMERIC: case Types.FLOAT: case Types.DOUBLE: case Types.INTEGER: int scale=rsmd.getScale(index);//如果有小数点,则格式化,否则取它的整数 if(scale>0){ result=df.format(rs.getDouble(index)); }else{ result=rs.getInt(index); } break; default: result = rs.getObject(index); break; } return result; }}
在调用处:private static AsyncQueryRunner query=new AsyncQueryRunner(Executors.newCachedThreadPool()); data =query.query(getConnnnects(), sql,new MyMapListHandler() ,obj).get(MyUtils.getIntFromStr(pro.getValue("qt")),TimeUnit.SECONDS); new MyMapListHandler()就OK了.
- 继承AbstractListHandler实现自己的 MapListHandler方法
- MapListHandler()
- 继承PageBookView实现自己的“属性视图”
- 继承PageBookView实现自己的“属性视图”
- javascript实现继承的方法
- js的继承实现方法
- js实现继承的方法
- JavaScript实现继承的方法
- Javascript实现继承的方法
- 自己实现的parseInt方法
- JS的Call方法实现的继承
- Net如何继承IDisposable接口,实现自己的Dispose()函数
- 自己写PHP扩展之实现类的继承
- 继承SQLiteOpenHelper类实现自己的SQLite数据库操作
- 自定义BaseDialog,继承BaseDialog实现自己想要的功能。
- javascript实现类似java的继承,单个方法继承
- JavaScript中的继承以及实现继承的几种方法
- JavaScript 实现继承的六种方法
- 如何安装交叉工具链arm-linux-gcc
- Exteernal table ORA-29913,ORA-30653,KUP-01005
- 非阻塞算法在并发容器中的实现
- combiner学习要点
- 深入理解Oracle Exadata
- 继承AbstractListHandler实现自己的 MapListHandler方法
- javaScript学习笔记 No.1 -- DOM
- 仿人人客户端向右滑出式菜单
- jxl實現的解析与生成xls文件
- UILabel
- js获取浏览器高度和宽度值(多浏览器)
- JAVA实现图片大小的改变
- 容器的通用操作
- Android-安全退出