怎么获取到sql的主键id值?

sql = "insert into news_base(fid,title,date,author) values("+fid+",'"+title+"','"+dateValue+"','Admin')";
            statement = connection.createStatement();
            statement.executeUpdate(sql);

            
            sql1 = "insert into news_content (cid,fid,content) values("+cid+","+fid+",'"+content+"')";
            statement1 = connection.createStatement();
            statement1.executeUpdate(sql1);

news_content表的cid,我要用news_base的id来传进入。。
关键是怎么获取到news_base表的主键id?

阅读 3.3k
2 个回答

SELECT LAST_INSERT_ID();

确实,对于mysql数据库来说,可以用SELECT LAST_INSERT_ID()来获取刚刚插入的ID。不过在这里,我可能会更推荐使用UUID来做主键,这样的话你可以在插入news_base前就获取到id的值

参考代码如下:


UUID uuid = UUID.randomUUID();
String fid = uuid.toString();

// 您的代码会有SQL注入的风险,我这里暂时不帮你改,时间关系。
sql = "insert into news_base(fid,title,date,author) values("+fid+",'"+title+"','"+dateValue+"','Admin')";
            statement = connection.createStatement();
            statement.executeUpdate(sql);

            
            sql1 = "insert into news_content (cid,fid,content) values("+cid+","+fid+",'"+content+"')";
            statement1 = connection.createStatement();
            statement1.executeUpdate(sql1);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题