1. 程式人生 > >spring jdbcTemplate 插入物件返回主鍵值

spring jdbcTemplate 插入物件返回主鍵值

  /**
     * 插入一個物件,並返回這個物件的自增id
     * @param obj
     * @return
     */
    public <T> int insertObjectAndGetAutoIncreaseId(T obj) {
        final String sql = BeanOperator.getSqlByObject(SqlTypes.INSERT, obj);
        
		KeyHolder keyHolder = new GeneratedKeyHolder();
        int autoIncId = 0;
        
        jdbcTemplate.update(new PreparedStatementCreator() {
    		public PreparedStatement createPreparedStatement(Connection con)
    				throws SQLException {
    			PreparedStatement ps = con.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
    			return ps;
    		}
    	}, keyHolder);

        autoIncId = keyHolder.getKey().intValue();
    	
        return autoIncId;
    }

相關推薦

spring jdbcTemplate 插入物件返回

/** * 插入一個物件,並返回這個物件的自增id * @param obj * @return */ public <T> int insertObjectAndGetAutoIncreaseId(T obj)

當執行插入語句之後,我想返回的三種方法。

環境:ssm資料庫:oracle第一種已經實現的:也是百度上最常見的方法在mybatis層:在insert標籤中插入(主鍵是通過sequence的形式生成的)<!-- keyProperty目標屬性 --><selectKey keyProperty="id

mybatis 插入資料返回id寫法

1、batis檔案中寫法: <!--插入資料,返回主鍵的insert寫法 -->     <insert id="insert_A"    parameterType="Map" useGeneratedKeys="t

spring data jpa save 返回 問題

除錯時發現,如果呼叫 Repository 的 save 方法時,對應的主鍵,還是為空。以為是什麼bug。 後面查閱資料發現。其實是在返回值中,而不是傳入值中。 檢視SimpleJpaRepository原始碼,除錯發現,如果是走persist(新增,判斷是否新,是看是不是nu

(六)Mybatis插入資料返回id

整個demo放在Github上,地址:【https://github.com/Damaer/Mybatis-Learning】,專案是mybatis-05-CRUD,下載下來只需要maven環境以及mysql環境就可以跑起來,所以不貼全部程式碼。 我們知道很多時候我們有

關於Mybatis插入資料返回的小問題

1.在Mybatis Mapper檔案中新增屬性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java物件的屬性名,而不是表格的欄位名。 <insert id="insert" parameterType="Spare

Mybatis generator 自動生成程式碼時 ,insert返回

mvn mybatis-generator:generate 如果要讓generator自動新增該功能,可以如下配置: <!-- tableName:用於自動生成程式碼的資料庫表;domainObjectName:對應於資料庫表的javaBean類名;不需要生成Ex

【MyBatis框架點滴】——mybatis插入資料返回(mysql、oracle)

  向資料庫中插入資料時,大多數情況都會使用自增列或者UUID做為主鍵。主鍵的值都是插入之前無法知道的,但很多情況下我們在插入資料後需要使用剛剛插入資料的主鍵,比如向兩張關聯表A、B中插入資料(A的

Mybatis中批量插入返回筆記

1.mapper中的程式碼 int insertBatchUserReturnId(List<User> users); 也可以在形參前面加上@Param("xxxx") xml中的程式碼,collection必須填list型別 <insert id="insert

Mybatis 插入返回

一、使用Oracle 序列器作為自增主鍵 1.mapper配置 <insert id="create" parameterType="MyBean"> <selectKey resultType="int" order="BEFORE" keyProperty="id"&

如何在Java MyBatis 插入資料庫返回

  User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("測試插入資料返回主鍵功能"); System.out.pri

Mybatis批量insert 返回和foreach標籤詳解

  Mybatis批量insert 返回主鍵 Mybatis從3.3.1版本開始,支援批量插入後返回主鍵ID。首先對於支援自增主鍵的資料庫使用useGenerateKeys和keyProperty,對於不支援生成自增主鍵的資料庫使用selectKey標籤。類似《MyBatis 返回insert操

Mybatis generator 自動生成程式碼時 ,insert如何返回

mvn mybatis-generator:generate 如果要讓generator自動新增該功能,可以如下配置: <!-- tableName:用於自動生成程式碼的資料庫表;domainObjectName:對應於資料庫表的javaBean類名;不需要生成Ex

Mybatis配置插入資料返回問題

Mybatis插入實體類返回主鍵配置UseGeneratorKeys設定為truekeyColumn 設定資料庫主鍵所對應的列名keyProperty  設定實體類主鍵的屬性名這樣配置完成之後就可以在插入資料之後返回主鍵了注意:主鍵返回時封裝在插入的實體類中,可以從實體類中獲

關於mybatis(insert插入返回的問題

近來使用ssm框架中的mybatis遇到返回主鍵的問題,在使用mybatis的過程中遇到各種問題,在此發帖持續更新,在此發帖的原因一來是是為了方便以後回顧,二來是為了給遇到同樣問題的同學們一個提示,廢話不多說了 開始正題。 首先來看一下控制檯提示的錯誤資訊: 錯誤一: Ca

Spring使用JdbcTemplate、JdbcDaoSupport和返回表自增

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

Oracle 在函數或存儲過程中執行一條插入語句並返回ID

num c# 如果 acl get col oracle style 建表語句 有時,我們需要往一張表插入一條記錄,同時返回主鍵ID值。 假定主鍵ID的值都是通過對應表的SEQUENCE來獲得,然後進行ID賦值 這裏有幾種情況需要註意: 1)如果建表語句含有主鍵ID的觸發器

ODBC:如何在執行SQL插入操作時返回列的自增值和其它列的預設生成

        執行SQL插入操作時,如果能將主鍵列的自增值和其它列的預設生成值一同返回,將極大的提高SQL的執行效率。我們知道,如果是編寫儲存過程的話,是可以解決這個問題的。但編寫儲存過程的問題是需要單獨編寫並在資料庫中建立,如果表比較多的話不太好維護。那是否可以不用儲存過

mybatis mysql 插入物件返回資料id

RuleTypeMapper.xml 檔案原始碼 <insert id="insertRuleType" useGeneratedKeys="true" keyProperty="id" parameterType="com.haier.gsp.core.mo

使用mybatis插入自增ID的數據後返回自增的ID

配置 map batis 對象 insert語句 parameter 用戶註冊 class domain 在開發中碰到用戶註冊的功能需要用到用戶ID,但是用戶ID是數據庫自增生成的,這種情況上網查詢後使用下面的方式配置mybatis的insert語句可以解決: 1 <