从数据库中取数据的问题 急。。。急

yearnqiao 2010-05-04 01:10:57
public List getUserList() {
String sql = "select id,user_name,user_pwd from user";
List<CasUser> users = jdbcTemplate.query(sql, new RowMapper(){
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {

CasUser user = new CasUser();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("user_name"));
user.setUserPwd(rs.getString("user_pwd"));
return user;
}
});
System.out.println(users.size());//结果为0

return users;
}

当我把sql语句复制到数据库中查询的时候可以查询出来,
可当我在这里打印users的size的时候 结果为0

为什么会这样呢??
...全文
118 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
嗯,好的
谢谢各位!
已经出来了
应该是oracle数据库的commit的问题
Mars_Ma_OK 2010-05-04
  • 打赏
  • 举报
回复
帮顶吧...呵呵,小问题,学会自己调试哦!!!
charles361 2010-05-04
  • 打赏
  • 举报
回复
这么小的问题,自己调呗
welllit 2010-05-04
  • 打赏
  • 举报
回复
先判断一下user是否为空,user.size是否大于0.
xiaomaha 2010-05-04
  • 打赏
  • 举报
回复
不好意思看错了,users.add(user); 是txg0426的代码!呵呵它的看起清楚点,我仔细看了下,你的代码应该没错!在找找看!
jiahardstudy 2010-05-04
  • 打赏
  • 举报
回复
user是关键字,你改一下表名再试一下
jiahardstudy 2010-05-04
  • 打赏
  • 举报
回复
user是关键字,你改一下数据库名再试一下
xiaomaha 2010-05-04
  • 打赏
  • 举报
回复
你是不是用的spring 的JdbcTemplate?

users.add(user); 这行不需要,他返回是一个object对象,它会装到你的users里面的
fjlsh520 2010-05-04
  • 打赏
  • 举报
回复
user是关键字 要[user] asp.net会把user认为是sql的关键属性
Ferri_Qing 2010-05-04
  • 打赏
  • 举报
回复
看你spring配置
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wjunjia 的回复:]
System.out.println(users.size());//结果为0
你并没有把你需要的值放进这个users中啊
[/Quote]

那是一个内部方法
我把user返回给了users对象
junjia 2010-05-04
  • 打赏
  • 举报
回复
System.out.println(users.size());//结果为0
你并没有把你需要的值放进这个users中啊
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 curacfyh 的回复:]
看上去没什么问题,你把SQL换下,直接QUERY得到list,看jdbcTemplate 是否有效。无效的话,debug下获取jdbcTemplate 的代码。
[/Quote]

我这里面没有用到hibernate 所以我不知道怎样用query得到list
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 txg0426 的回复:]
你定义了users,但没有把 user 放进去,而且 return user 这一行你没报错吗?

Java code

public List getUserList() {
String sql = "select id,user_name,user_pwd from user";
List<CasUser> users = jdbcTemplate.query(sql, new ……
[/Quote]

那是一个内部方法
我把user返回给了users对象
txg0426 2010-05-04
  • 打赏
  • 举报
回复
你定义了users,但没有把 user 放进去,而且 return user 这一行你没报错吗?

public List getUserList() {
String sql = "select id,user_name,user_pwd from user";
List<CasUser> users = jdbcTemplate.query(sql, new RowMapper(){
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {

CasUser user = new CasUser();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("user_name"));
user.setUserPwd(rs.getString("user_pwd"));
users.add(user);
}
});
System.out.println(users.size());//结果为0

return users;
}

curacfyh 2010-05-04
  • 打赏
  • 举报
回复
看上去没什么问题,你把SQL换下,直接QUERY得到list,看jdbcTemplate 是否有效。无效的话,debug下获取jdbcTemplate 的代码。
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaoguan_java 的回复:]
这就是你全部代码啊,乱七八糟的
[/Quote]

它使用的是spring的mvc
所以那个jdbcTemplate 的值是这样得到的

private DataSource dataSource;
private JdbcTemplate jdbcTemplate = null;

public final void setDataSource(DataSource dataSource) {
if (this.jdbcTemplate == null
|| dataSource != this.jdbcTemplate.getDataSource()) {
this.jdbcTemplate = new JdbcTemplate(dataSource);

}
}
yearnqiao 2010-05-04
  • 打赏
  • 举报
回复
这就是一个方法的代码啊!
怎么乱了呢??

xiaoguan_Java 2010-05-04
  • 打赏
  • 举报
回复
这就是你全部代码啊,乱七八糟的

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