博客
关于我
JDBC——(6)PreparedStatement的使用——针对不同表的查询操作
阅读量:317 次
发布时间:2019-03-04

本文共 1293 字,大约阅读时间需要 4 分钟。

按照

中的步骤

和查询操作类似,只是对象变为Class 类对象,和利用了List

//通用类查询操作	public 
List
getForList(Class
clazz,String sql, Object... args){ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JDBCUtils.getConnection(); ps = conn.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } rs = ps.executeQuery(); // 获取结果集的元数据 :ResultSetMetaData ResultSetMetaData rsmd = rs.getMetaData(); // 通过ResultSetMetaData获取结果集中的列数 int columnCount = rsmd.getColumnCount(); //创建集合对象 ArrayList
list = new ArrayList
(); while (rs.next()) { T t = clazz.newInstance(); // 处理结果集一行数据中的每一个列:给t对象指定的属性赋值 for (int i = 0; i < columnCount; i++) { // 获取列值 Object columValue = rs.getObject(i + 1); // 获取每个列的列名 // String columnName = rsmd.getColumnName(i + 1); String columnLabel = rsmd.getColumnLabel(i + 1); // 给t对象指定的columnName属性,赋值为columValue:通过反射 Field field = clazz.getDeclaredField(columnLabel); field.setAccessible(true); field.set(t, columValue); } list.add(t); } return list; } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(conn, ps, rs); } return null; }

转载地址:http://uqqq.baihongyu.com/

你可能感兴趣的文章
下载任意版本vmware对应的vmware tools
查看>>
将 github 中他人的 仓库 导入 码云中,从而 加快下载速度的 方式
查看>>
Java 类加载的过程 加载、验证、准备、解析、初始化
查看>>
JavaWeb---实现JavaBean来接收参数、请求转发、域对象
查看>>
瀚高数据库中 java代码类型与bit对应(APP)
查看>>
选择性估算器绕过行安全策略漏洞
查看>>
PostgreSQL中的触发器
查看>>
对PostgreSQL数据库结构的宏观理解
查看>>
Postgresql 日期和时间类型
查看>>
xmin、xmax、cmin、cmax
查看>>
查询某表格上次进行vacuum的时间
查看>>
invalid byte sequence for encoding
查看>>
Highgo Database故障收集脚本
查看>>
failed to initialize the database
查看>>
invalid byte sequence for encoding
查看>>
银河麒麟系统配置apt网络源
查看>>
第七周 4.12-4.18
查看>>
程序设计入门14 结构体
查看>>
程序设计基础75 tips 广度搜索细节问题
查看>>
笨办法学python之数据类型
查看>>