下面是从一个师兄的项目里拷来的代码
从里面的system.out可以看出来数据可以从数据库里取出来.但是数据往bean里注入的时候
注入不进去, public List executeQuery(final String sqlStr, Class clazz, Object[] params) {
try {
getConnection();
pstmt = conn.prepareStatement(sqlStr);
if (params != null) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
rs = pstmt.executeQuery();
List list = new ArrayList();
ResultSetMetaData rm = rs.getMetaData();
while (rs.next()) {
Map<String, Object> m = new HashMap<String, Object>();
for (int i = 0; i < rm.getColumnCount(); i++) {
m.put(rm.getColumnLabel(i+1), rs.getObject(i+1));
System.out.println("列名"+rm.getColumnLabel(i+1));
System.out.println("列数据"+rs.getObject(i+1).toString());
}
Object o = clazz.newInstance();
System.out.println("类名称"+clazz.getName());
if(o!=null)
{
System.out.println("object类实例创建成功");
}
//注意:使用时实体类属性要和数据库中的字段名相同
BeanUtils.populate(o, m);
list.add(o);
}
closeConn();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
用下面语句调用的时候总是显示找到用户null
List<User> userList = executeQuery(sql, User.class, ps);
if(userList.size()!=0)
{
System.out.println(userList.size());
User user = userList.get(0);
System.out.println("");
System.out.println("找到用户"+user.getUsername());
return user;
}else{
return null;
}
师兄那个代码跟我的基本一样,他的就能取出来,我的就全是null求解啊%>_<%
从里面的system.out可以看出来数据可以从数据库里取出来.但是数据往bean里注入的时候
注入不进去, public List executeQuery(final String sqlStr, Class clazz, Object[] params) {
try {
getConnection();
pstmt = conn.prepareStatement(sqlStr);
if (params != null) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
rs = pstmt.executeQuery();
List list = new ArrayList();
ResultSetMetaData rm = rs.getMetaData();
while (rs.next()) {
Map<String, Object> m = new HashMap<String, Object>();
for (int i = 0; i < rm.getColumnCount(); i++) {
m.put(rm.getColumnLabel(i+1), rs.getObject(i+1));
System.out.println("列名"+rm.getColumnLabel(i+1));
System.out.println("列数据"+rs.getObject(i+1).toString());
}
Object o = clazz.newInstance();
System.out.println("类名称"+clazz.getName());
if(o!=null)
{
System.out.println("object类实例创建成功");
}
//注意:使用时实体类属性要和数据库中的字段名相同
BeanUtils.populate(o, m);
list.add(o);
}
closeConn();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
用下面语句调用的时候总是显示找到用户null
List<User> userList = executeQuery(sql, User.class, ps);
if(userList.size()!=0)
{
System.out.println(userList.size());
User user = userList.get(0);
System.out.println("");
System.out.println("找到用户"+user.getUsername());
return user;
}else{
return null;
}
师兄那个代码跟我的基本一样,他的就能取出来,我的就全是null求解啊%>_<%
嗯,不为0,好像newinstance创建了,就是bean里没有数据
debug看这个user对象内容是什么?
http://pan.baidu.com/share/link?shareid=2604106337&uk=2433104747
System.out.println("列名"+rm.getColumnLabel(i+1));
System.out.println("列数据"+rs.getObject(i+1).toString());这两条语句把取出来的数据都输出了
求帮忙啊大神http://pan.baidu.com/share/link?shareid=2843285134&uk=2433104747