jdbc获取mysql数据_是用JDBC从数据库中获取数据并以java对象返回

/**

*

* @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;

}

原文:http://blog.csdn.net/ctllin/article/details/25386889

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值