2008-07-04
common dbutils 笔记
Dbutil是一个非常小的类包, 无需花费太多时间去阅读它的doc, 核心类(接口)为QueryRunner 和ResetSetHandler。
ResetSetHandler 的实现类有很多种, 涉及数组, map , javabean, 等等, 所有的实现类都接受一个RowProcessor类型的参数来实现数据列向对象的转化。其中RowProcessor的默认实现类为BasicRowProcessor, 用户也可以自己实现RowProcessor。
BasicRowProcessor使用BeanProcessor来完成ResultSet中的值向JavaBean的映射。前提要求列名和bean属性名必须一致。
但是在大部分情况下,数据库的列名中常含有一个些特殊字符,这些字符在java命名规约中又不能使用,针对上述情况,有如下2种解决办法:
1)SQL语句中使用as 。 如 select Na#me as name;
2) 继承BeanProcessor并覆盖mapColumnsToProperties()以便跳过那些违背java命名规约的字符。
BeanProcessor.java
public Object toBean(ResultSet rs Class type) {
//确定column要转化成的类型,并以数组形式存储。
mapColumnToProperties();
//组装bean并返回
createBean() {
// 依照前面数组中存储的形式,将column进行相应的转化
processColumn()
//运用反射 设值
callSetter()
}
}
ResetSetHandler 的实现类有很多种, 涉及数组, map , javabean, 等等, 所有的实现类都接受一个RowProcessor类型的参数来实现数据列向对象的转化。其中RowProcessor的默认实现类为BasicRowProcessor, 用户也可以自己实现RowProcessor。
BasicRowProcessor使用BeanProcessor来完成ResultSet中的值向JavaBean的映射。前提要求列名和bean属性名必须一致。
但是在大部分情况下,数据库的列名中常含有一个些特殊字符,这些字符在java命名规约中又不能使用,针对上述情况,有如下2种解决办法:
1)SQL语句中使用as 。 如 select Na#me as name;
2) 继承BeanProcessor并覆盖mapColumnsToProperties()以便跳过那些违背java命名规约的字符。
BeanProcessor.java
public Object toBean(ResultSet rs Class type) {
//确定column要转化成的类型,并以数组形式存储。
mapColumnToProperties();
//组装bean并返回
createBean() {
// 依照前面数组中存储的形式,将column进行相应的转化
processColumn()
//运用反射 设值
callSetter()
}
}
发表评论
- 浏览: 8701 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Click framework 的 Page ...
继续~~加油
-- by avaj -
Click framework 导言(一 ...
Tapestry 5 我还没用过 , 有空去看下
-- by congpeixue -
Click framework 导言(一 ...
这个不就是有点模仿Tapestry么?它有一个极大的缺陷:页面的呈现完几乎使用j ...
-- by rrrrutdk -
Click framework 快速入门 ...
对的啊 , 是一个框架, 引用Click is a simple JEE we ...
-- by congpeixue -
Click framework 快速入门 ...
click jee framework 是一个J2EE框架吧?我都没有听说过.
-- by qichunren






评论排行榜