最近很多小伙伴都在问Springboot+mybatis+mysql代码生成器和mybatis-plus代码生成器这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展javaday55
最近很多小伙伴都在问Spring boot + mybatis + mysql 代码生成器和mybatis-plus 代码生成器这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】、java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security、MakuGenerator 3.0.3 发布:Spring Boot 3.0 代码生成器、MyBatis Plus 2.3 个人笔记 - 01 - 代码生成器等相关知识,下面开始了哦!
本文目录一览:- Spring boot + mybatis + mysql 代码生成器(mybatis-plus 代码生成器)
- java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】
- java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security
- MakuGenerator 3.0.3 发布:Spring Boot 3.0 代码生成器
- MyBatis Plus 2.3 个人笔记 - 01 - 代码生成器
Spring boot + mybatis + mysql 代码生成器(mybatis-plus 代码生成器)
<build>
<plugins>
<!--逆向工程-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>false</overwrite>
</configuration>
<dependencies>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<?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>
<context id="mysql" defaultModelType="hierarchical"
targetRuntime="MyBatis3Simple">
<!-- 自动识别数据库关键字,
默认false,如果设置为true,
根据SqlReservedWords中定义的关键字列表;
一般保留默认值,
遇到数据库关键字(Java关键字),
使用columnOverride覆盖 -->
<property name="autoDelimitKeywords" value="false" />
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8" />
<!-- 格式化java代码 -->
<property name="javaFormatter"
value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
<!-- 格式化XML代码 -->
<property name="xmlFormatter"
value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,
比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`" />
<property name="endingDelimiter" value="`" />
<!--阻止生成日期和注释-->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库连接信息 这个地方改一下,改成自己的数据库-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql:///test" userId="root" password="root">
</jdbcConnection>
<!-- java类型处理器 用于处理数据库中的类型到Java中的类型,
默认使用JavaTypeResolverDefaultImpl;
注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和
NUMERIC数据类型; -->
<javaTypeResolver
type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
<!-- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型 f
alse:默认, scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long; scale=0;length[5,9]:
使用Integer; scale=0;length<5:使用Short; -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--
配置domain生成策略
targetProject:把自动生成的实休类放在哪个工程里面
targetPackage:哪个包下 这个地方改一下,改为自己的包名
-->
<javaModelGenerator targetPackage="com.frost.entity"
targetProject="src/main/java">
<!-- for MyBatis3/MyBatis3Simple
自动为每一个生成的类创建一个构造方法,
构造方法包含了所有的field;而不是使用setter; -->
<property name="constructorBased" value="false" />
<!-- for MyBatis3 / MyBatis3Simple
是否创建一个不可变的类,如果为true,
那么MBG会创建一个没有setter方法的类,
取而代之的是类似constructorBased的类 -->
<property name="immutable" value="false" />
<!-- 设置是否在getter方法中,
对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--
配置mapper.xml的生成策略
targetPackage:把自动生成的mapper放在哪个工程里面
targetProject:哪个包下
-->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<!-- 在targetPackage的基础上,
根据数据库的schema再生成一层package,
最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--mapper接口生成策略 这个地方也改一下,改为自己的包名-->
<javaClientGenerator targetPackage="com.frost.mapper"
type="XMLMAPPER" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName="user"></table>
</context>
</generatorConfiguration>


