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

mysql如何獲取自增id

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

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

業(yè)務(wù)場(chǎng)景

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

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

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

實(shí)際開發(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ù)場(chǎng)景:group(分組表),user(用戶表),分組用戶關(guān)系表(group_user)
添加一個(gè)新的分組,分組下面可以有多個(gè)成員,一個(gè)成員可以創(chuàng)建多個(gè)分組,它們之間是多對(duì)多的關(guān)系,在添加一個(gè)新分組的時(shí)候,關(guān)系表也要綁定這條添加記錄。因此此處有兩個(gè)insert操作。新建分組是必須由當(dāng)前user來新建的。所以新建的分組的時(shí)候,就得往group_user關(guān)系里填一條默認(rè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));//默認(rèn)添加分組成員關(guān)系表一條記錄(創(chuàng)建分組者)
        return 1;
    }
}

代碼實(shí)現(xiàn)

這里我們會(huì)使用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));//添加成績(jī)實(shí)體,成績(jī)默認(rèn)為0分

總結(jié)

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    MySQL ALTER命令使用詳解

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

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

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

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

    索引條件下推,也叫索引下推,英文全稱Index Condition Pushdown,簡(jiǎn)稱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)境包,本文就來簡(jiǎn)單說一下Mac OS下PHP環(huán)境搭建及PHP操作MySQL的常用方法小結(jié).
    2016-05-05

最新評(píng)論