日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MyBatis逆向工程生成dao層增刪改查的操作

瀏覽:131日期:2023-10-26 12:00:16
目錄MyBatis逆向工程生成dao層增刪改查如下:Mybatis反向工程的使用首先,用eclipse 建一個maven 項目這時我們的項目結構是這個樣子的現在要寫一下代碼了例如,我們在新的xml文件中這樣寫MyBatis逆向工程生成dao層增刪改查如下:

int countByExample(BUserExample example); //根據條件查詢數量 /** * 示例 * public int countByExample() { * BUserExample userExample = new BUserExample(); * BUserExample.Criteria criteria = userExample.createCriteria(); * criteria.andUsernameEqualTo('fan'); * int count = userMapper.countByExample(userExample); * return count; * } * 相當于:select count(*) from user where username = ’fan’ */ int deleteByExample(BUserExample example); //根據條件刪除數據(一條或多條) /** * 示例 * public int deleteByExample() { * BUserExample userExample = new BUserExample(); * BUserExample.Criteria criteria = userExample.createCriteria(); * criteria.andUsernameEqualTo('fan'); * int count = userMapper.deleteByExample(userExample); * return count; * } * 相當于:delete from user where username = ’fan’ */ int deleteByPrimaryKey(Integer id); //根據主鍵刪除數據 int insert(BUser record); //插入數據(插入一條數據) int insertSelective(BUser record); //插入數據(插入一條數據,只插入不為null的字段,不會影響有默認值的字段) List<BUser> selectByExample(BUserExample example); //根據條件查詢數據 /** * 示例: * public List<BUser> getList() { * BUserExample userExample = new BUserExample(); * BUserExample.Criteria criteria = userExample.createCriteria(); * criteria.andUsernameEqualTo('fan'); * userExample.setOrderByClause('username desc'); * List<BUser> users = userMapper.selectByExample(userExample); * return users; * } * 相當于:select * from user where username = ’fan’ order by username desc */ BUser selectByPrimaryKey(Integer id); //根據主鍵查詢 int updateByExampleSelective(@Param('record') BUser record, @Param('example') BUserExample example); //按條件更新值不為null的字段 /** * 示例: * public int updateByParam(String username) { * BUserExample userExample = new BUserExample(); * BUserExample.Criteria criteria = userExample.createCriteria(); * criteria.andUsernameEqualTo(username); * BUser user = new BUser(); * user.setNickname('jdk'); * int update = userMapper.updateByExampleSelective(user, userExample); * return update; * } * 相當于:update user set nickname = ’jdk’ where username = #{username} */ int updateByExample(@Param('record') BUser record, @Param('example') BUserExample example); //按條件更新 int updateByPrimaryKeySelective(BUser record); //根據主鍵與條件更新 /** * 示例: * public int updateByIdAndParam(String username) { * BUser user = new BUser(); * user.setId(101); * user.setUsername(username); * int update = userMapper.updateByPrimaryKeySelective(user); * return update; * } * 相當于:update user set username = #{username} where id = 101 */ int updateByPrimaryKey(BUser record); //根據主鍵更新Mybatis反向工程的使用

為什么要使用反向工程,因為,快啊。運行一下就可以自動生成,實現,一堆表的增刪查改,等于多了個人幫忙工作,為什么不呢 ?

但與別的工具一樣,自動生成的東西總是有方便的地方,也會有麻煩的地方。所以,使用前要留點心眼。要不工具變負累,對個人還好 對團隊就變禍害了。

因此,下面的教程除了說如何使用,還會說 一個比較重要的技巧和心得,如果有更好的方法,或我說的有什么不對,請直接指出。謝謝

如有問題可以在下面留言,但我不一定有時間回復。

首先,用eclipse 建一個maven 項目

MyBatis逆向工程生成dao層增刪改查的操作

建一個maven 項目

MyBatis逆向工程生成dao層增刪改查的操作

打好勾點next

MyBatis逆向工程生成dao層增刪改查的操作

填好點finish

MyBatis逆向工程生成dao層增刪改查的操作

這時我們的項目結構是這個樣子的

打開pom.xml 文件

把如下內容復制進去:

<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>cc.com</groupId> <artifactId>autoMybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- mybatis依賴 --> <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.5</version></dependency><!-- 反向工程支持包 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <!-- mysql 驅動 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> </dependencies></project>

然后新建如下包:

MyBatis逆向工程生成dao層增刪改查的操作

mybatis.dao (用于放mapper 的java 接口)

mybatis.entity (用于放實體對象)

在src/main/resources 下新建目錄mybatis及它的子目錄mapper

新建baseInfoGeneratorConfig.xml文件

新建jdbc.properties文件

MyBatis逆向工程生成dao層增刪改查的操作

拷貝如下內容進jdbc.properties 要改為正確地址,用戶名, 密碼

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/base_info?useSSL=falsejdbc.username=rootjdbc.password=自已改密碼

拷如下內容進入baseInfoGeneratorConfig.xml

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE generatorConfiguration PUBLIC '-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN' 'http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd'><generatorConfiguration> <properties resource='jdbc.properties' /> <context targetRuntime='MyBatis3'> <!-- 生成的pojo,將implements Serializable--> <plugin type='org.mybatis.generator.plugins.SerializablePlugin'></plugin> <commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name='suppressAllComments' value='true' /> </commentGenerator><!-- 數據庫鏈接URL、用戶名、密碼 --> <jdbcConnection driverClass='${jdbc.driver}' connectionURL='${jdbc.url}' userId='${jdbc.username}' password='${jdbc.password}'> </jdbcConnection><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integertrue,把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --> <javaTypeResolver><property name='forceBigDecimals' value='false' /> </javaTypeResolver><!-- 生成model模型,對應的包路徑,以及文件存放路徑(targetProject),targetProject可以指定具體的路徑,如./src/main/java, 也可以使用“MAVEN”來自動生成,這樣生成的代碼會在target/generatord-source目錄下 --> <!--<javaModelGenerator targetPackage='com.joey.mybaties.test.pojo' targetProject='MAVEN'>--> <javaModelGenerator targetPackage='mybatis.entity' targetProject='./src/main/java'><property name='enableSubPackages' value='true'/><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /> </javaModelGenerator><!--對應的mapper.xml文件 --> <sqlMapGenerator targetPackage='mybatis.mapper' targetProject='./src/main/resources'><property name='enableSubPackages' value='true'/></sqlMapGenerator><!-- 對應的Mapper接口類文件 --> <javaClientGenerator type='XMLMAPPER' targetPackage='mybatis.dao' targetProject='./src/main/java'> <property name='enableSubPackages' value='true'/> </javaClientGenerator> <!-- 你可以改成一張數據庫中真正存在的表 schema 指的是schema,在mysql 中我發現填錯也能跑。tableName 是表名 ObjectName 是對象名--><table schema='base_info' tableName='user_info' domainObjectName='userInfo' enableCountByExample='false' enableUpdateByExample='false' enableDeleteByExample='false' enableSelectByExample='false' selectByExampleQueryId='false' ><property name='useActualColumnNames' value='false'/> </table></context> </generatorConfiguration>

上面的都搞好

現在要寫一下代碼了

在根目錄下建一個 GeneratorSqlmap.java 的JAVA 類

MyBatis逆向工程生成dao層增刪改查的操作

然后把以下內容覆蓋 GeneratorSqlmap.java 文件

import java.io.File;import java.util.ArrayList;import java.util.List; import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback; public class GeneratorSqlmap {public void generator(String generatorConfigFilePath) throws Exception{List<String> warnings = new ArrayList<String>();boolean overwrite = true;Class.forName('com.mysql.jdbc.Driver');//指定 逆向工程配置文件File configFile = new File(generatorConfigFilePath); ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);myBatisGenerator.generate(null); }​public static void main(String[] args) throws Exception {try {GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();//這里要填對配置文件路徑generatorSqlmap.generator('src/main/resources/baseInfoGeneratorConfig.xml');} catch (Exception e) {e.printStackTrace();}System.exit(0);} }

最后運行,GeneratorSqlmap.java ,然后刷新一下項目,就可以得到非常漂亮的,表的entity,mapper interface,mapper xml

MyBatis逆向工程生成dao層增刪改查的操作

以上的代碼可以在下面的github鏈接中找到

現在我們分享一個,能讓自動生成和手工修改和平共存的方法。

為什么要和平共存,因為,在數據庫表中要加或減一個字段,重復自動生成有可能覆蓋掉原來的。

這里有個經過實驗的方案,首先在我們生成完第一次沒有問題后,把baseInfoGeneratorConfig.xml 中的生成pojo(entity 你愛叫什么叫什么)

<!-- 生成model模型,對應的包路徑,以及文件存放路徑(targetProject),targetProject可以指定具體的路徑,如./src/main/java, 也可以使用“MAVEN”來自動生成,這樣生成的代碼會在target/generatord-source目錄下 --> <!--<javaModelGenerator targetPackage='com.joey.mybaties.test.pojo' targetProject='MAVEN'>--> <javaModelGenerator targetPackage='mybatis.entity' targetProject='./src/main/java'><property name='enableSubPackages' value='true'/><!-- 從數據庫返回的值被清理前后的空格 --><property name='trimStrings' value='true' /> </javaModelGenerator>

還有生成接口的

<!-- 對應的Mapper接口類文件 --> <javaClientGenerator type='XMLMAPPER' targetPackage='mybatis.dao' targetProject='./src/main/java'> <property name='enableSubPackages' value='true'/> </javaClientGenerator>

的注掉

然后,不要修改系統自動生成的 mapper.xml

MyBatis逆向工程生成dao層增刪改查的操作

(可以為配置文件中改個特別一點的名字(例如帶上sys),跟團隊的成員說一下就可以了。

然后,別外寫一個XML mapper 用于開發

MyBatis逆向工程生成dao層增刪改查的操作

只要namespace 是相同的,還是會在對應的接口中生成

例如,我們在新的xml文件中這樣寫

MyBatis逆向工程生成dao層增刪改查的操作

只需要在系統生成的JAVA接口中增加:

MyBatis逆向工程生成dao層增刪改查的操作

這樣一來,如果數據庫需要增加字段。只需簡單的三步就可以。

一,把系統生成的配置文件刪了。 二,運行自動生成。 三,把新加的字段在對應的pojo(或叫entity 中增加)

就可以,很好的把自動生成和手工修改做出分離。同時也會減少很多不應該出現的錯誤。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久国内精品视频| 日韩精品一区二区三区av| 欧美日韩一区二区国产 | 国产精品一区二区免费福利视频| 亚洲激情中文| 裤袜国产欧美精品一区| 精品视频网站| 成人亚洲一区| 三上悠亚国产精品一区二区三区 | 国产精品成人国产| 91欧美日韩在线| 久久国产精品色av免费看| 欧美久久亚洲| 久久亚洲精品中文字幕| 动漫av一区| 欧美日韩精品免费观看视完整| 国产91欧美| 久久久久免费av| 91久久中文| 日韩高清电影一区| 国产精品久久久久久久免费软件| 精品午夜av| 久久三级视频| 激情综合网址| 亚洲人成高清| 欧美黑人做爰爽爽爽| 福利一区和二区| 欧美亚洲激情| 日韩精品五月天| 久久伊人亚洲| 99久久夜色精品国产亚洲狼| 三级精品视频| 蜜桃久久久久久| 欧美一区精品| 日韩免费高清| 中文字幕亚洲影视| 欧美精品导航| 午夜精品一区二区三区国产| 亚洲精品亚洲人成在线观看| 国产欧美一区二区三区米奇| 国产亚洲一区二区手机在线观看| 国产精品毛片一区二区三区| 国产乱码精品一区二区三区四区| 成人污污视频| 女同性一区二区三区人了人一 | 久久蜜桃精品| 四虎在线精品| a天堂资源在线| 巨乳诱惑日韩免费av| 麻豆一区二区99久久久久| 精品一区免费| 国产精品网在线观看| 欧美亚洲在线日韩| 91精品国产自产在线丝袜啪| 91精品啪在线观看国产18| 免费欧美在线视频| 国产96在线亚洲| 亚洲精品动态| 综合日韩av| 中文字幕日韩高清在线 | 成人看片网站| 日韩二区三区在线观看| 亚洲福利免费| 国产精品久久久久久av公交车 | 亚洲天堂1区| 日韩国产在线一| 久久精品国产大片免费观看| 日韩av中文字幕一区| 91精品在线观看国产| 国产乱码精品一区二区三区亚洲人| 国产在线不卡| 国产精品a级| 亚洲欧美成人综合| 91亚洲国产| 91精品国产自产精品男人的天堂 | 国产乱人伦丫前精品视频| 99精品在线| 国产精品超碰| 免费观看在线综合| 欧美日韩视频免费观看| 久久精品72免费观看| 99久久99久久精品国产片果冰| 国产精品v日韩精品v欧美精品网站 | 欧美韩一区二区| 亚洲欧美日韩视频二区| 成人片免费看| 国产精品天天看天天狠| 中文字幕日韩高清在线| 久久视频国产| 日韩成人精品一区| 国产精品主播| 免费成人av在线播放| 香蕉视频亚洲一级| 狠狠久久伊人中文字幕| 日韩av二区在线播放| 六月婷婷一区| 亚洲福利国产| 天堂中文在线播放| 国产精品tv| 日韩高清电影一区| 亚洲欧洲美洲国产香蕉| 麻豆91精品| 亚洲高清二区| 精品亚洲美女网站| 成人av三级| 手机在线电影一区| 国产三级一区| 日韩国产精品久久久久久亚洲| 男女激情视频一区| 亚洲尤物在线| 免费视频久久| 亚洲一区网站| 99国产精品| 合欧美一区二区三区| 精品日韩毛片| 91精品精品| 久久精选视频| 亚洲成人一区在线观看| 欧美精品高清| 国产欧美日韩视频在线| 欧美日韩视频免费观看| 欧美三级第一页| 欧美片网站免费| 国产一卡不卡| 美女精品视频在线| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 91成人精品观看| 国产三级一区| 你懂的网址国产 欧美| 91成人在线| 国产精品15p| 国产一区二区三区不卡视频网站 | 亚洲美女久久| 日韩区一区二| 国产午夜精品一区在线观看| 国产亚洲字幕| 国产精品va| 岛国av在线网站| 日韩欧美一区二区三区在线观看| 欧美日韩精品免费观看视欧美高清免费大片 | 好看的av在线不卡观看| 久久福利毛片| 午夜电影一区| 欧美偷窥清纯综合图区| 国产精品调教视频| 日韩成人精品一区二区| 青青久久av| 丝袜美腿亚洲一区二区图片| 日本不卡高清| 久久av综合| 久久精品动漫| 好吊一区二区三区| 偷拍亚洲精品| 嫩呦国产一区二区三区av| 日韩毛片视频| 久久av在线| 国产精品日韩精品在线播放| 福利一区视频| 黄页网站一区| 欧美亚洲自偷自偷| 超碰99在线| 亚洲人www| 国内精品麻豆美女在线播放视频| 日韩精品永久网址| 玖玖玖国产精品| 国产精品17p| 蜜桃精品在线| 日本综合精品一区| 91亚洲国产高清| 最新亚洲国产| 国产一区丝袜| 亚洲视频电影在线| 国产成人免费| 亚洲九九精品| 最新中文字幕在线播放| 亚洲午夜一级| 欧美私人啪啪vps| 亚洲综合电影| 亚洲人成亚洲精品| 免费在线观看一区| 欧美.日韩.国产.一区.二区| 国产精品7m凸凹视频分类| 色狠狠一区二区三区| 97欧美在线视频| 中文字幕日本一区二区| 麻豆网站免费在线观看| 国产99精品一区| 欧美日本不卡高清| 欧美日韩尤物久久| 日韩av电影一区| 国产综合婷婷| 国产精品久久久久久久免费软件| 精品一区毛片| 另类欧美日韩国产在线| 精品一区亚洲| 国内不卡的一区二区三区中文字幕| 久久久精品午夜少妇| 国产视频欧美| 国产极品模特精品一二| 久久久久久自在自线|