java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】
第1章 Mybatis 连接池与事务深入
1.1 Mybatis 的连接池技术
1.1.1 Mybatis 连接池的分类
1.1.2 Mybatis 中数据源的配置
1.1.3 Mybatis 中 DataSource 的存取
1.1.4 Mybatis 中连接的获取过程分析
1.2 Mybatis 的事务控制
1.2.1 JDBC 中事务的回顾
1.2.2 Mybatis 中事务提交方式
1.2.3 Mybatis 自动提交事务的设置
第2章 Mybatis 的动态 SQL 语句
2.1 动态 SQL 之标签
2.1.1 持久层 Dao 接口
2.1.2 持久层 Dao 映射配置
2.1.3 测试
2.2 动态 SQL 之标签
2.2.1 持久层 Dao 映射配置
2.3 动态标签之标签
2.3.1 需求
2.3.1.1 在 QueryVo 中加入一个 List 集合用于封装参数
2.3.2 持久层 Dao 接口
2.3.3 持久层 Dao 映射配置
2.3.3.1 编写测试方法
2.4 Mybatis 中简化编写的 SQL 片段
2.4.1 定义代码片段
2.4.2 引用代码片段
第3章 Mybatis 多表查询之一对多
3.1 一对一查询(多对一)
3.1.1 方式一
3.1.1.1 定义账户信息的实体类
3.1.1.2 编写 Sql 语句
3.1.1.3 定义 AccountUser 类
3.1.1.4 定义账户的持久层 Dao 接口
3.1.1.5 定义 AccountDao.xml 文件中的查询配置信息
3.1.1.6 创建 AccountTest 测试类
3.1.1.7 小结:
3.1.2 方式二
3.1.2.1 修改 Account 类
在 Account 类中加入 User 类的对象作为 Account 类的一个属性。
3.1.2.2 修改 AccountDao 接口中的方法
3.1.2.3 重新定义 AccountDao.xml 文件
3.1.2.4 在 AccountTest 类中加入测试方法
3.2 一对多查询
3.2.1 编写 SQL 语句
3.2.2 User 类加入 List
3.2.3 用户持久层 Dao 接口中加入查询方法
3.2.4 用户持久层 Dao 映射文件配置
3.2.5 测试方法
第4章 Mybatis 多表查询之多对多
4.1 实现 Role 到 User 多对多
4.1.1 用户与角色的关系模型
4.1.2 业务要求及实现 SQL
4.1.3 编写角色实体类
4.1.4 编写 Role 持久层接口
4.1.5 编写映射文件
4.1.6 编写测试类
4.2 实现 User 到 Role 的多对多
4.2.1 User 到 Role 的多对多
4.2.2 作业:实现 User 到 Role 的一对多查询
java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security
鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。
分布式、微服务、云架构电子商务平台 java b2b2c o2o
技术解决方案
开发语言: java、j2ee
数据库:mysql
JDK支持版本: JDK1.6、JDK1.7、JDK1.8版本
通用框架:maven+springmvc+mybatis+spring cloud+spring boot+redis
核心技术:分布式、云服务、微服务、服务编排
核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
技术列表:
Spring Cloud Config
配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion
Spring Cloud Bus
事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署
Eureka
云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
Hystrix
熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Zuul
Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
Spring Cloud Security
基于spring security的安全工具包,为你的应用程序添加安全控制。
Feign
Feign是一种声明式、模板化的HTTP客户端。
通用架构: springmvc,spring boot,spring security,Oauth2.0,mybatis,mybatis plus 、kafka、zookeepre
前端框架:Bootstrap 4 、html5、css3 扁平化风格
技术架构图:
代码结构图:
APP界面截图:
源码下载地址
MakuGenerator 3.0.3 发布:Spring Boot 3.0 代码生成器
介绍
- maku-generator 是一款低代码生成器,可根据自定义模板内容,快速生成代码,可实现项目的快速开发、上线,减少重复的代码编写,开发人员只需专注业务逻辑即可。采用 MIT 开源协议,完全免费开源,可免费用于商业项目等场景。
- 仓库地址:https://gitee.com/makunet/maku-generator
- 开发文档:https://maku.net/docs/maku-generator
- 演示环境:https://demo.maku.net/maku-generator
- 官网地址:https://maku.net
更新日志
- 优化 SpringBoot3.0 + 版本配置,废弃 spring.factories
- 优化租户场景,禁用租户模式
- 导入表时,默认将表名作为功能名
- 实体类字段转驼峰时,数据库字段大写时可能出现异常显示
- 前端在对密码传输和接收的时候,也进行加密和解密
- 后端请求支持对参数进行 AES 加密解密
- 升级 springboot 到 3.1.4
- 升级 element-plus 到 2.3.4
项目特点
- 友好的代码结构及注释,便于阅读及二次开发
- 支持 spring boot starter,能很方便集成到第三方项目
- 支持通过配置数据源,快速生成 CRUD 代码,减少重复工作
- 支持 MySQL、Oracle、SQLServer、PostgreSQL、达梦 8 等主流的数据库
- 支持第三方 Java 项目包名修改,修改包名变得简单快速
- 支持批量导入表、批量生成代码以及同步表结构等功能
更多开源
- 低代码开发平台(单体版):https://gitee.com/makunet/maku-boot
- 低代码开发平台(微服务):https://gitee.com/makunet/maku-cloud
- 超好用的代码生成器:https://gitee.com/makunet/maku-generator
- Vue3.x 后台管理 UI:https://gitee.com/makunet/maku-admin
- Vue3.x 表单设计器:https://gitee.com/makunet/maku-form-design
效果图
MyBatis Plus 2.3 个人笔记 - 01 - 代码生成器
- sb_mybatis_puls2.3


<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.huarui</groupId>
<artifactId>sb_mybatis_puls2.3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sb_mybatis_puls2.3</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis plus 2.3 start-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
<!--mybatis plus 2.3 end-->
<!-- freemarker 代码生成器模板 start-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<!-- freemarker 代码生成器模板 end-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>


server:
port: 8080
#mysql
spring:
datasource:
url: jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8
username: youxiu326
password: zz123456.ZZ
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
# 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
# 如果是放在resource目录 classpath:/mapper/*Mapper.xml
mapper-locations: classpath:/com/huarui/mybatisplus/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.huarui.mybatisplus.entity
global-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 2
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
#mp2.3+ 全局表前缀 mp_
table-prefix: tal_
#刷新mapper 调试神器
#refresh-mapper: true
#数据库大写下划线转换
capital-mode: true
# Sequence序列接口实现类配置
key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
#逻辑删除配置(下面3个配置)
logic-delete-value: -1
logic-not-delete-value: 1
#注入自定义SQL
sql-injector: com.huarui.mybatisplus.configuration.MySqlInjector
#自定义填充策略接口实现
meta-object-handler: com.huarui.mybatisplus.configuration.MyMetaObjectHandler
configuration:
#配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
map-underscore-to-camel-case: true
cache-enabled: false
#配置JdbcTypeForNull, oracle数据库必须配置
jdbc-type-for-null: ''null''
# 配置slq打印日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


