4 回答

TA貢獻1936條經(jīng)驗 獲得超7個贊
2種解決辦法
1.修改你的數(shù)據(jù)庫表,將ID設(shè)為自增長,注:只有主鍵才可以設(shè)置為自增長
例:CREATE TABLE `message ` (`id` INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`));
2.代碼中進行處理
Statement ps;
ResultSet rs;
int id = 0;
..................
String sql="select max(id) as id from message";
rs = ps.executeQuery(sql);//查詢出最大ID
if(rs.next){//如果有ID,原有ID+1
id = rs.getInt("id")+1;
}else{//否則 ID 初始為0
id = 0;
}
//下面接你寫的代碼就OK了
PreparedStatement ps;
String sql="insert message (id,name,msg) value(?,?,?)"
ps.setString(1,id);
ps.setString(2,name);
ps.setString(3,msg);

TA貢獻1785條經(jīng)驗 獲得超8個贊
PreparedStatement ps;
String sql="insert message (id,name,msg) value(?,?,?)"
ps.setString(2,name);
ps.setString(3,msg);
主鍵的數(shù)據(jù)不用賦值,數(shù)據(jù)庫會自動給你一個值的。

TA貢獻1836條經(jīng)驗 獲得超4個贊
設(shè)置ID auto_increment
PreparedStatement ps;
String sql="insert message (name,msg) value(?,?)"
ps.setString(0,name);
ps.setString(1,msg);
添加回答
舉報