成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于在Mybatis和Mapper下的Postgresql自增主鍵Insert后取值的問題

iliyaku / 3098人閱讀

摘要:傳統(tǒng)的形式如果用注解的話,特別是選擇的話,可能對的自增主鍵支持并不好。只需要稍一下即可支持對于袁貴對于,在生成動態(tài)時,忽略字段,然后就會自動取值數(shù)據(jù)庫里的類型的值以上代碼在下測試通過

傳統(tǒng)的xml形式

  
    
    insert into hxc.user_bank_account (bank_account, fund_id, validity_period, 
      deleted, bank_id, full_name, 
      is_default, deposit_bank, province, 
      city)
    values (#{bankAccount,jdbcType=VARCHAR}, #{fundId,jdbcType=BIGINT}, #{validityPeriod,jdbcType=DATE}, 
      #{deleted,jdbcType=INTEGER}, #{bankId,jdbcType=INTEGER}, #{fullName,jdbcType=VARCHAR}, 
      #{isDefault,jdbcType=INTEGER}, #{depositBank,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
      #{city,jdbcType=VARCHAR})
  

如果用注解的話,特別是選擇tk.mybatis.mapper的話,可能對POSTGRESQL的自增主鍵支持并不好。只需要稍buff一下即可支持
對于mapper

/**
 * DAO of `sms_send_result`
 * 
 * @author 袁貴
 * @version 1.0
 * @since 1.0
 */
public interface SmsSendResultMapper extends Mapper {
    
    @InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
    @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
    @Override
    int insertSelective(SmsSendResult record);
    
    @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
    @InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
    @Override
    int insert(SmsSendResult record);

}

對于entity,在生成insert動態(tài)SQL時,忽略ID字段,然后就會自動取值數(shù)據(jù)庫里的bigserial類型的ID值

@Table(name = "sms_send_result", schema = "sms")
public class SmsSendResult {
    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column sms.sms_send_result.id
     *
     * @mbggenerated
     */
    @Id
    @Column(insertable = false)
    private Long id;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column sms.sms_send_result.telephone
     *
     * @mbggenerated
     */
    private String telephone;
.....
}

以上代碼在mybatis3.4.5+mapper3.4.5下測試通過

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38988.html

相關(guān)文章

  • Mybatis基本映射--INSERT

    摘要:概述本章學習基本映射相關(guān)知識點。表示執(zhí)行該語句將清空一級二級緩存,默認為。賦值主鍵的字段名,即把數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵賦值給該字段。 概述 本章學習Mysql基本映射--INSERT相關(guān)知識點。insert的用法比select要簡單很多。 本系列文章是基于Mybatis 3.4.6 版本,數(shù)據(jù)庫使用的是Mysql 5.7。 INSERT標簽 insert標簽常用屬性: id:可以理解為...

    csRyan 評論0 收藏0
  • Mybatis學習筆記(一)——基本CRUD操作

    摘要:將語句硬編碼到代碼中,修改語句需要重新編譯代碼設想使用配置文件配置。從結(jié)果集中遍歷數(shù)據(jù)的時候存在硬編碼。表示一個拼接符號,會引用注入,所以不建議使用。和表示查詢出一條記錄進行映射。 MyBatis是什么 mybatis是托管在github上的ORM框架,讓程序員將主要精力放在SQL上,通過mybatis提供映射方式,自由靈活(SQL的可定制性較高,半自動化)生成滿足需求的SQL語句。m...

    evin2016 評論0 收藏0
  • 通過項目逐步深入了解Mybatis<一>

    摘要:解決方法使用數(shù)據(jù)庫連接池管理數(shù)據(jù)庫連接。向中設置參數(shù),對占位符號位置和設置參數(shù)值,硬編碼在代碼中,同樣也不利于系統(tǒng)的維護。從中遍歷結(jié)果集數(shù)據(jù)時,存在硬編碼,將獲取表的字段進行硬編碼,不利于系統(tǒng)維護。 Mybatis Mybatis 和 SpringMVC 通過訂單商品案例驅(qū)動 官方中文地址:http://www.mybatis.org/mybati... 官方托管地址:https://...

    2bdenny 評論0 收藏0
  • Mybatis【配置文件】就是這么簡單

    摘要:場合常見一些明細記錄的展示,將關(guān)聯(lián)查詢信息全部展示在頁面時,此時可直接使用將每一條記錄映射到中,在前端頁面遍歷中是即可。如果查詢單表就可以滿足需求,一開始先查詢單表,當需要關(guān)聯(lián)信息時,再關(guān)聯(lián)查詢,當需要關(guān)聯(lián)信息再查詢這個叫延遲加載。 配置文件和映射文件還有挺多的屬性我還沒有講的,現(xiàn)在就把它們一一補全 映射文件 在mapper.xml文件中配置很多的sql語句,執(zhí)行每個sql語句時,封裝...

    freewolf 評論0 收藏0
  • Mybatis常見面試題

    摘要:執(zhí)行沒有,批處理不支持,將所有都添加到批處理中,等待統(tǒng)一執(zhí)行,它緩存了多個對象,每個對象都是完畢后,等待逐一執(zhí)行批處理。 Mybatis常見面試題 #{}和${}的區(qū)別是什么? #{}和${}的區(qū)別是什么? 在Mybatis中,有兩種占位符 #{}解析傳遞進來的參數(shù)數(shù)據(jù) ${}對傳遞進來的參數(shù)原樣拼接在SQL中 #{}是預編譯處理,${}是字符串替換。 使用#{}可以有效的防止...

    liuchengxu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<