是用JDBC从数据库中获取数据并以java对象返回
2014-05-09 13:31
621 查看
/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys为主键,参数顺序和表中保持一致 如果id, name 为主键 类名为Person 则 getEntity(Person.class,1,"name") * @return */ public static Object getEntity(Class c, Object... primaryKeys) { PreparedStatement ps = null; ResultSet rs = null; DatabaseMetaData dmd = null; Object obj = null;// 要返回的对象 String tableName = c.getSimpleName().toLowerCase();// person 表的名字 List primaryKeyNameList = new ArrayList(); Field[] fields = c.getFields();// 获取所有的属性 StringBuilder sql = new StringBuilder("select * from " + tableName + " where "); try { obj = c.newInstance(); dmd = getConnection().getMetaData(); rs = dmd.getPrimaryKeys(null, null, tableName); while (rs.next()) { sql.append(rs.getObject(4) + "=?"); sql.append(" and "); primaryKeyNameList.add(rs.getObject(4));// 将从表中获取的 主键字段存到 list中, 主键位于表中第几列=rs.getString(5) } sql.delete(sql.length() - 4, sql.length()); ps = (PreparedStatement) getConnection().prepareStatement( sql.toString()); for (int l = 0; l < primaryKeyNameList.size(); l++) { ps.setObject(l + 1, primaryKeys[l]); } rs = ps.executeQuery(); System.out.println(ps.toString().split(":")[1]); if (rs.next()) { for (int k = 0; k < fields.length; k++) { fields[k].set(obj, rs.getObject(k + 1)); } } rs.close(); ps.close(); rs=null; ps=null; } catch (Exception e) { e.printStackTrace(); } finally { } return obj; }
相关文章推荐
- JAVA通过JDBC链接数据库获取数据(三)PreparedStatement预编译SQL
- [原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)
- mybatis 查oralce 数据库之后 返回的java 对象部分字段没有注入数据,而数据库有数据
- JAVA通过JDBC链接数据库获取数据(二)单元测试增删改查
- ibatis 读取数据库数据,没有查询到,则返回的java对象为null
- JAVA通过JDBC链接数据库获取数据(一)
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。并读取出来。
- 用jdbc向数据库插入数据后获取生成的主键值
- JDBC:数据库自定义类型与Java类的映射—将对象存储在关系数据库中(二)
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。
- JAVA数据库处理(连接,数据查询,结果集返回)
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- JDBC:数据库操作:处理大对象CLOB数据
- java的JDBC如何获取的数据的条数
- 初学java。jdbc链接数据库都正常就是没有返回结果。请问什么原因
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
- java jdbc 获取最新插入的数据
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理
- Java -- JDBC 获取数据库自动 生成的主键值
- ADO对象——获取数据库字段的数据类型