亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Mybatis基本映射--INSERT

csRyan / 2520人閱讀

摘要:概述本章學(xué)習(xí)基本映射相關(guān)知識點(diǎn)。表示執(zhí)行該語句將清空一級二級緩存,默認(rèn)為。賦值主鍵的字段名,即把數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵賦值給該字段。

概述

本章學(xué)習(xí)Mysql基本映射--INSERT相關(guān)知識點(diǎn)。insert的用法比select要簡單很多。

本系列文章是基于Mybatis 3.4.6 版本,數(shù)據(jù)庫使用的是Mysql 5.7。

INSERT標(biāo)簽

insert標(biāo)簽常用屬性:

id:可以理解為Mybatis執(zhí)行語句的名稱,與Mapper接口一一對應(yīng),此屬性為必須屬性,且在命名空間(mapper標(biāo)簽的namespace)中唯一。

parameterType:該屬性的含義就是其字面意思,即傳入語句的參數(shù)類型,是類的全限定類名,非必須。

flushCache:表示執(zhí)行該語句將清空一級、二級緩存,默認(rèn)為true。

timeout:超時(shí)時(shí)間,即程序提交sql語句到數(shù)據(jù)庫等待的時(shí)間,超過此設(shè)置時(shí)間將拋出超時(shí)異常,默認(rèn)設(shè)置是不超時(shí),也就是說程序會一直等待直到有結(jié)果返回,單位為妙。

useGeneratedKeys:該屬性是獲取數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵,默認(rèn)為false。

keyProperty:賦值主鍵的屬性名,即把數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵賦值給該屬性。

keyColumn:賦值主鍵的字段名,即把數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵賦值給該字段。

不返回主鍵

此是插入數(shù)據(jù)最簡單的用法,在上一章的基礎(chǔ)上,需要編寫mapper配置文件和mapper接口。

mapper配置文件

代碼如下:



    INSERT  INTO sys_user (user_account, user_password, created_date)
    VALUES (#{userAccount}, #{userPassword}, #{createdDate})

mapper接口

接口代碼如下:

// 返回值int為插入數(shù)據(jù)的行數(shù)
public int insert(SysUser sysUser) throws Exception ;

測試用例

測試用戶代碼如下:

@Test
public void testInsert(){
    // 獲得sqlSession
    SqlSession sqlSession = getSqlSession();
    try{
        // 獲取Mapper接口
        SysUserMapper sysUserMapper = sqlSession.getMapper(SysUserMapper.class);
        SysUser user = new SysUser();
        user.setUserAccount("admin");
        user.setUserPassword("123");
        user.setCreatedDate(new Date());
        // 插入的條數(shù)
        int count = sysUserMapper.insert(user);
        // 提交事務(wù),數(shù)據(jù)存入數(shù)據(jù)庫
        sqlSession.commit();
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        sqlSession.close();
    }
}
返回自增主鍵

根據(jù)上面對INSERT標(biāo)簽屬性的學(xué)習(xí)知道,如果要返回?cái)?shù)據(jù)庫自增的主鍵,可通過設(shè)置useGeneratedKeys和keyProperty以及keyCulomn(返回多個(gè)時(shí)需指定字段順序)。

mapper配置文件

