msb-dongbao-mall-parent 父项目
msb-dongbao-common 公共包
msb-dongbao-common-base 公共基础类
msb-dongbao-common-util 工具类
msb-dongbao-api 业务模块接口层
msb-dongbao-oms-api 订单中心接口
msb-dongbao-pms-api 商品中心接口
msb-dongbao-ums-api 用户中心接口
msb-dongbao-pay-api 支付中心接口
msb-dongbao-cart-api 购物车接口
msb-dongbao-dictionary-api 基础字典接口
msb-dongbao-sms-api 优惠中心接口
msb-dongbao-cms-api 内容中心接口
msb-dongbao-service 业务模块实现层
msb-dongbao-oms 订单中心模块实现
msb-dongbao-pms 商品中心模块实现
msb-dongbao-ums 用户中心模块实现
msb-dongbao-pay 支付中心模块实现
msb-dongbao-cart 购物车模块实现
msb-dongbao-dictionary 基础字典模块实现
msb-dongbao-sms 优惠中心模块实现
msb-dongbao-cms 内容中心模块实现
msb-dongbao-application web应用模块
msb-dongbao-manager-web 后台管理应用
msb-dongbao-portal-web 商城门户网站
msb-dongbao-job 定时任务模块
msb-dongbao-generator 代码生成器
安装docker
1. 安装docker。参考我的docker安装文档。
2. 拉取镜像。
```sh
拉取镜像:
docker pull mysql:5.7
```
3. 在本地创建目录(存放数据库文件)
容器中的文件,映射到宿主机。
```sh
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
```
4. 创建*.cnf
```sh
在/root/mysql/conf中创建 *.cnf 文件(叫什么都行)
touch my.cnf
```
5. 启动docker
```sh
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
数据库就创建好了。后续。
```sh
docker start mysql
6 创建数据库
```sql
CREATE TABLE `ums_member` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(64) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`icon` varchar(500) DEFAULT NULL COMMENT '头像',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',
`note` varchar(500) DEFAULT NULL COMMENT '备注信息',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用',
PRIMARY KEY (`id`),
UNIQUE KEY `un_name` (`username`) USING BTREE COMMENT '用户名唯一'
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COMMENT='后台用户表';
2. 数据库时间问题。
1. 容器中
```sh
查询docker进程。
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ab8bcc896217 mysql:5.7 "docker-entrypoint.s…" 12 days ago Up 7 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost ~]#
进入容器,执行bash,用linux命令操作里面的任何东西
[root@localhost ~]# docker exec -it mysql bash
docker里
root@ab8bcc896217:/#
将时区改成日本
root@ab8bcc896217:/# cp /usr/share/zoneinfo/Japan /etc/localtime
退出容器
root@ab8bcc896217:/# exit
exit
docker外。
重启docker mysql
[root@localhost ~]# docker restart mysql
mysql
[root@localhost ~]#
docker exec -it mysql bash
cp /usr/share/zoneinfo/PRC /etc/localtime
将时区改为中国
docker restart mysql
重启docker中的mysql
2. 本地机器没有和ntp同步。
```sh
如果本机没有需要安装一下。
yum install ntp
同步时间
ntpdate time.nist.gov
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
使用mybatis-generator-gui生成代码
package com.msb;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.io.File;
import java.util.ArrayList;
/**
* @author lcc
* @version V1.0
* @Package com.msb
* @date 2022/5/4 19:40
*/
public class DongbaoGenerator {
public static void main(String[] args) {
// 构建一个代码生成对象
AutoGenerator mpg = new AutoGenerator();
// 1. 全局配置
GlobalConfig gc = new GlobalConfig();
String separator = File.separator;
gc.setOutputDir("C:\\Users\\Administrator\\msb-dongbao-mall-master-t\\msb-dongbao-mall-parent-v1\\msb-dongbao-service\\msb-dongbao-ums\\src\\main\\java");
gc.setAuthor("lcc");
gc.setOpen(false);//打开目录
gc.setFileOverride(true);//是否覆盖
gc.setServiceName("%sService");//去Service的I前缀。
gc.setIdType(IdType.ID_WORKER);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(false);
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.1.136:3306/dongbao?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包设置
PackageConfig pc = new PackageConfig();
pc.setParent("com.msb");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("ums_member");//表名
strategy.setNaming(NamingStrategy.underline_to_camel);// 下划线转他驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 列 下划线转脱发
strategy.setEntityLombokModel(true);//lombok 开启
strategy.setLogicDeleteFieldName("deleted");
// 自动填充
TableFill gmtCreate = new TableFill("create_time", FieldFill.INSERT);
TableFill gmtModify = new TableFill("update_time",FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<TableFill>();
tableFills.add(gmtCreate);
tableFills.add(gmtModify);
strategy.setTableFillList(tableFills);
//乐观锁
strategy.setVersionFieldName("version");
// restcontroller
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);// localhost:xxx/hello_2
mpg.setStrategy(strategy);
mpg.execute();
}