最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

引言:

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

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

需求場景:

當(dāng)你的java 項目數(shù)據(jù)庫有N張表需要使用mybatis進行數(shù)據(jù)庫操作時,建議使用mybatis generator 自動生成工具??梢宰詣訋椭闵蒵ava實體類、dao、mapper.xml等。

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

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

代碼克隆到自己的機器上,import到myeclipse中,需要重新編譯一下,就不會報錯了。

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

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

接下來,請打開配置文件,如圖:

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

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

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

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

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

最后,運行StartUp.java

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

mysql中本地數(shù)據(jù)庫表為

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

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

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

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

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

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

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

打開: testMybatis.java

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

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

@Test
 public void testQueryStudentExample() {
  SqlSession sqlSession = sqlSessionFactory.openSession(false);
  StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
  try {
   //分頁查詢性別為男、并且名稱中包含z的記錄,第一頁,每頁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。無需檢索大字段,則使用selectByExample;

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

當(dāng)有部分字段未設(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è)值時,使用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定義了兩個字段,數(shù)據(jù)庫共4個字段,則修改數(shù)據(jù)庫的兩個字段,其余兩個字段改為null;

updateByExampleSelective    

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

updateByExampleWithBLOBs   

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

updateByPrimaryKey       

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

updateByPrimaryKeySelective   

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

updateByPrimaryKeyWithBLOBs  

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

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

相關(guān)文章

  • Java FtpClient 實現(xiàn)文件上傳服務(wù)

    Java FtpClient 實現(xiàn)文件上傳服務(wù)

    本文主要對Java FtpClient實現(xiàn)簡單的圖片上傳到服務(wù)器的方法進行介紹,并且展示的小demo中,對配置過程中主要碰到的問題:關(guān)于文件權(quán)限的問題也進行了說明,下面跟著小編一起來看下吧
    2016-12-12
  • Java實現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    Java實現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    這篇文章主要介紹了Java實現(xiàn)把窗體隱藏到系統(tǒng)托盤方法,本文直接給出核心功能代碼,需要的朋友可以參考下
    2015-05-05
  • Spring SmartLifecycle:如何精準控制Bean的生命周期

    Spring SmartLifecycle:如何精準控制Bean的生命周期

    這篇文章主要介紹了Spring SmartLifecycle:如何精準控制Bean的生命周期問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java 正則表達式詳細介紹

    Java 正則表達式詳細介紹

    本文主要介紹 Java 正則表達式的內(nèi)容,這里整理了Java 正則表達式的相關(guān)資料,并詳細介紹,附有代碼示例,有興趣的小伙伴可以參考下
    2016-09-09
  • IDEA必備開發(fā)神器之EasyCode

    IDEA必備開發(fā)神器之EasyCode

    對于java程序員來說,日常工作中就是crud的操作,每次都要搭建MVC三層,還是很繁瑣,這里就出現(xiàn)了神器easycode的工具.可以快速生成代碼.并且還可以自定義模板.需要的朋友可以參考下
    2021-05-05
  • 淺談Springmvc中的頁面跳轉(zhuǎn)問題

    淺談Springmvc中的頁面跳轉(zhuǎn)問題

    這篇文章主要介紹了淺談Springmvc中的頁面跳轉(zhuǎn)問題,具有一定參考價值,需要的朋友可以了解下。
    2017-12-12
  • Java 讀取文件方法大全

    Java 讀取文件方法大全

    這篇文章主要介紹了Java 讀取文件方法大全,需要的朋友可以參考下
    2014-11-11
  • Redis內(nèi)存數(shù)據(jù)庫示例分析

    Redis內(nèi)存數(shù)據(jù)庫示例分析

    Redis本身的內(nèi)容比較復(fù)雜。如果你上來,你應(yīng)該研究一個細節(jié)點,比如連接池和數(shù)據(jù)結(jié)構(gòu)。雖然可以直接了解某一點的詳細來源內(nèi)容,甚至盡快解決一些意外,但是容易淹沒在失眠的細節(jié)中,整體控制不了Redis
    2022-12-12
  • eclipse啟動tomcat無法訪問的解決方法

    eclipse啟動tomcat無法訪問的解決方法

    這篇文章介紹了eclipse啟動tomcat無法訪問的解決方法,有需要的朋友可以參考一下
    2013-10-10
  • Java?HttpURLConnection使用方法與實例演示分析

    Java?HttpURLConnection使用方法與實例演示分析

    這篇文章主要介紹了Java?HttpURLConnection使用方法與實例演示,HttpURLConnection一個抽象類是標準的JAVA接口,該類位于java.net包中,它提供了基本的URL請求,響應(yīng)等功能,下面我們來深入看看
    2023-10-10

最新評論

乌拉特前旗| 磴口县| 双柏县| 沂南县| 镇江市| 临高县| 赤水市| 平顶山市| 威远县| 西畴县| 宜城市| 临汾市| 天全县| 闻喜县| 山东省| 白银市| 洪洞县| 班戈县| 新源县| 普兰店市| 郯城县| 辉南县| 嵊州市| 宣武区| 阳高县| 修武县| 成安县| 连平县| 增城市| 安国市| 益阳市| 顺义区| 高安市| 饶平县| 怀化市| 舟曲县| 南雄市| 固安县| 鄂托克旗| 正安县| 德阳市|