最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)系里填一條默認(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;
    }
}

代碼實現(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));//添加成績實體,成績默認(rèn)為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 默認(rèn)集成了useGeneratedKeys=“true” 和 keyProperty=“id” 屬性,可以直接通過getId()獲取。

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

相關(guān)文章

  • 詳解MySQL到SelectDB的實時同步策略

    詳解MySQL到SelectDB的實時同步策略

    MySQL?到?SelectDB?的實時數(shù)據(jù)同步技術(shù),通過?NineData?的數(shù)據(jù)復(fù)制控制臺,僅需輕點鼠標(biāo),即可輕松完成?MySQL?到?SelectDB?的同步任務(wù)配置,這篇文章主要介紹了MySQL到SelectDB的實時同步策略,需要的朋友可以參考下
    2023-09-09
  • MySQL Explain使用詳解

    MySQL Explain使用詳解

    這篇文章主要介紹了MySQL Explain使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • mysql5.7單實例自啟動服務(wù)配置過程

    mysql5.7單實例自啟動服務(wù)配置過程

    這篇文章主要介紹了mysql5.7單實例自啟動服務(wù)配置的過程,附含配置源碼,有需要的朋友可以借鑒參考下,希望可以有所幫助,感謝閱讀
    2021-09-09
  • Mysql5.7.17 winx64.zip解壓縮版安裝配置圖文教程

    Mysql5.7.17 winx64.zip解壓縮版安裝配置圖文教程

    這篇文章主要介紹了Mysql5.7.17 winx64.zip解壓縮版安裝配置圖文教程,需要的朋友可以參考下
    2018-03-03
  • MySQL中動態(tài)生成SQL語句去掉所有字段的空格的操作方法

    MySQL中動態(tài)生成SQL語句去掉所有字段的空格的操作方法

    在數(shù)據(jù)庫管理過程中,我們常常會遇到需要對表中字段進行清洗和整理的情況,本文將詳細介紹如何在MySQL中動態(tài)生成SQL語句來去掉所有字段的空格,感興趣的朋友一起看看吧
    2025-04-04
  • MySQL最新版8.1.0版本部署和新特性詳解

    MySQL最新版8.1.0版本部署和新特性詳解

    MySQL8.1的應(yīng)該來說是8.0版本的bug修復(fù),這是 MySQL 變更發(fā)版模型后的第一個創(chuàng)新版本,本文給大家介紹了MySQL最新版8.1.0版本部署和新特性,需要的朋友可以參考下
    2023-11-11
  • MySQL 權(quán)限表db、tables_priv、columns_priv和procs_priv的具體使用

    MySQL 權(quán)限表db、tables_priv、columns_priv和procs_priv的具體使用

    MySQL中有多個權(quán)限相關(guān)的表,本文主要介紹了MySQL 權(quán)限表db、tables_priv、columns_priv和procs_priv的具體使用,感興趣的可以了解一下
    2023-11-11
  • 淺析mysql交互式連接&非交互式連接

    淺析mysql交互式連接&非交互式連接

    下面小編就為大家?guī)硪黄獪\析mysql交互式連接&非交互式連接。小編覺挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-03-03
  • MySQL 數(shù)據(jù)庫對服務(wù)器端光標(biāo)的限制

    MySQL 數(shù)據(jù)庫對服務(wù)器端光標(biāo)的限制

    從MySQL 5.0.2開始,通過mysql_stmt_attr_set() C API函數(shù)實現(xiàn)了服務(wù)器端光標(biāo)。服務(wù)器端光標(biāo)允許在服務(wù)器端生成結(jié)果集,但不會將其傳輸?shù)娇蛻舳?,除非客戶端請求這些行。
    2009-03-03
  • Canal進行MySQL到MySQL數(shù)據(jù)庫全量+增量同步踩坑指南

    Canal進行MySQL到MySQL數(shù)據(jù)庫全量+增量同步踩坑指南

    這篇文章主要介紹了使用Canal作為遷移工具,將數(shù)據(jù)庫從A服務(wù)器遷移至B服務(wù)器,為了盡量減少遷移導(dǎo)致的停機時間,考慮使用全量遷移+增量同步的方式
    2023-10-10

最新評論

新郑市| 平湖市| 县级市| 博野县| 安吉县| 阿克苏市| 拜泉县| 莱阳市| 肇源县| 林州市| 读书| 皋兰县| 商洛市| 长岛县| 临高县| 化德县| 江北区| 福泉市| 砀山县| 武冈市| 裕民县| 合肥市| 揭阳市| 绥江县| 通道| 西乌珠穆沁旗| 张北县| 黄龙县| 兴海县| 龙胜| 会理县| 西青区| 沭阳县| 金门县| 信丰县| 齐齐哈尔市| 南岸区| 鄂尔多斯市| 大理市| 甘德县| 盱眙县|