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

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot+MybatisPlus+代碼生成器整合示例

瀏覽:20日期:2023-05-27 10:14:02

項(xiàng)目目錄結(jié)構(gòu):

SpringBoot+MybatisPlus+代碼生成器整合示例

pom文件:

<?xml version='1.0' encoding='UTF-8'?><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>com.warrior</groupId> <artifactId>ETH</artifactId> <version>1.0-SNAPSHOT</version> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.BUILD-SNAPSHOT</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatis的orm插件 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatisplus-spring-boot-starter</artifactId> <version>1.0.4</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.0.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> <!--數(shù)據(jù)庫連接jdbc依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--mysql鏈接依賴--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--阿里druid數(shù)據(jù)庫鏈接依賴--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>0.10.1</version> <scope>provided</scope> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <!-- Add Spring repositories --> <!-- (you don’t need this if you are using a .RELEASE version) --> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories></project>

Application

package com.warrior;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody; @SpringBootApplication@MapperScan('com.warrior.mapper') //配置mapper掃描public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); }}

application.properties

#默認(rèn)啟用開發(fā)環(huán)境配置spring.profiles.active=dev#啟用生產(chǎn)環(huán)境配置#spring.profiles.active=pro

application-dev.properties

server.port=8080spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://localhost:3306/ethspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.max-idle=10spring.datasource.max-wait=10000spring.datasource.min-idle=5spring.datasource.initial-size=5mybatis-plus.mapper-locations=classpath:/mapper/*Mapper.xmlmybatis-plus.typeAliasesPackage=com.cn.restyle.entity

配置文件:

1).

package com.warrior.config; import javax.sql.DataSource; import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.datasource.DataSourceTransactionManager; import com.alibaba.druid.pool.DruidDataSource; /** * 數(shù)據(jù)源配置 */@Configurationpublic class DataSourceConfig { @Bean(name='dataSource') @ConfigurationProperties(prefix='spring.datasource') public DataSource dataSource(){ return new DruidDataSource(); } // 配置事物管理器 @Bean(name='transactionManager') public DataSourceTransactionManager transactionManager(){ return new DataSourceTransactionManager(dataSource()); } }

2). MybatisPlusConfig.java:

package com.warrior.config; import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.baomidou.mybatisplus.plugins.PaginationInterceptor; @Configuration//掃描dao或者是Mapper接口@MapperScan('com.warrior.mapper*')public class MybatisPlusConfig { /** * mybatis-plus 分頁插件 */ @Bean public PaginationInterceptor paginationInterceptor(){ PaginationInterceptor page = new PaginationInterceptor(); page.setDialectType('mysql'); return page; } }

生成代碼:

1).mysql數(shù)據(jù)庫建表

SpringBoot+MybatisPlus+代碼生成器整合示例

