欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql如何獲取自增id

 更新時間:2024年07月03日 15:12:06   作者:sugarJava  
這篇文章主要介紹了mysql如何獲取自增id問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

JAVA在插入自增主鍵的一條數(shù)據(jù),如何同時獲取該條自增的主鍵id?

業(yè)務(wù)場景

開發(fā)業(yè)務(wù)場景:在學(xué)生管理系統(tǒng)業(yè)務(wù)場景中,比如班上新來一名轉(zhuǎn)校學(xué)生小吳,并參與了此次學(xué)校的摸底考試,那么系統(tǒng)管理員需要將他的信息更新到學(xué)生表的同時還需要和課程表綁定關(guān)系(多對多關(guān)系中需建立一個關(guān)系表)。

成績表(主要字段:student_id, sourse_id, score …)通過學(xué)生id和課程id來確定一條數(shù)據(jù)的唯一性。

所以在添加一名新學(xué)生的時候,相關(guān)的關(guān)系表也要做添加操作(小吳學(xué)了哪些課程)。

實際開發(fā)舉例

@Service
public class GroupServiceImpl implements IGroupService
{
    private static final Logger log = LoggerFactory.getLogger(GroupServiceImpl.class);

    @Autowired
    private GroupMapper groupMapper;

    @Autowired
    private IGroupUserService groupUserService;
/*
業(yè)務(wù)場景:group(分組表),user(用戶表),分組用戶關(guān)系表(group_user)
添加一個新的分組,分組下面可以有多個成員,一個成員可以創(chuàng)建多個分組,它們之間是多對多的關(guān)系,在添加一個新分組的時候,關(guān)系表也要綁定這條添加記錄。因此此處有兩個insert操作。新建分組是必須由當(dāng)前user來新建的。所以新建的分組的時候,就得往group_user關(guān)系里填一條默認記錄。
*/
    @Override
    public int insertGroupInfo(Group group) {
        BeanUtils.initInsertProperty(group);//初始化一些字段
        groupMapper.insertSelective(group);//添加分組
        
        groupUserService.insertGroupUserSelective.  (newGroupUser(0,group.getId(),SecurityUtils.getLoginUser().getUser().getUserId().intValue(),SecurityUtils.getLoginUser().getUser().getRoleId().intValue(),Constants.TEAM_ROLE.LEADER));//默認添加分組成員關(guān)系表一條記錄(創(chuàng)建分組者)
        return 1;
    }
}

代碼實現(xiàn)

這里我們會使用mysql技術(shù),在XXXXXmapper.xml文件中,

在insert 代碼位置添加如下屬性:useGeneratedKeys=“true” 和 keyProperty=“id”,此處的id即為你設(shè)置的自增的主鍵字段

<insert id="insert" parameterType="com.demo.project.entity.Student" useGeneratedKeys="true" keyProperty="id">
    insert into student (id, name,sex,age)
    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{age,jdbcType=VARCHAR}
  </insert>

在mapper映射文件添加好屬性后便可在service層直接獲取id

Student student=new Student();
student.setName("小吳");
studentService.insertStudent(student);//添加學(xué)生
ScoreService.insertScore(new Score(student.getId(),sourse.getId,0));//添加成績實體,成績默認為0分

總結(jié)

獲取當(dāng)前添加的數(shù)據(jù)字段自增id的值,

使用mysql技術(shù),在insert操作的時候,添加關(guān)鍵屬性:

  • 1. useGeneratedKeys=“true”
  • 2. keyProperty=“id”
  • 3. 直接在service層獲取當(dāng)前添加實體的id。
  • 4. mybatisplus 默認集成了useGeneratedKeys=“true” 和 keyProperty=“id” 屬性,可以直接通過getId()獲取。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql獲取版本的幾種方法實現(xiàn)

    mysql獲取版本的幾種方法實現(xiàn)

    本文主要介紹了mysql獲取版本的方法實現(xiàn),主要介紹了三種方法,包含SELECT VERSION(),SHOW VARIABLES和命令行,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • MySQL授予用戶權(quán)限命令詳解

    MySQL授予用戶權(quán)限命令詳解

    這篇文章主要給大家介紹了關(guān)于MySQL授予用戶權(quán)限命令的相關(guān)資料,授權(quán)就是為某個用戶賦予某些權(quán)限,例如可以為新建的用戶賦予查詢所有數(shù)據(jù)庫和表的權(quán)限,需要的朋友可以參考下
    2023-11-11
  • mysql日期date型和int型互換的方法

    mysql日期date型和int型互換的方法

    下面小編就為大家?guī)硪黄猰ysql日期date型和int型互換的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • mysql數(shù)據(jù)庫連接池配置教程

    mysql數(shù)據(jù)庫連接池配置教程

    在與數(shù)據(jù)庫進行連接的時候,會牽扯到數(shù)據(jù)庫連接池的配置,本文將詳細介紹mysql數(shù)據(jù)庫連接池配置,需要了解跟多的朋友可以參考下
    2012-11-11
  • SQL算術(shù)運算符之加法、減法、乘法、除法和取模的用法例子

    SQL算術(shù)運算符之加法、減法、乘法、除法和取模的用法例子

    算術(shù)運算符主要用于數(shù)學(xué)運算,其可以連接運算符前后的兩個數(shù)值或表達式,對數(shù)值或表達式進行加(+)、減(-)、乘(*)、除(/)和取模(%)運算,下面這篇文章主要給大家介紹了關(guān)于SQL算術(shù)運算符之加法、減法、乘法、除法和取模用法的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Mysql和redis緩存不一致問題的解決方案

    Mysql和redis緩存不一致問題的解決方案

    在高并發(fā)的情況下,如果所有的數(shù)據(jù)都從數(shù)據(jù)庫中去讀取,那再強大的數(shù)據(jù)庫系統(tǒng)都承受不了這個壓力,因此我們會將部分數(shù)據(jù)放入緩存中,比如放入redis中,這篇文章主要給大家介紹了關(guān)于Mysql和redis緩存不一致問題的解決方案,需要的朋友可以參考下
    2022-08-08
  • MySQL ALTER命令使用詳解

    MySQL ALTER命令使用詳解

    這篇文章主要為大家詳細介紹了MySQL ALTER命令的使用方法,簡單實用,感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹

    MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹

    MySQL的配置文件my.cnf中默認存在一行skip-external-locking的參數(shù),即跳過外部鎖定。根據(jù)MySQL開發(fā)網(wǎng)站的官方解釋,External-locking用于多進程條件下為MyISAM數(shù)據(jù)表進行鎖定
    2016-05-05
  • 一篇文章帶你掌握MySQL索引下推

    一篇文章帶你掌握MySQL索引下推

    索引條件下推,也叫索引下推,英文全稱Index Condition Pushdown,簡稱ICP,索引下推是MySQL5.6新添加的特性,用于優(yōu)化數(shù)據(jù)的查詢,下面這篇文章主要給大家介紹了關(guān)于MySQL索引下推的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

    Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

    MAMP從名字上也可以看出來,是Mac OS的Apache+MySQL+PHP的集成環(huán)境包,本文就來簡單說一下Mac OS下PHP環(huán)境搭建及PHP操作MySQL的常用方法小結(jié).
    2016-05-05

最新評論