/*
Navicat MySQL Data Transfer
Source Server : 阿里云
Source Server Version : 50724
Source Host : youxiu326.xin:3306
Source Database : mybatis_plus
Target Server Type : MYSQL
Target Server Version : 50724
File Encoding : 65001
Date: 2019-02-17 15:59:52
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tbl_employee
-- ----------------------------
DROP TABLE IF EXISTS `tbl_employee`;
CREATE TABLE `tbl_employee` (
`id` varchar(20) NOT NULL,
`last_name` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`version` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tbl_employee
-- ----------------------------
INSERT INTO `tbl_employee` VALUES (''1'', ''李老师'', ''youxiu326@163.com'', ''1'', ''35'', ''1'');
INSERT INTO `tbl_employee` VALUES (''1096995791036706818'', ''MP'', ''mp@atguigu.com'', null, null, ''1'');
INSERT INTO `tbl_employee` VALUES (''1096998099921383425'', ''宋老师'', ''sls@atguigu.com'', ''1'', ''35'', ''1'');
INSERT INTO `tbl_employee` VALUES (''1096999885201649665'', ''玛利亚老师'', ''mly@sina.com'', ''0'', ''22'', null);
INSERT INTO `tbl_employee` VALUES (''1097000111899598849'', ''玛利亚老师'', ''mly@sina.com'', ''0'', ''22'', null);
INSERT INTO `tbl_employee` VALUES (''2'', ''Jerry'', ''jerry@atguigu.com'', ''0'', ''25'', ''1'');
INSERT INTO `tbl_employee` VALUES (''3'', ''TomAA'', ''tomAA@sina.com'', ''1'', ''22'', ''3'');
INSERT INTO `tbl_employee` VALUES (''4'', ''苍老师'', ''cls@sina.com'', ''0'', ''35'', ''1'');
-- ----------------------------
-- Table structure for tbl_user
-- ----------------------------
DROP TABLE IF EXISTS `tbl_user`;
CREATE TABLE `tbl_user` (
`id` varchar(20) NOT NULL,
`name` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`deleteFlag` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tbl_user
-- ----------------------------
INSERT INTO `tbl_user` VALUES (''1'', ''小日'', ''aaaaaa@.qq.com'', ''28'', ''1'');
INSERT INTO `tbl_user` VALUES (''2'', ''小日2'', ''aaaaaa@.qq.com'', ''22'', ''1'');
INSERT INTO `tbl_user` VALUES (''3'', ''小日3'', ''abbbaa@.qq.com'', ''22'', ''-1'');
INSERT INTO `tbl_user` VALUES (''4'', ''youxiu326'', ''niubi@.qq.com'', ''22'', null);
/**
*
* 代码生成器 2.3版
*
* Created by youxiu326 on 2019/2/17.
*/
public class MpGenerator {
public static void main(String[] args) {
//1. 全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) // 是否支持AR模式
.setAuthor("youxiu326@163.com") // 作者
.setOutputDir("D:\\sortware\\IDEA\\package\\sb_mybatis_puls2.3\\src\\main\\java") // 生成路径
.setFileOverride(true) // 文件覆盖
.setEnableCache(false)// XML 二级缓存
.setActiveRecord(true)// 不需要ActiveRecord特性的请改为false
.setIdType(IdType.ID_WORKER) // 主键策略 内容为空自动填充(默认配置)
.setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I (%s 会自动填充表实体属性)
// IEmployeeService
.setBaseResultMap(true) //是否生成mapper result
.setBaseColumnList(true); //是否生成mapper 查询列
//2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
.setDriverName("com.mysql.jdbc.Driver")
.setUrl("jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8")
.setUsername("youxiu326")
.setPassword("zz123456.ZZ");
//3. 策略配置
StrategyConfig stConfig = new StrategyConfig();
stConfig.setCapitalMode(true) //全局大写命名
.setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
.setTablePrefix("tbl_")
.setInclude(new String[] { "tbl_user"}); // 生成的表
//4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent("com.huarui.mybatisplus")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("entity")
.setXml("mapper");
//5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setTemplateEngine(new FreemarkerTemplateEngine())
.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6. 执行
ag.execute();
}
}
执行成功后,自动生成 entity mapper service controller
关于Spring boot + mybatis + mysql 代码生成器和mybatis-plus 代码生成器的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】、java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security、MakuGenerator 3.0.3 发布:Spring Boot 3.0 代码生成器、MyBatis Plus 2.3 个人笔记 - 01 - 代码生成器等相关知识的信息别忘了在本站进行查找喔。
本文标签: