新手问题,大侠请看,谢谢
114.//得到一个数据库中当前Id的最大值
115.private int getMaxId()
116.{
117.Connection conn = null;
118.Statement state = null;
119.ResultSet rs = null;
120.int maxId = 0;
121.try {
122.conn = DBTools.getConnection();
123.state = conn.createStatement();
124.String sql = "select max(id) maxId from notebook_user";
125.rs = state.executeQuery(sql);
126.//从resultset对象中将数据取出
127.if(rs.next())
128.{
129.maxId = rs.getInt("maxId");
130.}
131.} catch (Exception ex) {
132.// TODO Auto-generated catch block
133.ex.printStackTrace();
134.}
135.
136.
137.return ++maxId;
138.}
我就纳闷125行已经查到了最大的maxId,为什么137是.return ++maxId;而不是return maxId???请大侠解答
------解决方案--------------------是这样的,我在网上搜了一下发现,事实并不是你想的那样
// 新增user
public void saveUserInfo(UserPO upo)
{
Connection conn = null;
Statement state = null;
try {
conn = DBTools.getConnection();
state = conn.createStatement();
String sql = "insert into notebook_user values ("+getMaxId()+",'"+upo.getYhm()+"','"+upo.getEmail()+"','"+upo.getContent()+"')";
//System.out.println(sql);
state.executeUpdate(sql);
} catch (Exception ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
finally
{
DBTools.closeState(state);
DBTools.closeConn(conn);
}
}
这里的插入语句是在原有的id的基础上+1而已
------解决方案--------------------12楼说的是对的,你数据库中的这张表id是手动设置的,当需要新增一条记录的时候就需要把以前记录中最大的id查出来,然后+1,作为新增记录的id值