中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

generator如何在mybatis中使用

發布時間:2020-12-02 15:56:29 來源:億速云 閱讀:236 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關 generator如何在mybatis中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

引言:

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

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

需求場景:

當你的java 項目數據庫有N張表需要使用mybatis進行數據庫操作時,建議使用mybatis generator 自動生成工具。可以自動幫助你生成java實體類、dao、mapper.xml等。

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

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

generator如何在mybatis中使用

最終目錄結構如下

generator如何在mybatis中使用

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

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

generator如何在mybatis中使用

接下來,打開generatorConfig.xml,根據你自己的需求,改變如下配置:

首先,修改數據庫連接地址。

generator如何在mybatis中使用

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

generator如何在mybatis中使用

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

generator如何在mybatis中使用

最后,運行StartUp.java

generator如何在mybatis中使用

的main方法執行生成操作。

mysql中本地數據庫表為

generator如何在mybatis中使用

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

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

generator如何在mybatis中使用generator如何在mybatis中使用generator如何在mybatis中使用

其中Student.java文件當然就是數據庫表實體類,對應表的相關字段。

下面,在我們的項目中導入生成的相關文件,如下:

generator如何在mybatis中使用

打開Student.java 我們可以發現字段已經生成了中文注釋;

generator如何在mybatis中使用

打開StudentMapper.xml可以發現已經可以使用mysql的limit分頁;

generator如何在mybatis中使用

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

打開: testMybatis.java

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

1.selectByExample和selectByExampleWithBLOBs的區別(包含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();
  }
 }

結果:generator如何在mybatis中使用

原因:

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

2.insertSelective和insert的區別

當有部分字段未設值時,使用insertSelective:

<SPAN >@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>

結果:

generator如何在mybatis中使用

當有所有字段均已設值時,使用insert;

<SPAN >@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> 

結果:

generator如何在mybatis中使用

3.修改操作

generator如何在mybatis中使用

updateByExample        

如果example定義了兩個字段,數據庫共4個字段,則修改數據庫的兩個字段,其余兩個字段改為null;

updateByExampleSelective    

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

updateByExampleWithBLOBs   

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

updateByPrimaryKey       

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

updateByPrimaryKeySelective   

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

updateByPrimaryKeyWithBLOBs  

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

上述就是小編為大家分享的 generator如何在mybatis中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漯河市| 县级市| 麦盖提县| 蒙城县| 广平县| 富宁县| 河北区| 文安县| 米脂县| 绿春县| 新安县| 延边| 西和县| 新野县| 石林| 桐庐县| 开鲁县| 义马市| 余庆县| 崇文区| 闵行区| 长宁县| 仁布县| 曲麻莱县| 新蔡县| 米易县| 邻水| 越西县| 江源县| 铁岭市| 唐山市| 肇庆市| 西和县| 浠水县| 肥东县| 南靖县| 民勤县| 元朗区| 海南省| 麻城市| 烟台市|