代碼如下:



    INSERT  INTO sys_user (user_account, user_password, created_date)
    VALUES (#{userAccount}, #{userPassword}, #{createdDate})

mapper接口

接口代碼如下:

// 返回值int仍然為插入影響的行數(shù),數(shù)據(jù)庫內(nèi)部自增id值被封裝到參數(shù)對象中
public int insertAndResultAutoId(SysUser sysUser) throws Exception;

測試用例

測試用戶代碼如下:

@Test
public void testInsertAndResultAutoId(){
    // 獲得sqlSession
    SqlSession sqlSession = getSqlSession();
    try{
        // 獲取Mapper接口
        SysUserMapper sysUserMapper = sqlSession.getMapper(SysUserMapper.class);
        SysUser user = new SysUser();
        user.setUserAccount("admin");
        user.setUserPassword("123");
        user.setCreatedDate(new Date());
        // 插入前,id為空
        System.out.println(user.getId());
        // 插入的條數(shù)
        int count = sysUserMapper.insertAndResultAutoId(user);
        // 插入后,id的值為新插入數(shù)據(jù)的數(shù)據(jù)庫自增id值
        System.out.println(user.getId());
        // 提交事務(wù),數(shù)據(jù)存入數(shù)據(jù)庫
        sqlSession.commit();
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        sqlSession.close();
    }
}
返回非自增主鍵

對于一些數(shù)據(jù)庫不支持自增ID,比如Oracle數(shù)據(jù)庫使用的序列,然后賦值給id字段,再執(zhí)行數(shù)據(jù)庫插入操作,此情況的實(shí)現(xiàn)如下:

mapper配置文件

代碼如下:



    
    
        SELECT LAST_INSERT_ID()
    
    INSERT  INTO sys_user (user_account, user_password, created_date)
    VALUES (#{userAccount}, #{userPassword}, #{createdDate})

mapper接口

接口代碼如下:

// 返回值int仍然為插入影響的行數(shù),數(shù)據(jù)庫內(nèi)部自增id值被封裝到參數(shù)對象中
public int insertAndSelectKey(SysUser sysUser) throws Exception;

測試用例

測試用戶代碼如下:

@Test
public void testInsertAndSelectKey(){
    // 獲得sqlSession
    SqlSession sqlSession = getSqlSession();
    try{
        // 獲取Mapper接口
        SysUserMapper sysUserMapper = sqlSession.getMapper(SysUserMapper.class);
        SysUser user = new SysUser();
        user.setUserAccount("admin");
        user.setUserPassword("123");
        user.setCreatedDate(new Date());
        // 插入前,id為空
        System.out.println(user.getId());
        // 插入影響的條數(shù)
        int count = sysUserMapper.insertAndSelectKey(user);
        // 插入后,id的值為新插入數(shù)據(jù)的數(shù)據(jù)庫自增id值
        System.out.println(user.getId());
        // 提交事務(wù),數(shù)據(jù)存入數(shù)據(jù)庫
        sqlSession.commit();
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        sqlSession.close();
    }
}
批量插入

此部分內(nèi)容將在動態(tài)SQL中進(jìn)行學(xué)習(xí)。

總結(jié)

本節(jié)學(xué)習(xí)了mybatis的基本的insert的用法,希望對大家有幫助。

最后創(chuàng)建了qq群方便大家交流,可掃描加入,同時(shí)也可加我qq:276420284,共同學(xué)習(xí)、共同進(jìn)步,謝謝!

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

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

相關(guān)文章

  • Mybatis學(xué)習(xí)筆記(一)——基本的CRUD操作

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

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

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

    liuchengxu 評論0 收藏0
  • 通過項(xiàng)目逐步深入了解Mybatis<一>

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

    2bdenny 評論0 收藏0
  • Java Persistence with MyBatis 3讀書筆記

    摘要:內(nèi)部將通過創(chuàng)建事務(wù)管理應(yīng)用服務(wù)器負(fù)責(zé)管理數(shù)據(jù)庫連接生命周期使用。對于大型數(shù)據(jù)庫而言這會導(dǎo)致很差的性能問題。這是指檢索出的對象不會被共享并且可以被調(diào)用者安全地修改不會其他潛在的調(diào)用者或者線程的潛在修改干擾。 第一章 mybatis 簡介 以下內(nèi)容是自己在看本書時(shí)覺得重要的地方記錄下來,一方面自己做個(gè)筆記也希望對其他同行有幫助 簡介 mybatis: 是一個(gè)簡化和實(shí)現(xiàn)了Java數(shù)據(jù)持久層的...

    JinB 評論0 收藏0

發(fā)表評論

0條評論

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