亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis generator 使用方法教程(生成帶注釋的實(shí)體類)

 更新時(shí)間:2017年08月18日 09:01:49   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇mybatis generator 使用方法教程(生成帶注釋的實(shí)體類)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

引言:

最近的一個(gè)項(xiàng)目,由于數(shù)據(jù)庫(kù)表巨多,導(dǎo)致需要?jiǎng)?chuàng)建N多個(gè)java實(shí)體、dao、mapper.xml映射文件,如果均使用純手工編寫(xiě),無(wú)疑需要耗費(fèi)大量時(shí)間和精力。于是上網(wǎng)學(xué)習(xí)了mybatis generator的使用。

現(xiàn)在項(xiàng)目寫(xiě)完了,閑暇之余把干貨奉上,供大家直接使用。

需求場(chǎng)景:

當(dāng)你的java 項(xiàng)目數(shù)據(jù)庫(kù)有N張表需要使用mybatis進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),建議使用mybatis generator 自動(dòng)生成工具??梢宰詣?dòng)幫助你生成java實(shí)體類、dao、mapper.xml等。

首先給大家分享我自己封裝好的mybatis generator代碼自動(dòng)生成項(xiàng)目,里面集成了中文注釋、mysql的limit分頁(yè)功能。

git地址:git@github.com:zhaojiatao/com.zjt.mybatisGenerator.git

代碼克隆到自己的機(jī)器上,import到myeclipse中,需要重新編譯一下,就不會(huì)報(bào)錯(cuò)了。

此外需要注意需要重新引入一下jar文件夾中的mybatis-generator-plugin-1.0.0.jar,如圖:

最終目錄結(jié)構(gòu)如下

接下來(lái),請(qǐng)打開(kāi)配置文件,如圖:

(關(guān)于generatorConfig.xml的具體教程可參見(jiàn):http://blog.csdn.net/isea533/article/details/42102297)

接下來(lái),打開(kāi)generatorConfig.xml,根據(jù)你自己的需求,改變?nèi)缦屡渲茫?/p>

首先,修改數(shù)據(jù)庫(kù)連接地址。

期次,聲明本次需要操作的表及為即將生成的實(shí)體類命名。

再次,設(shè)置實(shí)體文件、dao、mapper.xml生成的路徑。

最后,運(yùn)行StartUp.java

的main方法執(zhí)行生成操作。

mysql中本地?cái)?shù)據(jù)庫(kù)表為

CREATE TABLE `student` (
`id` varchar(50) NOT NULL COMMENT '主鍵',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`gender` int(2) DEFAULT NULL COMMENT '性別1男2女',
`disc` longtext COMMENT '大文本描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

對(duì)照表,我們看一下生成的包和文件:

其中Student.java文件當(dāng)然就是數(shù)據(jù)庫(kù)表實(shí)體類,對(duì)應(yīng)表的相關(guān)字段。

下面,在我們的項(xiàng)目中導(dǎo)入生成的相關(guān)文件,如下:

打開(kāi)Student.java 我們可以發(fā)現(xiàn)字段已經(jīng)生成了中文注釋;

打開(kāi)StudentMapper.xml可以發(fā)現(xiàn)已經(jīng)可以使用mysql的limit分頁(yè);

在配置好mybatis的數(shù)據(jù)庫(kù)連接后(mybatis相關(guān)配置請(qǐng)自行baidu,本文終點(diǎn)介紹mybatis generator的使用),我們開(kāi)始數(shù)據(jù)庫(kù)的相關(guān)操作:

打開(kāi): testMybatis.java

在此,我主要講幾個(gè)容易出錯(cuò)的方法和區(qū)別:

1.selectByExample和selectByExampleWithBLOBs的區(qū)別(包含Example的使用)

@Test
 public void testQueryStudentExample() {
  SqlSession sqlSession = sqlSessionFactory.openSession(false);
  StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
  try {
   //分頁(yè)查詢性別為男、并且名稱中包含z的記錄,第一頁(yè),每頁(yè)3條記錄,按性別排序
   StudentExample studentExample=new StudentExample();
   studentExample.or().andGenderEqualTo(1).andNameLike("%z%");
   studentExample.setOffset(0);
   studentExample.setLimit(3);
       studentExample.setOrderByClause("GENDER DESC");

   List<Student> list1 = studentMapper.selectByExample(studentExample);
   List<Student> list2 = studentMapper.selectByExampleWithBLOBs(studentExample);
   System.out.println(list1.get(0).getDisc());
   System.out.println(list2.get(0).getDisc());
  } catch(Exception e){
   e.printStackTrace();
   sqlSession.rollback(); 
  }finally {
   sqlSession.close();
  }
 }

結(jié)果:

原因:

由于student表中,disc字段類型為longtext,故如果想要搜索結(jié)果包含大字段類型,則必須使用selectByExampleWithBLOBs。無(wú)需檢索大字段,則使用selectByExample;

2.insertSelective和insert的區(qū)別

當(dāng)有部分字段未設(shè)值時(shí),使用insertSelective:

<SPAN style="FONT-SIZE: 14px">@Test
 public void testInsertStudent() { 
  SqlSession sqlSession = sqlSessionFactory.openSession(false); 
  StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); 
  try { 
    
   Student s=new Student(); 
   s.setId(java.util.UUID.randomUUID().toString().replaceAll("\\-", "")); 
   s.setName("zjt"); 
   s.setGender(1); 
   s.setDisc("MyBatis Generator 真心好用"); 
   studentMapper.insertSelective(s); 
   sqlSession.commit(); 
    
    
  } catch(Exception e){ 
   e.printStackTrace(); 
   sqlSession.rollback(); 
  }finally { 
   sqlSession.close(); 
  } 
 } 
</SPAN>

結(jié)果:

當(dāng)有所有字段均已設(shè)值時(shí),使用insert;

<SPAN style="FONT-SIZE: 14px">@Test
  public void testInsertStudent() { 
    SqlSession sqlSession = sqlSessionFactory.openSession(false); 
    StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); 
    try { 
       
      Student s=new Student(); 
      s.setId(java.util.UUID.randomUUID().toString().replaceAll("\\-", "")); 
      s.setName("zjt"); 
      s.setGender(1); 
      s.setDisc("MyBatis Generator 真心好用"); 
      studentMapper.insertSelective(s); 
      sqlSession.commit(); 
       
       
    } catch(Exception e){ 
      e.printStackTrace(); 
      sqlSession.rollback();  
    }finally { 
      sqlSession.close(); 
    } 
  } 
</SPAN> 

結(jié)果:

3.修改操作

updateByExample        

如果example定義了兩個(gè)字段,數(shù)據(jù)庫(kù)共4個(gè)字段,則修改數(shù)據(jù)庫(kù)的兩個(gè)字段,其余兩個(gè)字段改為null;

updateByExampleSelective    

如果example定義了兩個(gè)字段,數(shù)據(jù)庫(kù)共4個(gè)字段,則修改數(shù)據(jù)庫(kù)的兩個(gè)字段,其余兩個(gè)字段不動(dòng);

updateByExampleWithBLOBs   

和updateByExample相比此方法可以修改大字段類型,其余性質(zhì)和updateByExample相同

updateByPrimaryKey       

如果record定義了兩個(gè)字段,其中有一個(gè)字段是主鍵,數(shù)據(jù)庫(kù)共4個(gè)字段,則根據(jù)主鍵修改數(shù)據(jù)庫(kù)的兩個(gè)字段,其余兩個(gè)字段改為null;

updateByPrimaryKeySelective   

如果record定義了兩個(gè)字段,其中有一個(gè)字段是主鍵,數(shù)據(jù)庫(kù)共4個(gè)字段,則根據(jù)主鍵修改數(shù)據(jù)庫(kù)的兩個(gè)字段,其余兩個(gè)字段不動(dòng);

updateByPrimaryKeyWithBLOBs  

和updateByPrimaryKey相比此方法可以修改大字段類型,其余性質(zhì)和updateByPrimaryKey相同

以上這篇mybatis generator 使用方法教程(生成帶注釋的實(shí)體類)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何實(shí)現(xiàn)將類文件打包為jar包

    Java如何實(shí)現(xiàn)將類文件打包為jar包

    這篇文章主要介紹了Java如何實(shí)現(xiàn)將類文件打包為jar包,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析

    Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析

    這篇文章主要介紹了Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring?MVC請(qǐng)求處理流程和九大組件詳解

    Spring?MVC請(qǐng)求處理流程和九大組件詳解

    這篇文章主要介紹了Spring?MVC請(qǐng)求處理流程和九大組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • 使用Spring MVC攔截器實(shí)現(xiàn)日志記錄的方法

    使用Spring MVC攔截器實(shí)現(xiàn)日志記錄的方法

    本篇文章主要介紹了使用Spring MVC攔截器實(shí)現(xiàn)日志記錄的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • idea如何自動(dòng)添加版權(quán)許可證信息

    idea如何自動(dòng)添加版權(quán)許可證信息

    這篇文章主要介紹了idea如何自動(dòng)添加版權(quán)許可證信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中使用MyBatis-Plus操作數(shù)據(jù)庫(kù)的實(shí)例

    Java中使用MyBatis-Plus操作數(shù)據(jù)庫(kù)的實(shí)例

    本文主要介紹了Java中使用MyBatis-Plus操作數(shù)據(jù)庫(kù)的實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • 使用Swagger直接上傳文件的方法

    使用Swagger直接上傳文件的方法

    這篇文章主要介紹了使用Swagger直接上傳文件的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 密碼系統(tǒng)AES私鑰RSA公鑰的加解密示例

    密碼系統(tǒng)AES私鑰RSA公鑰的加解密示例

    這篇文章主要為大家詮釋并介紹了AES私鑰RSA公鑰的加解密系統(tǒng)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • 通過(guò)使用Byte?Buddy便捷創(chuàng)建Java?Agent

    通過(guò)使用Byte?Buddy便捷創(chuàng)建Java?Agent

    這篇文章主要為大家介紹了如何通過(guò)使用Byte?Buddy便捷創(chuàng)建Java?Agent的使用說(shuō)明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java經(jīng)典算法匯總之選擇排序(SelectionSort)

    Java經(jīng)典算法匯總之選擇排序(SelectionSort)

    選擇排序也是比較簡(jiǎn)單的一種排序方法,原理也比較容易理解,選擇排序在每次遍歷過(guò)程中只記錄下來(lái)最小的一個(gè)元素的下標(biāo),待全部比較結(jié)束之后,將最小的元素與未排序的那部分序列的最前面一個(gè)元素交換,這樣就降低了交換的次數(shù),提高了排序效率。
    2016-04-04

最新評(píng)論