java中想取到mysql中一列的最大值,怎么做??
这是我写的,想从数据库中user这个表取到id这列的最大值。为什么总是会抛出异常说“userid=rst.getString("id");”这句的空指针:Exceptio...
这是我写的,想从数据库中user这个表取到id这列的最大值。
为什么总是会抛出异常说“userid = rst.getString("id");”这句的空指针:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at user.UserDao.getID(UserDao.java:37)
我该怎么做???下边有写注释。
public int getID()
{
int max;
String userid = null;
String sql = "select max(id) from user";
ResultSet rst = db.executeQuery(sql);
System.out.println(rst); / /这句打出null
try {
userid = rst.getString("id"); / /异常报出这句的空指针
System.out.println(userid); / /这句貌似没有执行到,什么都没打出
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
max = Integer.parseInt(userid);
return max;
} 展开
为什么总是会抛出异常说“userid = rst.getString("id");”这句的空指针:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at user.UserDao.getID(UserDao.java:37)
我该怎么做???下边有写注释。
public int getID()
{
int max;
String userid = null;
String sql = "select max(id) from user";
ResultSet rst = db.executeQuery(sql);
System.out.println(rst); / /这句打出null
try {
userid = rst.getString("id"); / /异常报出这句的空指针
System.out.println(userid); / /这句貌似没有执行到,什么都没打出
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
max = Integer.parseInt(userid);
return max;
} 展开
推荐于2016-08-16
展开全部
首先rst为null了就不能使用 rst.getString("id")了,再者如果rst不为null,也不能直接使用rst.getString("id"),需要判断下if(rst.next()),然后再那样用!
想问下你db是Statement对象还是PrepareStatement对象还是自己重写的方法!SQL语句没问题,你把那句SQL去运行下,出结果就不是SQL问题了。是那个方法的问题!
想问下你db是Statement对象还是PrepareStatement对象还是自己重写的方法!SQL语句没问题,你把那句SQL去运行下,出结果就不是SQL问题了。是那个方法的问题!
更多追问追答
追答
想问下你db是Statement对象还是PrepareStatement对象还是自己重写的方法!SQL语句没问题,你把那句SQL去运行下,出结果就不是SQL问题了。是那个方法的问题!
展开全部
try {
rs.next();
userid = rst.getString("id"); / /异常报出这句的空指针
System.out.println(userid); / /这句貌似没有执行到,什么都没打出
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs.next();
userid = rst.getString("id"); / /异常报出这句的空指针
System.out.println(userid); / /这句貌似没有执行到,什么都没打出
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
更多追问追答
追问
追答
db对象 在哪里定义的,可能没有创建
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ResultSet rst = db.executeQuery(sql);
这句话里的db是哪里来的?
这句话里的db是哪里来的?
更多追问追答
追问
Database db = new Database(); 在这个类里创建的,在这个方法之前,是数据库的对象。。。。用来加载驱动器和链接数据库,我写在了另一个类里边。这个应该没问题,因为之前向数据库写数据都可以的。
追答
你system.out.println一下这个db,看输出是否为null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接改sql啊
select max(value) from table
select max(value) from table
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT MAX(column_name) FROM table_name;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询