
JDBC——(6)PreparedStatement的使用——针对不同表的查询操作
发布日期:2021-05-07 02:35:32
浏览次数:17
分类:精选文章
本文共 1293 字,大约阅读时间需要 4 分钟。
按照
中的步骤和查询操作类似,只是对象变为Class 类对象,和利用了List
//通用类查询操作 publicList 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; }
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月29日 04时18分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构之数组与经典面试题(二)
2021-05-08
无锁并发框架-Disruptor的使用(二)
2021-05-08
Android wm命令
2021-05-08
boot.img 解包与打包
2021-05-08
Android4.4 平板背光设置
2021-05-08
spring boot@Value和bean执行顺序问题
2021-05-08
codeforces The Eternal Immortality 题解
2021-05-08
蓝桥杯 历届试题 幸运数 (堆+DFS)
2021-05-08
微信js-sdk使用简述(分享,扫码功能等)
2021-05-08
selenium 的介绍和爬取 jd数据
2021-05-08
【分享-一键在线抠图】在线免费去除图片背景
2021-05-08
layui表格checkbox选择全选样式及功能
2021-05-08
mxsrvs支持thinkphp3.2伪静态
2021-05-08
mui HTML5 plus 下载文件
2021-05-08
环信SDK 踩坑记webIM篇(一)
2021-05-08
通信基础知识
2021-05-08
DSP开发板准备
2021-05-08
测试基本
2021-05-08
c++中istringstream及ostringstream超详细说明
2021-05-08