Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计算机应用开发
后
后端
J
Java
Java在线商城
seckill-demo
提交
191d4a6c
S
seckill-demo
项目概览
计算机应用开发
/
后端
/
Java
/
Java在线商城
/
seckill-demo
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
seckill-demo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
191d4a6c
编写于
1月 07, 2021
作者:
RunAtWorld
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码生成器
上级
51e4afe1
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
658 addition
and
10 deletion
+658
-10
docs/db/create_tables.sql
docs/db/create_tables.sql
+11
-0
generator/pom.xml
generator/pom.xml
+27
-0
generator/src/main/java/CodeGenerator.java
generator/src/main/java/CodeGenerator.java
+157
-0
generator/src/main/resources/templates/controller1.java.ftl
generator/src/main/resources/templates/controller1.java.ftl
+40
-0
generator/src/main/resources/templates/entity1.java.ftl
generator/src/main/resources/templates/entity1.java.ftl
+157
-0
generator/src/main/resources/templates/mapper1.java.ftl
generator/src/main/resources/templates/mapper1.java.ftl
+21
-0
generator/src/main/resources/templates/mapper1.xml.ftl
generator/src/main/resources/templates/mapper1.xml.ftl
+39
-0
generator/src/main/resources/templates/service1.java.ftl
generator/src/main/resources/templates/service1.java.ftl
+21
-0
generator/src/main/resources/templates/serviceImpl1.java.ftl
generator/src/main/resources/templates/serviceImpl1.java.ftl
+27
-0
pom.xml
pom.xml
+4
-0
src/main/java/dev/lpf/seckilldemo/controllerl/UserController.java
.../java/dev/lpf/seckilldemo/controllerl/UserController.java
+21
-0
src/main/java/dev/lpf/seckilldemo/mapper/UserMapper.java
src/main/java/dev/lpf/seckilldemo/mapper/UserMapper.java
+17
-0
src/main/java/dev/lpf/seckilldemo/pojo/User.java
src/main/java/dev/lpf/seckilldemo/pojo/User.java
+63
-0
src/main/java/dev/lpf/seckilldemo/service/IUserService.java
src/main/java/dev/lpf/seckilldemo/service/IUserService.java
+17
-0
src/main/java/dev/lpf/seckilldemo/service/impl/UserServiceImpl.java
...ava/dev/lpf/seckilldemo/service/impl/UserServiceImpl.java
+21
-0
src/main/resources/application.yml
src/main/resources/application.yml
+10
-10
src/main/resources/mapper/seckilldemo/UserMapper.xml
src/main/resources/mapper/seckilldemo/UserMapper.xml
+5
-0
未找到文件。
docs/db/create_tables.sql
0 → 100644
浏览文件 @
191d4a6c
CREATE
TABLE
t_user
(
`id`
BIGINT
(
20
)
NOT
NULL
COMMENT
'用户id,默认为手机号码'
,
`nickname`
VARCHAR
(
255
)
NOT
NULL
,
`passwd`
VARCHAR
(
32
)
DEFAULT
NULL
COMMENT
'MD5(MD5(pass明文+固定salt),salt)'
,
`slat`
VARCHAR
(
32
)
DEFAULT
NULL
COMMENT
'盐值'
,
`head`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'头像'
,
`register_at`
DATETIME
DEFAULT
NULL
COMMENT
'注册时间'
,
`last_login_date`
DATETIME
DEFAULT
NULL
COMMENT
'最后一次登录时间'
,
`login_count`
int
(
11
)
DEFAULT
'0'
COMMENT
'登录次数'
,
PRIMARY
KEY
(
`id`
)
);
\ No newline at end of file
generator/pom.xml
0 → 100644
浏览文件 @
191d4a6c
<?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>
<artifactId>
seckill-demo
</artifactId>
<groupId>
dev.lpf
</groupId>
<version>
1.0.1-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
generator
</artifactId>
<dependencies>
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-generator
</artifactId>
<version>
3.4.1
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.30
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
generator/src/main/java/CodeGenerator.java
0 → 100644
浏览文件 @
191d4a6c
import
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException
;
import
com.baomidou.mybatisplus.core.toolkit.StringPool
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.generator.AutoGenerator
;
import
com.baomidou.mybatisplus.generator.InjectionConfig
;
import
com.baomidou.mybatisplus.generator.config.*
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine
;
import
java.util.*
;
/**
* CodeGenerator
* Author: RunAtWorld
* Date: 2021/1/7 22:17
*/
public
class
CodeGenerator
{
/**
* <p>
* 读取控制台内容
* </p>
*/
public
static
String
scanner
(
String
tip
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
StringBuilder
help
=
new
StringBuilder
();
help
.
append
(
"请输入"
+
tip
+
":"
);
System
.
out
.
println
(
help
.
toString
());
if
(
scanner
.
hasNext
())
{
String
ipt
=
scanner
.
next
();
if
(
StringUtils
.
isNotBlank
(
ipt
))
{
return
ipt
;
}
}
throw
new
MybatisPlusException
(
"请输入正确的"
+
tip
+
"!"
);
}
public
static
void
main
(
String
[]
args
)
{
// 代码生成器
AutoGenerator
mpg
=
new
AutoGenerator
();
// 全局配置
GlobalConfig
gc
=
new
GlobalConfig
();
String
projectPath
=
System
.
getProperty
(
"user.dir"
);
gc
.
setOutputDir
(
projectPath
+
"/src/main/java"
);
gc
.
setAuthor
(
"RunAtWorld"
);
gc
.
setOpen
(
false
);
// gc.setSwagger2(true); 实体属性 Swagger2 注解
mpg
.
setGlobalConfig
(
gc
);
// 数据源配置
DataSourceConfig
dsc
=
new
DataSourceConfig
();
dsc
.
setUrl
(
"jdbc:mysql://localhost:3306/seckill?useUnicode=true&useSSL=false&characterEncoding=utf8"
);
// dsc.setSchemaName("public");
dsc
.
setDriverName
(
"com.mysql.jdbc.Driver"
);
dsc
.
setUsername
(
"root"
);
dsc
.
setPassword
(
"123456"
);
mpg
.
setDataSource
(
dsc
);
// 包配置
PackageConfig
pc
=
new
PackageConfig
();
pc
.
setModuleName
(
scanner
(
"seckilldemo"
));
pc
.
setParent
(
"dev.lpf"
)
.
setEntity
(
"pojo"
)
.
setMapper
(
"mapper"
)
.
setService
(
"service"
)
.
setServiceImpl
(
"service.impl"
)
.
setController
(
"controllerl"
);
mpg
.
setPackageInfo
(
pc
);
// 自定义配置
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"date1"
,
"1.0.0"
);
this
.
setMap
(
map
);
}
};
// 如果模板引擎是 freemarker
String
templatePath
=
"/templates/mapper.xml.ftl"
;
// 如果模板引擎是 velocity
// String templatePath = "/templates/mapper.xml.vm";
// 自定义输出配置
List
<
FileOutConfig
>
focList
=
new
ArrayList
<>();
// 自定义配置会被优先输出
focList
.
add
(
new
FileOutConfig
(
templatePath
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return
projectPath
+
"/src/main/resources/mapper/"
+
pc
.
getModuleName
()
+
"/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_XML
;
}
});
/*
cfg.setFileCreate(new IFileCreate() {
@Override
public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
// 判断自定义文件夹是否需要创建
checkDir("调用默认方法创建的目录,自定义目录用");
if (fileType == FileType.MAPPER) {
// 已经生成 mapper 文件判断存在,不想重新生成返回 false
return !new File(filePath).exists();
}
// 允许生成模板文件
return true;
}
});
*/
cfg
.
setFileOutConfigList
(
focList
);
mpg
.
setCfg
(
cfg
);
// 配置模板
TemplateConfig
templateConfig
=
new
TemplateConfig
()
.
setEntity
(
"templates/entity1.java"
)
.
setMapper
(
"templates/mapper1.java"
)
.
setService
(
"templates/service1.java"
)
.
setServiceImpl
(
"templates/serviceImpl1.java"
)
.
setController
(
"templates/controller1.java"
);
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
// templateConfig.setEntity("templates/entity2.java");
// templateConfig.setService();
// templateConfig.setController();
templateConfig
.
setXml
(
null
);
mpg
.
setTemplate
(
templateConfig
);
// 策略配置
StrategyConfig
strategy
=
new
StrategyConfig
();
//数据库表映射到实体的类名的策略
strategy
.
setNaming
(
NamingStrategy
.
underline_to_camel
);
// 数据库字段映射到实体的命名的策略
strategy
.
setColumnNaming
(
NamingStrategy
.
underline_to_camel
);
//strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
// 设置Lombok
strategy
.
setEntityLombokModel
(
true
);
// 生成@RestController的控制器
//strategy.setRestControllerStyle(true);
// 公共父类
//strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
// 写于父类中的公共字段
//strategy.setSuperEntityColumns("id");
strategy
.
setInclude
(
scanner
(
"t_"
).
split
(
","
));
//设置 controller 连字符
strategy
.
setControllerMappingHyphenStyle
(
true
);
//表前缀
strategy
.
setTablePrefix
(
"t_"
);
mpg
.
setStrategy
(
strategy
);
mpg
.
setTemplateEngine
(
new
FreemarkerTemplateEngine
());
mpg
.
execute
();
}
}
\ No newline at end of file
generator/src/main/resources/templates/controller1.java.ftl
0 → 100644
浏览文件 @
191d4a6c
package
${
package
.
Controller
};
import
org
.
springframework
.
web
.
bind
.
annotation
.
RequestMapping
;
<#
if
restControllerStyle
>
import
org
.
springframework
.
web
.
bind
.
annotation
.
RestController
;
<#
else
>
import
org
.
springframework
.
stereotype
.
Controller
;
</#
if
>
<#
if
superControllerClassPackage
??>
import
${
superControllerClassPackage
};
</#
if
>
/**
*
秒杀项目
*
<
p
>
*
${
table
.
comment
!} 前端控制器
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
<#
if
restControllerStyle
>
@
RestController
<#
else
>
@
Controller
</#
if
>
@
RequestMapping
(
"<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}</#if>"
)
<#
if
kotlin
>
class
${
table
.
controllerName
}<#
if
superControllerClass
??>
:
${
superControllerClass
}()</#
if
>
<#
else
>
<#
if
superControllerClass
??>
public
class
${
table
.
controllerName
}
extends
${
superControllerClass
}
{
<#
else
>
public
class
${
table
.
controllerName
}
{
</#
if
>
}
</#
if
>
generator/src/main/resources/templates/entity1.java.ftl
0 → 100644
浏览文件 @
191d4a6c
package
${
package
.
Entity
};
<#
list
table
.
importPackages
as
pkg
>
import
${
pkg
};
</#
list
>
<#
if
swagger2
>
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
</#
if
>
<#
if
entityLombokModel
>
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
<#
if
chainModel
>
import
lombok
.
experimental
.
Accessors
;
</#
if
>
</#
if
>
/**
*
秒杀项目
*
<
p
>
*
${
table
.
comment
!}
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
<#
if
entityLombokModel
>
@
Data
<#
if
superEntityClass
??>
@
EqualsAndHashCode
(
callSuper
=
true
)
<#
else
>
@
EqualsAndHashCode
(
callSuper
=
false
)
</#
if
>
<#
if
chainModel
>
@
Accessors
(
chain
=
true
)
</#
if
>
</#
if
>
<#
if
table
.
convert
>
@
TableName
(
"${table.name}"
)
</#
if
>
<#
if
swagger2
>
@
ApiModel
(
value
=
"${entity}对象"
,
description
=
"${table.comment!}"
)
</#
if
>
<#
if
superEntityClass
??>
public
class
${
entity
}
extends
${
superEntityClass
}<#
if
activeRecord
><${
entity
}></#
if
>
{
<#
elseif
activeRecord
>
public
class
${
entity
}
extends
Model
<${
entity
}>
{
<#
else
>
public
class
${
entity
}
implements
Serializable
{
</#
if
>
<#
if
entitySerialVersionUID
>
private
static
final
long
serialVersionUID
=
1L
;
</#
if
>
<#--
----------
BEGIN
字段循环遍历
---------->
<#
list
table
.
fields
as
field
>
<#
if
field
.
keyFlag
>
<#
assign
keyPropertyName
=
"${field.propertyName}"
/>
</#
if
>
<#
if
field
.
comment
!?length gt 0>
<#
if
swagger2
>
@
ApiModelProperty
(
value
=
"${field.comment}"
)
<#
else
>
/**
*
${
field
.
comment
}
*/
</#
if
>
</#
if
>
<#
if
field
.
keyFlag
>
<#--
主键
-->
<#
if
field
.
keyIdentityFlag
>
@
TableId
(
value
=
"${field.annotationColumnName}"
,
type
=
IdType
.
AUTO
)
<#
elseif
idType
??>
@
TableId
(
value
=
"${field.annotationColumnName}"
,
type
=
IdType
.${
idType
})
<#
elseif
field
.
convert
>
@
TableId
(
"${field.annotationColumnName}"
)
</#
if
>
<#--
普通字段
-->
<#
elseif
field
.
fill
??>
<#--
-----
存在字段填充设置
----->
<#
if
field
.
convert
>
@
TableField
(
value
=
"${field.annotationColumnName}"
,
fill
=
FieldFill
.${
field
.
fill
})
<#
else
>
@
TableField
(
fill
=
FieldFill
.${
field
.
fill
})
</#
if
>
<#
elseif
field
.
convert
>
@
TableField
(
"${field.annotationColumnName}"
)
</#
if
>
<#--
乐观锁注解
-->
<#
if
(
versionFieldName
!"") == field.name>
@
Version
</#
if
>
<#--
逻辑删除注解
-->
<#
if
(
logicDeleteFieldName
!"") == field.name>
@
TableLogic
</#
if
>
private
${
field
.
propertyType
}
${
field
.
propertyName
};
</#
list
>
<#------------
END
字段循环遍历
---------->
<#
if
!entityLombokModel>
<#
list
table
.
fields
as
field
>
<#
if
field
.
propertyType
==
"boolean"
>
<#
assign
getprefix
=
"is"
/>
<#
else
>
<#
assign
getprefix
=
"get"
/>
</#
if
>
public
${
field
.
propertyType
}
${
getprefix
}${
field
.
capitalName
}()
{
return
${
field
.
propertyName
};
}
<#
if
chainModel
>
public
${
entity
}
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
<#
else
>
public
void
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
</#
if
>
this
.${
field
.
propertyName
}
=
${
field
.
propertyName
};
<#
if
chainModel
>
return
this
;
</#
if
>
}
</#
list
>
</#
if
>
<#
if
entityColumnConstant
>
<#
list
table
.
fields
as
field
>
public
static
final
String
${
field
.
name
?
upper_case
}
=
"${field.name}"
;
</#
list
>
</#
if
>
<#
if
activeRecord
>
@
Override
protected
Serializable
pkVal
()
{
<#
if
keyPropertyName
??>
return
this
.${
keyPropertyName
};
<#
else
>
return
null
;
</#
if
>
}
</#
if
>
<#
if
!entityLombokModel>
@
Override
public
String
toString
()
{
return
"${entity}{"
+
<#
list
table
.
fields
as
field
>
<#
if
field_index
==
0
>
"${field.propertyName}="
+
${
field
.
propertyName
}
+
<#
else
>
", ${field.propertyName}="
+
${
field
.
propertyName
}
+
</#
if
>
</#
list
>
"}"
;
}
</#
if
>
}
generator/src/main/resources/templates/mapper1.java.ftl
0 → 100644
浏览文件 @
191d4a6c
package
${
package
.
Mapper
};
import
${
package
.
Entity
}.${
entity
};
import
${
superMapperClassPackage
};
/**
*
秒杀项目
*
<
p
>
*
${
table
.
comment
!} Mapper 接口
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
<#
if
kotlin
>
interface
${
table
.
mapperName
}
:
${
superMapperClass
}<${
entity
}>
<#
else
>
public
interface
${
table
.
mapperName
}
extends
${
superMapperClass
}<${
entity
}>
{
}
</#
if
>
generator/src/main/resources/templates/mapper1.xml.ftl
0 → 100644
浏览文件 @
191d4a6c
<?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=
"${package.Mapper}.${table.mapperName}"
>
<
#if enableCache>
<!-- 开启二级缓存 -->
<cache
type=
"org.mybatis.caches.ehcache.LoggingEhcache"
/>
<
/#if>
<
#if baseResultMap>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"${package.Entity}.${entity}"
>
<
#list table.fields as field>
<
#if field.keyFlag>
<
#--生成主键排在第一位-->
<id
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#if>
<
/#list>
<
#list table.commonFields as field>
<
#--生成公共字段 -->
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#list>
<
#list table.fields as field>
<
#if !field.keyFlag>
<
#--生成普通字段 -->
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#if>
<
/#list>
</resultMap>
<
/#if>
<
#if baseColumnList>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
<
#list table.commonFields as field>
${field.columnName},
<
/#list>
${table.fieldNames}
</sql>
<
/#if>
</mapper>
generator/src/main/resources/templates/service1.java.ftl
0 → 100644
浏览文件 @
191d4a6c
package
${
package
.
Service
};
import
${
package
.
Entity
}.${
entity
};
import
${
superServiceClassPackage
};
/**
*
秒杀项目
*
<
p
>
*
${
table
.
comment
!} 服务类
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
<#
if
kotlin
>
interface
${
table
.
serviceName
}
:
${
superServiceClass
}<${
entity
}>
<#
else
>
public
interface
${
table
.
serviceName
}
extends
${
superServiceClass
}<${
entity
}>
{
}
</#
if
>
generator/src/main/resources/templates/serviceImpl1.java.ftl
0 → 100644
浏览文件 @
191d4a6c
package
${
package
.
ServiceImpl
};
import
${
package
.
Entity
}.${
entity
};
import
${
package
.
Mapper
}.${
table
.
mapperName
};
import
${
package
.
Service
}.${
table
.
serviceName
};
import
${
superServiceImplClassPackage
};
import
org
.
springframework
.
stereotype
.
Service
;
/**
*
秒杀项目
*
<
p
>
*
${
table
.
comment
!} 服务实现类
*
</
p
>
*
*
@
author
${
author
}
*
@
since
${
date
}
*/
@
Service
<#
if
kotlin
>
open
class
${
table
.
serviceImplName
}
:
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>(),
${
table
.
serviceName
}
{
}
<#
else
>
public
class
${
table
.
serviceImplName
}
extends
${
superServiceImplClass
}<${
table
.
mapperName
},
${
entity
}>
implements
${
table
.
serviceName
}
{
}
</#
if
>
pom.xml
浏览文件 @
191d4a6c
...
...
@@ -2,6 +2,10 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
pom
</packaging>
<modules>
<module>
generator
</module>
</modules>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
...
...
src/main/java/dev/lpf/seckilldemo/controllerl/UserController.java
0 → 100644
浏览文件 @
191d4a6c
package
dev.lpf.seckilldemo.controllerl
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.stereotype.Controller
;
/**
* 秒杀项目
* <p>
* 前端控制器
* </p>
*
* @author RunAtWorld
* @since 2021-01-07
*/
@Controller
@RequestMapping
(
"/seckilldemo/user"
)
public
class
UserController
{
}
src/main/java/dev/lpf/seckilldemo/mapper/UserMapper.java
0 → 100644
浏览文件 @
191d4a6c
package
dev.lpf.seckilldemo.mapper
;
import
dev.lpf.seckilldemo.pojo.User
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* 秒杀项目
* <p>
* Mapper 接口
* </p>
*
* @author RunAtWorld
* @since 2021-01-07
*/
public
interface
UserMapper
extends
BaseMapper
<
User
>
{
}
src/main/java/dev/lpf/seckilldemo/pojo/User.java
0 → 100644
浏览文件 @
191d4a6c
package
dev.lpf.seckilldemo.pojo
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 秒杀项目
* <p>
*
* </p>
*
* @author RunAtWorld
* @since 2021-01-07
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_user"
)
public
class
User
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id,默认为手机号码
*/
private
Long
id
;
private
String
nickname
;
/**
* MD5(MD5(pass明文+固定salt),salt)
*/
private
String
passwd
;
/**
* 盐值
*/
private
String
slat
;
/**
* 头像
*/
private
String
head
;
/**
* 注册时间
*/
private
LocalDateTime
registerAt
;
/**
* 最后一次登录时间
*/
private
LocalDateTime
lastLoginDate
;
/**
* 登录次数
*/
private
Integer
loginCount
;
}
src/main/java/dev/lpf/seckilldemo/service/IUserService.java
0 → 100644
浏览文件 @
191d4a6c
package
dev.lpf.seckilldemo.service
;
import
dev.lpf.seckilldemo.pojo.User
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* 秒杀项目
* <p>
* 服务类
* </p>
*
* @author RunAtWorld
* @since 2021-01-07
*/
public
interface
IUserService
extends
IService
<
User
>
{
}
src/main/java/dev/lpf/seckilldemo/service/impl/UserServiceImpl.java
0 → 100644
浏览文件 @
191d4a6c
package
dev.lpf.seckilldemo.service.impl
;
import
dev.lpf.seckilldemo.pojo.User
;
import
dev.lpf.seckilldemo.mapper.UserMapper
;
import
dev.lpf.seckilldemo.service.IUserService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* 秒杀项目
* <p>
* 服务实现类
* </p>
*
* @author RunAtWorld
* @since 2021-01-07
*/
@Service
public
class
UserServiceImpl
extends
ServiceImpl
<
UserMapper
,
User
>
implements
IUserService
{
}
src/main/resources/application.yml
浏览文件 @
191d4a6c
...
...
@@ -3,7 +3,7 @@ server:
spring
:
thymeleaf
:
#
关闭缓存
#
关闭缓存
cache
:
false
datasource
:
driver-class-name
:
com.mysql.jdbc.Driver
...
...
@@ -11,26 +11,26 @@ spring:
username
:
root
password
:
123456
hikari
:
#
连接池
#
连接池
pool-name
:
dataHikariCp
#
最小空闲连接数
#
最小空闲连接数
minimum-idle
:
5
#
空闲连接存活时间,默认为
10min
#
空闲连接存活时间,默认为 10min
idle-timeout
:
1800000
#
最大连接数,默认为
10
#
最大连接数,默认为10
maximum-pool-size
:
10
#
从连接池返回的连接自动提交
#
从连接池返回的连接自动提交
auto-commit
:
true
#
连接最大存活时间,0表示永久存活,默认为
30min
#
连接最大存活时间,0表示永久存活,默认为 30min
max-lifetime
:
1800000
#
连接超时时间
30s
#
连接超时时间 30
s
connection-timeout
:
30000
#
心跳,测试连接是否可用
#
心跳,测试连接是否可用
connection-test-query
:
SELECT
1
mybatis-plus
:
# mapper.xml
的映射文件
# mapper.xml
的映射文件
mapper-locations
:
classpath*:/mapper/*Mapper.xml
type-aliases-package
:
dev.lpf.seckilldemo.pojo
...
...
src/main/resources/mapper/seckilldemo/UserMapper.xml
0 → 100644
浏览文件 @
191d4a6c
<?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=
"dev.lpf.seckilldemo.mapper.UserMapper"
>
</mapper>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录