2).代碼生成器MpGenenator.java

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.InjectionConfig;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;import com.baomidou.mybatisplus.generator.config.po.TableInfo;import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;import com.baomidou.mybatisplus.generator.config.rules.DbType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; /** * <p> * 代碼生成器演示 * </p> */public class MpGenerator { final static String dirPath = 'D://'; /** * <p> * MySQL 生成演示 * </p> */ public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 選擇 freemarker 引擎,默認(rèn) Veloctiy //mpg.setTemplateEngine(new FreemarkerTemplateEngine()); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(dirPath); gc.setAuthor('lqh'); gc.setFileOverride(true); //是否覆蓋 gc.setActiveRecord(true);// 不需要ActiveRecord特性的請(qǐng)改為false gc.setEnableCache(false);// XML 二級(jí)緩存 gc.setBaseResultMap(true);// XML ResultMap gc.setBaseColumnList(true);// XML columList // 自定義文件命名,注意 %s 會(huì)自動(dòng)填充表實(shí)體屬性! // gc.setMapperName('%sDao'); // gc.setXmlName('%sMapper'); // gc.setServiceName('MP%sService'); // gc.setServiceImplName('%sServiceDiy'); // gc.setControllerName('%sAction'); mpg.setGlobalConfig(gc); // 數(shù)據(jù)源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setTypeConvert(new MySqlTypeConvert(){ // 自定義數(shù)據(jù)庫表字段類型轉(zhuǎn)換【可選】 @Override public DbColumnType processTypeConvert(String fieldType) { System.out.println('轉(zhuǎn)換類型:' + fieldType); // 注意!!processTypeConvert 存在默認(rèn)類型轉(zhuǎn)換,如果不是你要的效果請(qǐng)自定義返回、非如下直接返回。 return super.processTypeConvert(fieldType); } }); dsc.setDriverName('com.mysql.jdbc.Driver'); dsc.setUsername('root'); dsc.setPassword('123456'); dsc.setUrl('jdbc:mysql://127.0.0.1:3306/eth?characterEncoding=utf8'); mpg.setDataSource(dsc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); // strategy.setCapitalMode(true);// 全局大寫命名 ORACLE 注意 strategy.setTablePrefix(new String[] { 'tb_', 'tsys_' });// 此處可以修改為您的表前綴 strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 // strategy.setInclude(new String[] { 'user' }); // 需要生成的表 // strategy.setExclude(new String[]{'test'}); // 排除生成的表 // 自定義實(shí)體父類 // strategy.setSuperEntityClass('com.baomidou.demo.TestEntity'); // 自定義實(shí)體,公共字段 // strategy.setSuperEntityColumns(new String[] { 'test_id', 'age' }); // 自定義 mapper 父類 // strategy.setSuperMapperClass('com.baomidou.demo.TestMapper'); // 自定義 service 父類 // strategy.setSuperServiceClass('com.baomidou.demo.TestService'); // 自定義 service 實(shí)現(xiàn)類父類 // strategy.setSuperServiceImplClass('com.baomidou.demo.TestServiceImpl'); // 自定義 controller 父類 // strategy.setSuperControllerClass('com.baomidou.demo.TestController'); // 【實(shí)體】是否生成字段常量(默認(rèn) false) // public static final String ID = 'test_id'; // strategy.setEntityColumnConstant(true); // 【實(shí)體】是否為構(gòu)建者模型(默認(rèn) false) // public User setName(String name) {this.name = name; return this;} strategy.setEntityBuilderModel(true); mpg.setStrategy(strategy); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent('com'); pc.setModuleName('warrior'); pc.setController('controler'); pc.setEntity('entity'); pc.setMapper('mapper'); pc.setService('service'); pc.setServiceImpl('serviceImpl'); pc.setXml('mapperXml'); mpg.setPackageInfo(pc); // 注入自定義配置,可以在 VM 中使用 cfg.abc 【可無】 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { Map<String, Object> map = new HashMap<String, Object>(); map.put('abc', this.getConfig().getGlobalConfig().getAuthor() + '-mp'); this.setMap(map); } }; // 自定義 xxList.jsp 生成 List<FileOutConfig> focList = new ArrayList<FileOutConfig>();/* focList.add(new FileOutConfig('/template/list.jsp.vm') { @Override public String outputFile(TableInfo tableInfo) { // 自定義輸入文件名稱 return 'D://my_' + tableInfo.getEntityName() + '.jsp'; } }); cfg.setFileOutConfigList(focList); mpg.setCfg(cfg);*/ // 調(diào)整 xml 生成目錄演示/* focList.add(new FileOutConfig('/templates/mapper.xml.vm') { @Override public String outputFile(TableInfo tableInfo) { return dirPath + tableInfo.getEntityName() + 'Mapper.xml'; } }); cfg.setFileOutConfigList(focList); */ mpg.setCfg(cfg); // 關(guān)閉默認(rèn) xml 生成,調(diào)整生成 至 根目錄/* TemplateConfig tc = new TemplateConfig(); tc.setXml(null); mpg.setTemplate(tc);*/ // 自定義模板配置,可以 copy 源碼 mybatis-plus/src/main/resources/templates 下面內(nèi)容修改, // 放置自己項(xiàng)目的 src/main/resources/templates 目錄下, 默認(rèn)名稱一下可以不配置,也可以自定義模板名稱 // TemplateConfig tc = new TemplateConfig(); // tc.setController('...'); // tc.setEntity('...'); // tc.setMapper('...'); // tc.setXml('...'); // tc.setService('...'); // tc.setServiceImpl('...'); // 如上任何一個(gè)模塊如果設(shè)置 空 OR Null 將不生成該模塊。 // mpg.setTemplate(tc); // 執(zhí)行生成 mpg.execute(); // 打印注入設(shè)置【可無】 System.err.println(mpg.getCfg().getMap().get('abc')); } }

生成的文件如下,只要將對(duì)應(yīng)文件拷到項(xiàng)目對(duì)應(yīng)包即可:

SpringBoot+MybatisPlus+代碼生成器整合示例

下面把對(duì)應(yīng)類展示出來:

.entity-->Student.java

package com.warrior.entity; import com.baomidou.mybatisplus.enums.IdType;import com.baomidou.mybatisplus.annotations.TableId;import com.baomidou.mybatisplus.annotations.TableField;import com.baomidou.mybatisplus.activerecord.Model;import com.baomidou.mybatisplus.annotations.TableName;import java.io.Serializable; /** * <p> * * </p> * * @author lqh * @since 2018-05-25 */@TableName('tb_student')public class Student extends Model<Student> { private static final long serialVersionUID = 1L; @TableId(value='id', type= IdType.AUTO)private Integer id;@TableField('stu_name')private String stuName;@TableField('stu_number')private String stuNumber;private Integer age; public Integer getId() {return id;} public Student setId(Integer id) {this.id = id;return this;} public String getStuName() {return stuName;} public Student setStuName(String stuName) {this.stuName = stuName;return this;} public String getStuNumber() {return stuNumber;} public Student setStuNumber(String stuNumber) {this.stuNumber = stuNumber;return this;} public Integer getAge() {return age;} public Student setAge(Integer age) {this.age = age;return this;} @Overrideprotected Serializable pkVal() {return this.id;} }

.mapper-->StudentMapper.java

package com.warrior.mapper; import com.warrior.entity.Student;import com.baomidou.mybatisplus.mapper.BaseMapper; /** * <p> * Mapper 接口 * </p> * * @author lqh * @since 2018-05-25 */public interface StudentMapper extends BaseMapper<Student> { }

mapperXml-->StudentMapper.xml(這個(gè)文件要放到src/main/resources/mapper)

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='com.warrior.mapper.StudentMapper'> <!-- 通用查詢映射結(jié)果 --><resultMap type='com.warrior.entity.Student'><id column='id' property='id' /><result column='stu_name' property='stuName' /><result column='stu_number' property='stuNumber' /><result column='age' property='age' /></resultMap> <!-- 通用查詢結(jié)果列 --> <sql id='Base_Column_List'> id, stu_name AS stuName, stu_number AS stuNumber, age </sql> </mapper>

.service-->IStudentService.java

package com.warrior.service; import com.warrior.entity.Student;import com.baomidou.mybatisplus.service.IService; /** * <p> * 服務(wù)類 * </p> * * @author lqh * @since 2018-05-25 */public interface IStudentService extends IService<Student> {}

.serviceImpl-->StudentServiceImpl.java

package com.warrior.serviceImpl; import com.warrior.entity.Student;import com.warrior.mapper.StudentMapper;import com.warrior.service.IStudentService;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import org.springframework.stereotype.Service; /** * <p> * 服務(wù)實(shí)現(xiàn)類 * </p> * * @author lqh * @since 2018-05-25 */@Servicepublic class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements IStudentService {}

.controler-->StudentController.java

package com.warrior.controler; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; /** * <p> * 前端控制器 * </p> * * @author lqh * @since 2018-05-25 */@Controller@RequestMapping('/warrior/student')public class StudentController {}

經(jīng)過以上六步項(xiàng)目已經(jīng)搭建完成,下面就是寫業(yè)務(wù)代碼了,只需要實(shí)現(xiàn)controller即可,下面對(duì)StudentController.java進(jìn)行修改:

package com.warrior.controler; import com.warrior.entity.Student;import com.warrior.service.IStudentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody; /** * <p> * 前端控制器 * </p> * * @author lqh * @since 2018-05-05 */@Controller@RequestMapping('/warrior/student')public class StudentController { @Autowired IStudentService iStudentService; @RequestMapping('/hello') @ResponseBody public String hello() { //insert Student student = new Student() .setStuName('zhangsan') .setStuNumber('54') .setAge(23); boolean res = iStudentService.insert(student); return res ? 'success' : 'fail'; }}

運(yùn)行項(xiàng)目,直接訪問,搞定!!

項(xiàng)目github地址:https://github.com/LinQiHong66/SpringBoot_MybatisPlus.git

mybatisPlus官網(wǎng):http://mp.baomidou.com/

到此這篇關(guān)于SpringBoot+MybatisPlus+代碼生成器整合示例的文章就介紹到這了,更多相關(guān)SpringBoot MybatisPlus 代碼生成器 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产68国产精品亚洲| 婷婷久久一区| 亚洲欧美久久| 久久大逼视频| 婷婷亚洲五月| 黑丝一区二区三区| 国产欧美日韩一区二区三区四区 | 精品中文字幕一区二区三区四区| 国产精品毛片aⅴ一区二区三区| 国产一区二区三区亚洲综合| 婷婷亚洲五月| 欧美日韩四区| 免费视频最近日韩| 老色鬼精品视频在线观看播放| 99精品网站| 日韩中文字幕一区二区三区| 亚洲自啪免费| 日韩精品免费视频人成 | 美女性感视频久久| 精品日韩一区| 日韩欧美中文| 日本一区二区中文字幕| 日本成人中文字幕在线视频| 久久精品99国产精品日本| 日韩欧美一区二区三区免费看| 欧美sm一区| 欧美亚洲三区| 国产精品高潮呻吟久久久久| jizzjizz中国精品麻豆| 亚洲无线观看| 日韩欧美中文| 婷婷亚洲五月| 欧美日韩一区自拍| 亚洲啊v在线| 男女性色大片免费观看一区二区| 亚洲伊人影院| 欧美精品99| 免费在线小视频| 免费观看在线综合| 你懂的亚洲视频| 91久久国产| 欧美日韩伊人| 激情久久中文字幕| 91精品麻豆| 免费毛片在线不卡| 亚洲视频二区| 国产一区二区亚洲| 亚洲一区二区网站| 日本美女一区| 蜜臀久久99精品久久久久久9| 日韩精品一页| 日韩精品专区| 日韩高清中文字幕一区| 韩国精品主播一区二区在线观看| 亚洲狼人精品一区二区三区| 日韩国产一区二区三区| 中文字幕亚洲影视| av免费不卡国产观看| 日韩一区欧美二区| 成人在线视频免费看| 日韩中文字幕亚洲一区二区va在线| 免费视频一区二区三区在线观看| 尤物精品在线| 精品99在线| 日韩中文字幕视频网| 狠狠久久婷婷| 青青国产精品| 99久久精品网站| 久久精品999| 夜久久久久久| 日本欧美国产| 免费精品一区| 午夜在线视频观看日韩17c| 久久免费福利| 中文字幕成人| 色爱av综合网| 国产日韩欧美在线播放不卡| 黄色国产精品| 亚洲黄色免费看| 国产欧美一级| 亚洲免费婷婷| 色天使综合视频| 卡一卡二国产精品| 日韩avvvv在线播放| 亚洲欧美日韩一区在线观看| 欧美13videosex性极品| 久久只有精品| 欧美专区一区| 亚洲小说春色综合另类电影| 99精品国产一区二区三区| 欧美国产另类| 久久国际精品| 日韩中文字幕视频网| 欧美综合二区| 欧美日韩国产免费观看视频| av资源亚洲| 国产精品3区| 欧美一级久久| 日韩欧美精品一区二区综合视频| 色综合狠狠操| 精品午夜视频| 国产精品v一区二区三区| 亚洲啊v在线| 影音国产精品| 亚洲精品无播放器在线播放| 欧美a在线观看| 国产精品普通话对白| 欧美91在线|欧美| 日韩激情一区| 久久香蕉国产| 99视频一区| 精品一区电影| 老司机精品视频在线播放| 97精品国产| 国产精品99一区二区三| 日韩二区在线观看| 精品色999| 免费av一区二区三区四区| 福利一区视频| 欧美肉体xxxx裸体137大胆| 欧美日韩 国产精品| 国产精品激情电影| 91中文字幕精品永久在线| 新版的欧美在线视频| 美女国产精品| 欧美天堂一区二区| 亚洲深深色噜噜狠狠爱网站| 国产精品一在线观看| 麻豆视频一区二区| 深夜福利视频一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩国产在线观看一区| 亚洲精品乱码| 婷婷亚洲成人| 国产精品美女在线观看直播| 欧美亚洲人成在线| 日韩精品一区二区三区中文| 丝瓜av网站精品一区二区| 日韩影院在线观看| 日韩成人在线看| 日韩精品成人在线观看| 久久av一区| 欧美亚洲一区二区三区| 99热免费精品| 激情91久久| 美女被久久久| 日韩精品a在线观看91| 国产精品成人3p一区二区三区| 久久久久亚洲精品中文字幕| 国产一区二区三区亚洲综合| 香蕉视频亚洲一级| 尤物网精品视频| 日本成人中文字幕| 黄色网一区二区| 婷婷成人在线| 一区二区高清| 青青草91视频| 国产一区国产二区国产三区 | 久久影视三级福利片| 日韩久久视频| 亚洲在线电影| 日韩av不卡在线观看| а√天堂8资源中文在线| 伊人成人在线视频| 欧美亚洲国产日韩| 天堂а√在线最新版中文在线| 亚洲激情欧美| 国产麻豆一区二区三区精品视频| 久久精品国产久精国产| 婷婷六月综合| 国产精品高清一区二区| 久久麻豆精品| 欧美久久一区二区三区| 91精品国产乱码久久久久久久| 亚洲欧洲日韩| 中文字幕在线视频久| 中文无码日韩欧| 亚洲美女久久精品| 亚洲精品激情| 超碰超碰人人人人精品| 亚洲一区有码| 老牛影视精品| 亚洲91网站| caoporn视频在线| 亚洲精品在线国产| 91视频一区| 一区二区三区四区日韩| 麻豆mv在线观看| 日韩高清在线观看一区二区| 久久久国产亚洲精品| 日韩高清一区| 99久久久久国产精品| 91嫩草精品| 亚洲激情中文| 精品国产三区在线| 亚洲精品在线二区| 久久久久久久久99精品大| 国产欧美啪啪| 欧美日韩亚洲在线观看| 国产精品传媒麻豆hd|