? ? ? ? ?昨天将项目的基本框架进行了搭建,今天使用代码生成器生成最基本的代码,并进行测试,在书写代码之前还需要下载以及配置数据库。
一.数据库
? ? ? ? 在实际工作中其实我们很少对数据库进行一些设置,一般了解sql语句的编写就行,数据库对应的设置会有专业的运维人员,我们只要拿到账号密码就可以。为了模拟实际的操作,我们可以安装虚拟机或者买一个小点的服务器,之后安装docker,将数据库放在docker容器中,直接使用docker进行启动,十分方便。
? ? 1.docker的安装
1 cd /
2 ifconfig
3 ping www.baidu.com
4 ll
5 cd /etc/sysconfig/network-scripts/
6 cat ifcfg-enp0s3
7 history
8 cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
9 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
10 service network restart
11 netstat -rn
12 ping www.baidu.com
13 clear
14 ll
15 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
16 yum install -y yum-utils device-mapper-persistent-data lvm2 wget
17 cd /etc/yum.repos.d/
18 ll
19 cd /etc/yum.repos.d
20 wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
21 ll
22 cat docker-ce.repo
23 sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
24 cat docker-ce.repo
25 ll
26 vi a.txt
27 cat a.txt
28 sed -i 's/h/0' a.txt
29 sed -i 's/h/0/' a.txt
30 cat a.txt
31 cat docker-ce.repo cat docker-ce.repo
32 yum -y makecache fast
33 yum -y install docker-ce-18.09.9
34 ll
35 docker ps
36 systemctl start docker
37 systemctl enable docker
38 docker ps
39 tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
40 systemctl daemon-reload
41 clear
42 docker run -rm alpine echo 'da jia hao'
43 docker run --rm alpine echo 'da jia hao'
二.数据库的安装
????1.拉取镜像。
拉取镜像: docker pull mysql:5.7
? ? ?2.在本地创建目录(存放数据库文件),容器中的文件,映射到宿主机。
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
? ? ? 3.创建*.cnf
?在/root/mysql/conf中创建 *.cnf 文件(叫什么都行) touch my.cnf
? ? ? ?4.启动docker
docker start mysql
? ? ? ?5.下次启动报错
????????如果报错下边的问题,说明在关闭虚拟机的时候没有关掉docker,关闭docker,重新启动mysql就可以了。
[root@node02 ~]# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@node02 ~]# systemctl stop docker.socket [root@node02 ~]# sudo systemctl restart docker [root@node02 ~]# docker ps CONTAINER ID ? IMAGE ? ? COMMAND ? CREATED ? STATUS ? ?PORTS ? ? NAMES
三.创建用户表
? ? ? ? 作为一个项目,首先开发的一定是注册和登录功能,注册和登录对应的就是用户。创建用户表。
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 '备注信息', ? `gmt_greate` datetime DEFAULT NULL COMMENT '创建时间', ? `gmt_modified` 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='后台用户表';
?四.代码生成器
? ?1.lombok的下载
????????在我们进行开发时,可以引用lombok简化一些代码,比如:get/set方法、重新toString方法等。首先在pom文件中引入lombok的jar包,之后一定到导入lombok的插件。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
?
?2.代码生成器?
? ? ? ? 在昨天的介绍中我们知道zcm-dongbao-generator对应代码生成器,在包下边创建com.zcm.dongbaoGenerator.DongbaoGenerator类编写代码生成器。主要参考的是https://baomidou.com/guide/generator.html中的代码生成器。
????????
package com.zcm.dongbaoGenerator;
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;
/**
* @ClassName: DongbaoGenerator
* @Author: zhangchunming
* @Date: 2021/7/6 22:55
* @Description: 参考链接:https://baomidou.com/guide/generator.html中的代码生成器直接复制
**/
public class DongbaoGenerator {
public static void main(String[] args) {
// 构建一个代码生成对象
AutoGenerator mpg = new AutoGenerator();
//1. 全局配置
GlobalConfig gc = new GlobalConfig();
String separator = File.separator;
gc.setOutputDir("D:\\big\\项目\\zcm-dongbao-mall-parent\\zcm-dongbao-mall-service\\zcm-dongbao-ums\\src\\main\\java");
gc.setAuthor("zhangchunming");
gc.setOpen(false);//打开目录
gc.setFileOverride(true);//是否覆盖
gc.setServiceName("%sService");//去Service的I前缀。
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(false);
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.171.128: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.zcm.dongbao.ums");
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();
}
}
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">
<parent>
<groupId>com.zcm</groupId>
<artifactId>zcm-dongbao-mall-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.zcm</groupId>
<artifactId>zcm-dongbao-generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>zcm-dongbao-generator</name>
<description>Demo project for Spring Boot</description>
<modelVersion>4.0.0</modelVersion>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--代码生成器配置-->
<!--generate-->
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok还需要引入插件,可以减少很多代码的编写-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</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.0.5</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
启动springboot启动类:
package com.zcm.dongbaoGenerator;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @ClassName: ZcmDongBaoGeneratorApplication
* @Author: zhangchunming
* @Date: 2021/7/6 22:54
* @Description:
**/
@SpringBootApplication
public class ZcmDongBaoGeneratorApplication {
public static void main(String[] args) {
SpringApplication.run(ZcmDongBaoGeneratorApplication.class, args);
}
}
?
五.交流和代码
? ? ? ? 如果想进行交流,可以关注我的微信公众号:小春说java。同时可以领取代码。
?
?
|