application.properties文件配置数据源、日志、端口、服务器等
# Tomcat
server.tomcat.max-threads=1000
server.tomcat.min-spare-threads=30
server.port=90
# 存放数据库URL的文件
spring.profiles.active=dev
# mysql
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=
spring.datasource.password=
# DataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# Mybatis Mapper
#mybatis.mapperLocations=classpath:mapper/*.xml
# Mybatis mapUnderscoreToCamelCase
#mybatis.configuration.mapUnderscoreToCamelCase=true
#mybatis.configuration.useColumnLabel=true
# jackson
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.thymeleaf.cache=false
# logback
logging.config=classpath:logback-spring.xml
logging.file=F:/SSMM/logs/springboot.log
application-dev.properties
spring.datasource.url=jdbc:mysql://localhost:3306/数据库?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
Controller:
@RestController
@RequestMapping("sysuser")
public class SysUserController {
@Autowired
private SysUserService sysUserService;
/**
* 列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params){
//查询列表数据
Query query = new Query(params);
List<SysUserEntity> sysUserList = sysUserService.queryList(query);
int total = sysUserService.queryTotal(query);
PageUtils pageUtil = new PageUtils(sysUserList, total, query.getLimit(), query.getPage());
return R.ok().put("page", pageUtil);
}
/**
* 信息
*/
@RequestMapping("/info/{userId}")
public R info(@PathVariable("userId") Long userId){
SysUserEntity sysUser = sysUserService.queryObject(userId);
return R.ok().put("sysUser", sysUser);
}
/**
* 保存
*/
@RequestMapping("/save")
public R save(@RequestBody SysUserEntity sysUser){
sysUserService.save(sysUser);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody SysUserEntity sysUser){
sysUserService.update(sysUser);
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] userIds){
sysUserService.deleteBatch(userIds);
return R.ok();
}
}
service:
interface:
public interface SysUserService {
SysUserEntity queryObject(Long userId);
List<SysUserEntity> queryList(Map<String, Object> map);
int queryTotal(Map<String, Object> map);
void save(SysUserEntity sysUser);
void update(SysUserEntity sysUser);
void delete(Long userId);
void deleteBatch(Long[] userIds);
}
impl:
@Service("sysUserService")
public class SysUserServiceImpl implements SysUserService {
@Autowired
private SysUserDao sysUserDao;
@Override
public SysUserEntity queryObject(Long userId){
return sysUserDao.queryObject(userId);
}
@Override
public List<SysUserEntity> queryList(Map<String, Object> map){
return sysUserDao.queryList(map);
}
@Override
public int queryTotal(Map<String, Object> map){
return sysUserDao.queryTotal(map);
}
@Override
public void save(SysUserEntity sysUser){
sysUserDao.save(sysUser);
}
@Override
public void update(SysUserEntity sysUser){
sysUserDao.update(sysUser);
}
@Override
public void delete(Long userId){
sysUserDao.delete(userId);
}
@Override
public void deleteBatch(Long[] userIds){
sysUserDao.deleteBatch(userIds);
}
}
model:
public class SysUserEntity implements Serializable {
private static final long serialVersionUID = 1L;
//
private Long userId;
//用户名
private String username;
//密码
private String password;
//邮箱
private String email;
//手机号
private String mobile;
//状态 0:禁用 1:正常
private Integer status;
//创建者ID
private Long createUserId;
//创建时间
private Date createTime;
/**
* 设置:
*/
public void setUserId(Long userId) {
this.userId = userId;
}
/**
* 获取:
*/
public Long getUserId() {
return userId;
}
/**
* 设置:用户名
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取:用户名
*/
public String getUsername() {
return username;
}
/**
* 设置:密码
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取:密码
*/
public String getPassword() {
return password;
}
/**
* 设置:邮箱
*/
public void setEmail(String email) {
this.email = email;
}
/**
* 获取:邮箱
*/
public String getEmail() {
return email;
}
/**
* 设置:手机号
*/
public void setMobile(String mobile) {
this.mobile = mobile;
}
/**
* 获取:手机号
*/
public String getMobile() {
return mobile;
}
/**
* 设置:状态 0:禁用 1:正常
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取:状态 0:禁用 1:正常
*/
public Integer getStatus() {
return status;
}
/**
* 设置:创建者ID
*/
public void setCreateUserId(Long createUserId) {
this.createUserId = createUserId;
}
/**
* 获取:创建者ID
*/
public Long getCreateUserId() {
return createUserId;
}
/**
* 设置:创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取:创建时间
*/
public Date getCreateTime() {
return createTime;
}
}
dao:
public interface SysUserDao{
SysUserEntity queryObject(Long userId);
List<SysUserEntity> queryList(Map<String, Object> map);
int queryTotal(Map<String, Object> map);
void save(SysUserEntity sysUser);
void update(SysUserEntity sysUser);
void delete(Long userId);
void deleteBatch(Long[] userIds);
}
返回数据对象R:
/**
* 返回数据
*
*/
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", 0);
}
public static R error() {
return error(500, "未知异常,请联系管理员");
}
public static R error(String msg) {
return error(500, msg);
}
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}
mapper.xml:
<?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="com.kx.dao.SysUserDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.kx.entity.SysUserEntity" id="sysUserMap">
<result property="userId" column="user_id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="email" column="email"/>
<result property="mobile" column="mobile"/>
<result property="status" column="status"/>
<result property="createUserId" column="create_user_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="queryObject" resultType="com.kx.entity.SysUserEntity">
select * from sys_user where user_id = #{value}
</select>
<select id="queryList" resultType="com.kx.entity.SysUserEntity">
select * from sys_user
<choose>
<when test="sidx != null and sidx.trim() != ''">
order by ${sidx} ${order}
</when>
<otherwise>
order by user_id desc
</otherwise>
</choose>
<if test="offset != null and limit != null">
limit #{offset}, #{limit}
</if>
</select>
<select id="queryTotal" resultType="int">
select count(*) from sys_user
</select>
<insert id="save" parameterType="com.kx.entity.SysUserEntity" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user
(
`username`,
`password`,
`email`,
`mobile`,
`status`,
`create_user_id`,
`create_time`
)
values
(
#{username},
#{password},
#{email},
#{mobile},
#{status},
#{createUserId},
#{createTime}
)
</insert>
<update id="update" parameterType="com.kx.entity.SysUserEntity">
update sys_user
<set>
<if test="username != null">`username` = #{username}, </if>
<if test="password != null">`password` = #{password}, </if>
<if test="email != null">`email` = #{email}, </if>
<if test="mobile != null">`mobile` = #{mobile}, </if>
<if test="status != null">`status` = #{status}, </if>
<if test="createUserId != null">`create_user_id` = #{createUserId}, </if>
<if test="createTime != null">`create_time` = #{createTime}</if>
</set>
where user_id = #{userId}
</update>
<delete id="delete">
delete from sys_user where user_id = #{value}
</delete>
<delete id="deleteBatch">
delete from sys_user where user_id in
<foreach item="userId" collection="array" open="(" separator="," close=")">
#{userId}
</foreach>
</delete>
</mapper>
pom文件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<mybatis.spring.boot.version>1.2.0</mybatis.spring.boot.version>
<mysql.version>5.1.38</mysql.version>
<druid.version>1.0.28</druid.version>
<swagger.version>2.2.2</swagger.version>
<commons.lang.version>2.6</commons.lang.version>
<commons.io.version>2.5</commons.io.version>
<fastjson.version>1.2.30</fastjson.version>
<swagger.version>2.2.2</swagger.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons.lang.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons.configuration.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,不使用devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>