您现在的位置是:首页 > 编程 > 

【谷粒学院】004

2025-07-29 11:32:00
【谷粒学院】004 一、数据库设计1、创建数据库guli_edu2、创建表代码语言:javascript代码运行次数:0运行复制CREATE TABLE `edu_teacher` ( `id` CHAR ( 19 ) OT ULL COMMET '讲师ID', `name` VARCHAR ( 20 ) OT ULL COMMET '讲师姓名

【谷粒学院】004

一、数据库设计

1、创建数据库

guli_edu

2、创建表

代码语言:javascript代码运行次数:0运行复制
CREATE TABLE `edu_teacher` (
	`id` CHAR ( 19 ) OT ULL COMMET '讲师ID',
	`name` VARCHAR ( 20 ) OT ULL COMMET '讲师姓名',
	`intro` VARCHAR ( 500 ) OT ULL DEFAULT '' COMMET '讲师简介',
	`career` VARCHAR ( 500 ) DEFAULT ULL COMMET '讲师资历,一句话说明讲师',
	`level` IT ( 10 ) USIGED OT ULL COMMET '头衔 1高级讲师 2首席讲师',
	`avatar` VARCHAR ( 255 ) DEFAULT ULL COMMET '讲师头像',
	`sort` IT ( 10 ) USIGED OT ULL DEFAULT '0' COMMET '排序',
	`is_deleted` TIYIT ( 1 ) USIGED OT ULL DEFAULT '0' COMMET '逻辑删除 1(true)已删除, 0(false)未删除',
	`gmt_create` datetime OT ULL COMMET '创建时间',
	`gmt_modified` datetime OT ULL COMMET '更新时间',
	PRIMARY KEY ( `id` ),
UIQUE KEY `uk_name` ( `name` ) 
) EGIE = IODB DEFAULT CHARSET = utf8mb4 COMMET = '讲师';
插入数据:
代码语言:javascript代码运行次数:0运行复制
ISERT ITO `edu_teacher`
VALUES
	( '1', '张三', '近年主持国家自然科学基金(6项)、江苏省重大科技成果转化项目(5项)、江苏省产学研前瞻性联合研究项目(项)、省工业科技支撑、省高技术、省自然科学基金等省部级及其企业的主要科研项目40多个,多个项目在企业成功转化,产生了较好的经济、社会和环境效益。积极开展产学研科技合作,并与省内16家企业建立了江苏省研究生工作站,其中6家为江苏省优秀研究生工作站', '高级', 1, '.jpg', 0, 0, '2019-10-0 14:18:46', '2019-11-12 1:6:6' ),(
		'11898972608478977',
		'晴天',
		'高级讲师简介',
		'高级讲师资历',
		2,
		'.png',
		1,
		0,
		'2019-10-0 11:5:0',
		'2019-10-0 11:5:0' 
		),(
		'118990295668469762',
		'李刚',
		'高级讲师简介',
		'高级讲师',
		2,
		'.png',
		2,
		0,
		'2019-10-0 11:55:19',
		'2019-11-12 1:7:52' 
		),(
		'118942647876985857',
		'王二',
		'高级讲师简介',
		'高级讲师',
		1,
		'.png',
		0,
		0,
		'2019-10-0 14:18:56',
		'2019-11-12 1:7:5' 
		),(
		'11894264649679959',
		'王五',
		'高级讲师简介',
		'高级讲师',
		1,
		'.png',
		0,
		0,
		'2019-10-0 14:19:02',
		'2019-11-12 1:7:18' 
		),(
		'11922499148055746',
		'李四',
		'高级讲师简介',
		'高级讲师',
		1,
		'.png',
		0,
		0,
		'2019-11-07 09:18:25',
		'2019-11-12 1:7:01' 
		),(
		'119227476087115778',
		'1222-12-12',
		'1111',
		'11',
		1,
		'.png',
		0,
		1,
		'2019-11-07 14:26:7',
		'2019-11-11 16:26:26' 
		),(
		'1195745429129218',
		'test',
		'sdfsdf',
		'sdfdf',
		1,
		'.jpg',
		0,
		1,
		'2019-11-15 21:47:12',
	'2019-11-15 21:47:27' 
	);

、数据库设计规约

以下规约只针对本模块,更全面的文档参考《阿里巴巴Java开发手册》:五、MySQL数据库;

1、库名与应用名称尽量一致;

2、表名、字段名必须使用小写字母或数字,禁止出现数字开头;

、表名不使用复数名词;

4、表的命名最好是加上“业务名称_表的作用”。如,edu_teacher;

5、表必备三字段:id、 gmt_create、gmt_modified;

说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。(如果使用分库分表集部署,则id类型为verchar,非自增,业务中使用分布式id生成器)gmt_create, gmt_modified 的类型均为 datetime 类型,前者现在时表示主动创建,后者过去分词表示被动更新;

6、单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表;

7、表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。

说明:任何字段如果为非负数,必须是 unsigned。注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的 命名方式是为了明确其取值含义与取值范围。正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。

8、小数类型为 decimal,禁止使用 float 和 double。 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储;

9、如果存储的字符串长度几乎相等,使用 char 定长字符串类型;

10、varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率;

11、唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。说明:uk_ 即 unique key;idx_ 即 index 的简称;

12、不得使用外键与级联,一切外键概念必须在应用层解决。外键与级联更新适用于单机低并发,不适合分布式、高并发集;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度;

二、创建项目工程

1、父工程作用

pom类型、管理以来版本、放公共依赖;

2、创建父工程guli_parent

(年少轻狂的我又选择2.4.0版本)

、删除src目录

4、在pom.xml文件中加一个packaging标签

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zibo</groupId>
    <artifactId>guli_parent</artifactId>
    <!--在这里加一个标签packaging-->
    <packaging>pom</packaging>
    <version>0.0.1-SAPSHOT</version>
    <name>guli_parent</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>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

5、删除dependencies标签

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zibo</groupId>
    <artifactId>guli_parent</artifactId>
    <!--在这里加一个标签packaging-->
    <packaging>pom</packaging>
    <version>0.0.1-SAPSHOT</version>
    <name>guli_parent</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

6、添加各种依赖的版本

(按我的年少轻狂都用最新版本,但是这太多了,为了项目顺利进行,就是用老师的版本吧!)

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zibo</groupId>
    <artifactId>guli_parent</artifactId>
    <!--在这里加一个标签packaging-->
    <packaging>pom</packaging>
    <version>0.0.1-SAPSHOT</version>
    <name>guli_parent</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <guli.version>0.0.1-SAPSHOT</guli.version>
        <mybatis-plus.version>.0.5</mybatis-plus.version>
        <velocity.version>2.0</velocity.version>
        <swagger.version>2.7.0</swagger.version>
        <version>2.8.</version>
        <jodatime.version>2.10.1</jodatime.version>
        <poi.version>.17</poi.version>
        <comm-fileupload.version>1..1</comm-fileupload.version>
        <comm-io.version>2.6</comm-io.version>
        <httpclient.version>4.5.1</httpclient.version>
        <jwt.version>0.7.0</jwt.version>
        <aliyun-java-sdk-core.version>4..</aliyun-java-sdk-core.version>
        <aliyun-sdk-oss.version>.1.0</aliyun-sdk-oss.version>
        <aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
        <aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.version>
        <aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
        <fastjson.version>1.2.28</fastjson.version>
        <gson.version>2.8.2</gson.version>
        <json.version>20170516</json.version>
        <comm-dbutils.version>1.7</comm-dbutils.version>
        <version>1.1.0</version>
        <docker.image.prefix>zx</docker.image.prefix>
        <cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

7、添加各种依赖管理(pom.xml最终)

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zibo</groupId>
    <artifactId>guli_parent</artifactId>
    <!--在这里加一个标签packaging-->
    <packaging>pom</packaging>
    <version>0.0.1-SAPSHOT</version>
    <name>guli_parent</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <guli.version>0.0.1-SAPSHOT</guli.version>
        <mybatis-plus.version>.0.5</mybatis-plus.version>
        <velocity.version>2.0</velocity.version>
        <swagger.version>2.7.0</swagger.version>
        <version>2.8.</version>
        <jodatime.version>2.10.1</jodatime.version>
        <poi.version>.17</poi.version>
        <comm-fileupload.version>1..1</comm-fileupload.version>
        <comm-io.version>2.6</comm-io.version>
        <httpclient.version>4.5.1</httpclient.version>
        <jwt.version>0.7.0</jwt.version>
        <aliyun-java-sdk-core.version>4..</aliyun-java-sdk-core.version>
        <aliyun-sdk-oss.version>.1.0</aliyun-sdk-oss.version>
        <aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
        <aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.version>
        <aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
        <fastjson.version>1.2.28</fastjson.version>
        <gson.version>2.8.2</gson.version>
        <json.version>20170516</json.version>
        <comm-dbutils.version>1.7</comm-dbutils.version>
        <version>1.1.0</version>
        <docker.image.prefix>zx</docker.image.prefix>
        <cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--Spring Cloud-->
            <dependency>
                <groupId>org.</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--mybatis-plus 持久层-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>${velocity.version}</version>
            </dependency>
            <!--swagger-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!--swagger ui-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!--aliyunOSS-->
            <dependency>
                <groupId>com.</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${version}</version>
            </dependency>
            <!--日期时间工具-->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${jodatime.version}</version>
            </dependency>
            <!--xls-->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <!--xlsx-->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <!--文件上传-->
            <dependency>
                <groupId>comm-fileupload</groupId>
                <artifactId>comm-fileupload</artifactId>
                <version>${comm-fileupload.version}</version>
            </dependency>
            <!--comm-io-->
            <dependency>
                <groupId>comm-io</groupId>
                <artifactId>comm-io</artifactId>
                <version>${comm-io.version}</version>
            </dependency>
            <!--httpclient-->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>com.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <!-- JWT -->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jwt.version}</version>
            </dependency>
            <!--aliyun-->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>${aliyun-java-sdk-core.version}</version>
            </dependency>
            <dependency>
                <groupId>com.</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun-sdk-oss.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-vod</artifactId>
                <version>${aliyun-java-sdk-vod.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-vod-upload</artifactId>
                <version>${aliyun-java-vod-upload.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-sdk-vod-upload</artifactId>
                <version>${aliyun-sdk-vod-upload.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>${json.version}</version>
            </dependency>
            <dependency>
                <groupId>comm-dbutils</groupId>
                <artifactId>comm-dbutils</artifactId>
                <version>${comm-dbutils.version}</version>
            </dependency>
            <dependency>
                <groupId>com.</groupId>
                <artifactId></artifactId>
                <version>${version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
三、搭建service模块(Maven工程)

1、在父工程guli-parent下面创建模块service

2、删除src目录

、添加模块类型pom

<artifactId> 节点后面添加 pom类型;

代码语言:javascript代码运行次数:0运行复制
<artifactId>service</artifactId>
<packaging>pom</packaging>

4、添加项目需要的依赖

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"
         xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <parent>
        <artifactId>guli_parent</artifactId>
        <groupId>com.zibo</groupId>
        <version>0.0.1-SAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service</artifactId>
    <packaging>pom</packaging>
    <dependencies>
        <dependency>
            <groupId>org.</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>
        <!--hystrix依赖,主要是用 @HystrixCommand -->
        <dependency>
            <groupId>org.</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <!--服务注册-->
        <dependency>
            <groupId>org.</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--服务调用-->
        <dependency>
            <groupId>org.</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <!--lombok用来简化实体类:需要安装lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--xls-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>
        <dependency>
            <groupId>comm-fileupload</groupId>
            <artifactId>comm-fileupload</artifactId>
        </dependency>
        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--comm-io-->
        <dependency>
            <groupId>comm-io</groupId>
            <artifactId>comm-io</artifactId>
        </dependency>
        <!--gson-->
        <dependency>
            <groupId>com.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

5、注释一些暂时用不到的Spring cloud相关的依赖(最终)

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"
         xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <parent>
        <artifactId>guli_parent</artifactId>
        <groupId>com.zibo</groupId>
        <version>0.0.1-SAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service</artifactId>
    <packaging>pom</packaging>
    <dependencies>
<!--        这些以来暂时用不到先注释-->
<!--        <dependency>-->
<!--            <groupId>org.</groupId>-->
<!--            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>-->
<!--        </dependency>-->
        <!--hystrix依赖,主要是用 @HystrixCommand -->
<!--        <dependency>-->
<!--            <groupId>org.</groupId>-->
<!--            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>-->
<!--        </dependency>-->
        <!--服务注册-->
<!--        <dependency>-->
<!--            <groupId>org.</groupId>-->
<!--            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
<!--        </dependency>-->
        <!--服务调用-->
<!--        <dependency>-->
<!--            <groupId>org.</groupId>-->
<!--            <artifactId>spring-cloud-starter-openfeign</artifactId>-->
<!--        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <!--lombok用来简化实体类:需要安装lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--xls-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>
        <dependency>
            <groupId>comm-fileupload</groupId>
            <artifactId>comm-fileupload</artifactId>
        </dependency>
        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--comm-io-->
        <dependency>
            <groupId>comm-io</groupId>
            <artifactId>comm-io</artifactId>
        </dependency>
        <!--gson-->
        <dependency>
            <groupId>com.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>
四、在service模块下搭建子模块service_edu(Maven工程)

1、创建子模块

2、创建配置文件application.properties

代码语言:javascript代码运行次数:0运行复制
# 服务端口
server.port=8001
# 服务名
spring.=service-edu
# 环境设置:dev、test、prod
spring.profiles.active=dev
# mysql数据库连接
spring.datasource.driver-class-name=jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:06/guli?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
或者application.yaml文件:
代码语言:javascript代码运行次数:0运行复制
spring:
 application:
 name: service-edu
profiles:
 active: dev
#### application-dev.yml
server:
 port: 8001
mybatis-plus:
 configuration:
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locati: classpath:com/atguigu/service/*/mapper/*.xml
global-config:
 db-config:
 logic-delete-value: 1
logic-not-delete-value: 0
spring:
datasource:
 type: com.zaxxer.hikari.HikariDataSource
driver-class-name: jdbc.Driver
url: jdbc:mysql://localhost:06/guli?serverTimezone=GMT%2B8
username: root
password: root
hikari:
 connection-test-query: SELECT 1
connection-timeout: 60000
idle-timeout: 500000
max-lifetime: 540000
maximum-pool-size: 12
minimum-idle: 10
pool-name: GuliHikariPool
jackson:
 date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8

、使用mp带的代码生成器生成代码

代码生成器:
代码语言:javascript代码运行次数:0运行复制
package com.zibo;

import com.annotation.DbType;
import com.annotation.IdType;
import com.generator.AutoGenerator;
import com.DataSourceConfig;
import com.GlobalConfig;
import com.PackageConfig;
import com.StrategyConfig;
import com.rules.DateType;
import com.rules.amingStrategy;
import org.junit.Test;

/**
 * @author
 * @since 2018/12/1
 */
public class CodeGenerator {

    @Test
    public void run() {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("testjava");
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setFileOverride(false); //重新生成时文件是否覆盖
        gc.setServiceame("%sService");	//去掉Service接口的首字母I
        gc.setIdType(IdType.ID_WORKER); //主键策略
        gc.setDateType(DateType.OLY_DATE);//定义生成的实体类中日期类型
        gc.setSwagger2(true);//开启Swagger2模式

        mpg.setGlobalConfig(gc);

        // 、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:06/guli");
        dsc.setDriverame("jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleame("edu"); //模块名
        pc.setParent("demo");
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude("edu_teacher");
        strategy.setaming(amingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setTablePrefix(pc.getModuleame() + "_"); //生成实体时去掉表前缀

        strategy.setColumnaming(amingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

        mpg.setStrategy(strategy);


        // 6、执行
        ();
    }
}
位置:
生成结果:

4、修改TeacherController(讲师列表)

代码语言:javascript代码运行次数:0运行复制
package com.;


import com.Teacher;
import com.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 讲师 前端控制器
 * </p>
 *
 * @author zibo
 * @since 2020-11-0
 */
@RestController
@RequestMapping("/edu/teacher")
public class TeacherController {
    @Autowired
    private TeacherService teacherService;

    @RequestMapping("/findall")
    public List<Teacher> findAll(){
        return teacherService.list(null);
    }
}

5、创建启动类

代码语言:javascript代码运行次数:0运行复制
package com.;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EduApplication {
    public static void main(String[] args) {
        SpringApplication.run(,args);
    }
}

6、创建配置类

代码语言:javascript代码运行次数:0运行复制
package com.;

import spring.annotation.MapperScan;
import org.annotation.Configuration;

@Configuration
@MapperScan("com.mapper")
public class EduConfig {

}

7、运行测试

通过启动类启动项目——访问“http://localhost:8001/edu/teacher/findall”

到此,我们项目的基本环境就没有问题了!

五、讲师逻辑删除

0、配置统一返回的json时间格式(补充)

默认情况下json时间格式带有时区,并且是世界标准时间,和我们的时间差了八个小时;

在application.properties中设置:

代码语言:javascript代码运行次数:0运行复制
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.=GMT+8

1、添加逻辑删除插件

代码语言:javascript代码运行次数:0运行复制
package com.config;

import com.core.injector.ISqlInjector;
import com.extension.injector.LogicSqlInjector;
import spring.annotation.MapperScan;
import org.annotation.Bean;
import org.annotation.Configuration;

@Configuration
@MapperScan("com.mapper")
public class EduConfig {
    //添加逻辑删除插件
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }
}

2、在实体类Teacher中给isDeleted字段添加@TableLogic注解

、在TeacherController中添加逻辑删除方法

代码语言:javascript代码运行次数:0运行复制
package com.;


import com.Teacher;
import com.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 * 讲师 前端控制器
 * </p>
 *
 * @author zibo
 * @since 2020-11-0
 */
@RestController
@RequestMapping("/edu/teacher")
public class TeacherController {
    @Autowired
    private TeacherService teacherService;

    //查询所有
    @RequestMapping("/findall")
    public List<Teacher> findAll(){
        return teacherService.list(null);
    }

    //逻辑删除
    @RequestMapping("{id}")//id通过路径传过来
//    @DeleteMapping("{id}")
    public boolean hide(@PathVariable("id")String id){
        return teacherService.removeById(id);
    }
}

4、关于测试

关于delete提交方式的测试:

使用swagger测试(重点);postman(了解);

咱们使用一次get方式的删除:

原始数据:

删除测试:

删除结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除管理配置数据库comversion

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1197776.html

相关标签:无
上传时间: 2025-07-23 09:49:35
留言与评论(共有 15 条评论)
本站网友 承德九中
16分钟前 发表
jdbc.Driver url
本站网友 红馆ktv团购
12分钟前 发表
19'
本站网友 拍婚纱团购
11分钟前 发表
'.png'
本站网友 蔚蓝海岸
29分钟前 发表
mysql
本站网友 不知天上宫阙今夕是何年
26分钟前 发表
varchar 是可变长字符串
本站网友 广州恒大集团
10分钟前 发表
7
本站网友 句容房产网
23分钟前 发表
'2019-11-07 09
本站网友 中国银行深圳分行
27分钟前 发表
application
本站网友 prefetch
25分钟前 发表
'李刚'
本站网友 书艺公社
19分钟前 发表
不适合分布式
本站网友 西安东大医院
30分钟前 发表
'高级讲师简介'
本站网友 胎记位置
3分钟前 发表
0
本站网友 龚建生
20分钟前 发表
表名不使用复数名词;4
本站网友 城市猎人主题曲
23分钟前 发表
0(false)未删除'