日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 取最后一次登陆,获得最后一次插入mysql的id | 学步园

發布時間:2024/9/27 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 取最后一次登陆,获得最后一次插入mysql的id | 学步园 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近兩天一直忙著通過數據庫訪問數據記錄,然后做操作。以前我在數據庫中插入記錄后,就要去做別的操作,別的操作也是先訪問存在數據庫中的記錄,然后完成操作。所以我通過記錄的名字來訪問記錄的,原來想過通過id來訪問數據庫,但是當時不知道怎么來獲得數據庫的id,只有通過記錄名來訪問。但這樣做還是有點問題,在英文環境下可以查詢到正確的記錄,但是在中文下,插入到數據庫中的就會出現???亂碼,萬般無奈下,同事說,如果建表語句中的id是auto_increment的,就可以在插入數據庫后就獲得最后一次插入數據庫的id,所以現在修改成了通過id來查詢數據庫記錄,并完成其它的操作,不受中文的限制了。

現在說說具體的操作吧:

public static final String InsertScheduleSearchStr = "insert into scheduleSearch(scheduleSearchName,scheduleInfo,createTime,mailSendTo,scheduleDays,scheduleHours,scheduleMinutes) values(?,?,?,?,?,?,?)";

public static final String LastInsertId = "select last_insert_id() as scheduleSearchId from scheduleSearch limit 1";

stmt = (PreparedStatement) dbMgr.getStatement(InsertScheduleSearchStr);

if (stmt == null) stmt = con.prepareStatement(InsertScheduleSearchStr);

String scheduleSearchName = xmlScheduleSearch.getScheduleSearchName();

stmt.setString(index++,scheduleSearchName);

stmt.setBytes(index++, xmlScheduleSearch.getScheduleSearchBytes());

java.util.Date now = new java.util.Date();

stmt.setTimestamp(index++, new Timestamp(now.getTime()));

stmt.setString(index++,xmlScheduleSearch.getSendMailTo());

stmt.setInt(index++,xmlScheduleSearch.getScheduleDays());

stmt.setInt(index++,xmlScheduleSearch.getScheduleHours());

stmt.setInt(index++,xmlScheduleSearch.getScheduleMinutes());

stmt.executeUpdate();

dbMgr.saveStatement(InsertScheduleSearchStr, stmt);

stmt = (PreparedStatement) dbMgr.getStatement(LastInsertId);

if (stmt == null) stmt = con.prepareStatement(LastInsertId);

rs = stmt.executeQuery();

int scheduleSearchId = 0;

if (rs.next())

{

scheduleSearchId = rs.getInt(1);

}

主要的語句就是通過mysql中的mysql_insert_id() 完成取最后一次插入數據庫的id

mysql_insert_id()用法

my_ulonglong mysql_insert_id(MYSQL *mysql)

返回由先前的查詢為一個AUTO_INCREMENT列生成的ID。在你執行一個INSERT查詢向一個包含AUTO_INCREMENT字段的表中插入后,使用這個函數。

注意,如果先前的查詢不產生一個AUTO_INCREMENT值,mysql_insert_id()返回0。如果你需要在以后保存該值,必須在查詢生成了該值后馬上調用mysql_insert_id()。

也要注意,SQL的LAST_INSERT_ID()函數總是包含最近生成的AUTO_INCREMENT值,并且在查詢之間不被重置,因為該函數的值在服務器端維護。

有先前的查詢更新的AUTO_INCREMENT字段的值。如果在連接上沒有先前的詢問或如果查詢沒更新AUTO_INCREMENT值,返回零。

總結

以上是生活随笔為你收集整理的mysql 取最后一次登陆,获得最后一次插入mysql的id | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。