操作jdbc利用集合和反射对数据表中的记录进行遍历

来源:互联网 发布:网络用语rn是什么意思 编辑:程序博客网 时间:2024/05/19 13:57
private static List<Object> test8(String tabname, String clname)throws Exception {Class<?> cl = Class.forName(clname);Connection conn = getConnection();String sql = "select *from " + tabname;List<Object> list = new ArrayList<Object>();PreparedStatement ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();while (rs.next()) {Object obj = cl.newInstance();// 新建一个实例对象Field[] fl = cl.getDeclaredFields();// 获取userinfo的字段存进数组for (Field f : fl) {// 对字段进行遍历f.setAccessible(true);String name = f.getName();// 获取属性名字Object value = rs.getObject(name);// 根据属性名字获得表里面的值f.set(obj, value);// 设置字段的值}list.add(obj);// 遍历完一行记录,添加进一个对象,并添加进list集合}rs.close();ps.close();conn.close();return list;}private static Connection getConnection() throws Exception {// TODO Auto-generated method stubClass.forName("oracle.jdbc.driver.OracleDriver");//利用反射加载驱动类String url = "jdbc:oracle:thin:localhost:1521:orcl";Connection conn = DriverManager.getConnection(url, "scott", "123456");return conn;}

public static void main(String[] args) throws Exception {// test1();// test2();// test3();// test4();// test5();// test6();// test7();getConnection();List<UserInfo> list = (List) test8("userinfo", "io.stream.UserInfo");for (UserInfo u : list) {System.out.println(u.getUserid() + "\t" + u.getUserName() + "\t"+ u.getUserPwd());}}

阅读全文
0 0
原创粉丝点击