1. 程式人生 > >Mysql和Mybatis獲取新插入資料自增主鍵的值

Mysql和Mybatis獲取新插入資料自增主鍵的值

Mysql

首先就是mysql獲取最近插入資料id的查詢方法
mysql為我們提供了查詢最近插入自增主鍵ID的值

獲取剛插入的自增長id的值 
insert into user (username,age,address) VALUES ('abc',18,'def');  
select last_insert_id();  

使用select last_insert_id()時要注意,當一次插入多條記錄時,只是獲得本次插入的第一條插入的id值,務必注意!

  insert into tb(c1,c2) values (c1value,c2value),(c1value1,c2value2)...

Mybatis

Mybatis中的使用方法如下程式碼

    <insert id="addUser" parameterType="com.kevenwu.pojo.User">
        insert into user
        (name,sex,age,address,telephone,level)
        VALUE (#{name},#{sex},#{age},#{address},#{telephone},2);
        <selectKey keyProperty="id" resultType="java.lang.Long"
order="AFTER" keyColumn="id" > SELECT LAST_INSERT_ID() AS userid </selectKey> </insert>
  1. keyProperty:應該被設定的目標屬性,並且在POJO類中有setter()方法。
  2. resultType:結果的型別。MyBatis 通常可以算出來,但是寫上也沒有問題。MyBatis 允許任何簡單型別用作主鍵的型別,包括字串。
  3. order:這可以被設定為 BEFORE 或 AFTER。如果設定為 BEFORE,那麼它會首先選擇主鍵,設定 keyProperty 然後執行插入語句。如果設定為 AFTER,那麼先執行插入語句,然後是 selectKey
    <insert id="addUser" parameterType="com.kevenwu.pojo.User"
            useGeneratedKeys="true" keyProperty="id">
        insert into user
        (name,sex,age,address,telephone,level)
        VALUE (#{name},#{sex},#{age},#{address},#{telephone},2);
    </insert>

控制層的程式碼,直接用user.getId()獲取自增主鍵的值。

    @RequestMapping("/adduser")
    public @ResponseBody
    Long adduser(User user) {
        boolean flag = userService.addUser(user);

        System.out.println(flag);
        System.out.println(user.getId());
        return user.getId();
    }

相關推薦

MysqlMybatis獲取插入資料

Mysql 首先就是mysql獲取最近插入資料id的查詢方法 mysql為我們提供了查詢最近插入自增主鍵ID的值 獲取剛插入的自增長id的值 insert into user (username,age,address) VALUES ('abc',18

mybatis如何獲取oracle插入資料記錄的?

第一    用序列 <insert id="insertSelective" parameterType="com.zehin.vpaas.base.domain.SfyHazardAnal

mybatis獲取mysql插入配置方法

使用selectKey的方式獲取主鍵,相當於呼叫了MySql的LAST_INSERT_ID()函式,意思是查詢最後一次插入的ID,相當於執行了兩條語句。 具體方法:改*mapper.xml檔案的如下位置:(驗證過有效) 另外一種方式參考如下圖: 兩種方式的主鍵獲取方式都

MySql獲取插入記錄ID

現在這種場景偏多,獲取的方式也很多。像MyBatis和Hibernate都有方式去獲取該值。 現在簡單講講MyBatis是獲取插入記錄自增主鍵ID值的。 public class Stu { private int id; private S

mybatis單條/批量插入返回生成(列表)

1.插入單條記錄返回自增主鍵id(已驗證) 在insert標籤上加上useGeneratedKeys=”true” keyProperty=”id” keyColumn=”id” <insert id="insert" parameterType="com.freedom.

SQLServer如何在批量插入後,獲取批量插入列的

解決方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能獲取所有插入的id,然後插入一個表中 注:如果不想用批量插入id做關聯的其他業務

mybatis插入返回

昨天下班到家以後收到一朋友問我一個問題:mysql中設定的是自增主鍵,然後在Mybatis執行insert語句後如何返回自增主鍵值,我說明天我到公司後寫一篇部落格給你Mybatis官網是這樣說的:First, if your database supports auto-ge

oracle批量插入出現的問題。

兩種oracle批量插入的例項。 oracle自增主鍵批量插入會出現錯誤。不使用自增主鍵是不會報錯的。 Java 程式 呼叫批量插入的方法: List<CategoryExpertGrade> categoryExpertGrades=new ArrayL

Spring使用JdbcTemplate、JdbcDaoSupport返回表

publicclassTeacherDaoImplextendsBaseDaoimplementsTeacherDao{ @Override publicStudent seacherStu(int id){ String sql="select * from student where id=?"; fi

MySQL的InnoDB引擎強烈建議使用的原因

1)InnoDB使用聚集索引,資料記錄本身被存於主索引的葉子節點上,這就要求同一個葉子節點內的各條資料記錄按主鍵順序存放,因此每當一條新的記錄插入時,MySQL會根據其主鍵將其插入適當的節點和位置,如果頁面達到裝載因子,則開闢一個新的頁(節點)如果表使用自增主鍵,那麼每次

oracle 獲取下一個及dual表用法

序列:BA_INFO_SEQ SELECT BA_INFO_SEQ.NEXTVAL FROM DUAL; 引用網友一篇文章:原網址連結:http://www.cnblogs.com/qiangqiang/archive/2010/10/15/1852229.html 導讀]

mybatis batch 批處理insert 存在問題

批處理,mybatis有2中方式 1 foreach 2 batch 分析下batch存在的問題 SqlSession session = sqlSessionTemplate.getSqlSessionFactory() .openSession(Executo

SSM】之MyBatis插入資料獲取

        很多時候,我們都需要在插入一條資料後回過頭來獲取到這條資料在資料表中的自增主鍵,便於後續操作。針對這個問題,有兩種解決方案: (1)先插入,後查詢。我們可以先插入一條資料,然後根據插入的資料的各個欄位值,再次訪問資料庫,從資料庫中將剛剛插入的資料查詢出來。當

Mybatis資料插入資料庫時,獲取

在mybatis的XML檔案時,配置useGeneratedKeys和KeyProperty屬性,且這兩個屬性不能省略。 useGeneratedKeys屬性,要求資料庫本身具備主鍵自動增長的功能。

Mybatis+Mysql插入數據庫返回id的三種方法

文章 param mysql int sta source nbsp 通用 映射 一、場景: 插入數據庫的值需要立即得到返回的主鍵id進行下一步程序操作 二、解決方法: 第一種:使用通用mapper的插入方法 Mapper.insertSelective(r

mybatis的執行流程 #{}${} Mysql返回

ola save select .org 經驗 sel 占位符 upd 執行 n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的運行環境等信息。 Mapper.xml文件即Sql映射文件,文件中配置了操作數據庫的Sql語句。此文件需

mybatis框架(6)---mybatis插入數據後獲取

-a 中間 generate 什麽 text 簡單 技術 cti 插入數據 mybatis插入數據後獲取自增主鍵 首先理解這就話的意思:就是在往數據庫表中插入一條數據的同時,返回該條數據在數據庫表中的自增主鍵值。 有什麽用呢,舉個例子: 你編輯

mybatis 獲取最新插入資料的id

1.使用註解 在Dao層的insert方法上加上註解 @SelectKey(statement="select LAST_INSERT_ID()", keyProperty="id", before=false, resultType=int.class) 2. 使用myba

Mybatis的mapper.xml檔案中插入資料返回

使用MyBatis往MySQL資料庫中插入一條記錄後,返回該條記錄的自增主鍵值。Mapper檔案應該怎麼寫呢? Mybatis的Mapper的標籤中有一個屬性,我們一起來看看: useGenerateKeys這個屬性,意思就是使用自增。我們需要將這個欄位設定為 true 。 同時,還需

【筆記】mybatis+mysql,當入參為map時,如何獲取返回的

<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="paramMap.id">  // keyProperty 要指定為引數map的名稱.返回的鍵名才行,入參paramMap,返回的自增主鍵