SQL查询数据封装JavaBean对象
来源:互联网 发布:苹果电脑图片浏览软件 编辑:程序博客网 时间:2024/06/05 20:03
public static List getListBySql(String sql, Class cls){
List list = new ArrayList();
Connection connection =null;
Statement stmt =null;
ResultSet rs =null;
try {
connection = getConnection();
stmt = connection.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
Object obj = getObject(rs, cls);
list.add(obj);
}
}catch (Exception e) {
e.printStackTrace();
String sWord = " sql:" + sql;
sWord += " 错误信息:" + e.getLocalizedMessage();
PayMd5Utils.logResult(logpath,sWord);
throw new RuntimeException("#执行出错:"+e.getLocalizedMessage());
}finally{
closeResultSet(rs);
closeStatement(stmt);
closeConnection(connection);
}
return list;
}
private static Object getObject(ResultSet rs, Class cls) throws SQLException, IllegalArgumentException, IllegalAccessException, InstantiationException {
Object object = null;
Field[] fields = cls.getDeclaredFields();
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnName(i);
Field field = getField(fields, columnName);
if (field != null) {
if (object==null) {
object=cls.newInstance();
}
field.setAccessible(true);
Object value = rs.getObject(field.getName());
setFieldValue(object, value, field);
}
}
return object;
}
private static Field getField(Field[] fields, String columnName) {
for (Field field : fields) {
if (columnName.toUpperCase().equals(field.getName().toUpperCase())) {
return field;
}
}
return null;
}
private static void setFieldValue(Object obj, Object value, Field field)
throws IllegalArgumentException, IllegalAccessException {
if (value == null) {
return;
}
if (field.getType() == Long.class) {
field.set(obj, StringUtil.toLong(value));
} else if (field.getType() == Double.class) {
field.set(obj, StringUtil.toDouble(value));
} else if (field.getType() == Integer.class) {
field.set(obj, StringUtil.toInteger(value));
} else if (field.getType() == Date.class) {
field.set(obj, new Date());
} else {
field.set(obj, StringUtil.toString(value));
}
}
- SQL查询数据封装JavaBean对象
- SQL查询封装到对象
- 使用javaBean封装数据
- 利用javabean技术封装对象
- javabean封装xml文档数据
- javaweb 数据封装到javabean
- java封装sql查询
- java封装sql查询
- 自动表单数据封装到javaBean中
- BeanUtils数据封装与表单JavaBean
- 用javabean封装xml文档数据
- 表单数据自动封装到javaBean中
- sql 多表数据封装为一个实体对象
- hibernate 使用sql 查询利用setResultTransformer查询出封装好的VO对象
- 第八天2月28日,把表单的数据封装到JavaBean中,通过request对象,有多种方式
- sql 查询封装成map
- 将sql查询出来的数据转化为对象
- 使用dom4j解析xml文件,并封装为javabean对象
- cocos2d-x 数学函数、常用宏粗整理
- iOS使用xib自定义uiview
- 指令 repne scas byte ptr es:[edi]
- Hibernate获取Connection
- androidviews.
- SQL查询数据封装JavaBean对象
- android程序中使用命令行及获得命令行执行后的内容
- C++中前置声明的应用与陷阱(转)
- 归一化滤波,高斯滤波,非线性滤波及图像金字塔介绍与应用
- 关于工作
- linux 查看网络负载
- 解析bootloader传给kernel的参数
- Wait for me和waitting for me有什么区别?
- win7下Java的环境变量的配置