山东大学创新实训4——智能编程助手博客论坛
Account实体类
package com.wzh.springbootproject.entity;
/**
* 角色用户父类
*/
public class Account {
private Integer id;
/** 用户名 */
private String username;
/** 名称 */
private String name;
/** 密码 */
private String password;
/** 角色标识 */
private String role;
/** 新密码 */
private String newPassword;
/** 头像 */
private String avatar;
private String token;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getNewPassword() {
return newPassword;
}
public void setNewPassword(String newPassword) {
this.newPassword = newPassword;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
User实体类
```java
package com.wzh.springbootproject.entity;
public class User extends Account {
private Integer id;
private String username;
private String password;
private String name;
private String avatar;
private String role;
private String sex;
private String phone;
private String email;
private String info;
private String birth;
private Integer blogCount;
private Integer likesCount;
private Integer collectCount;
public Integer getBlogCount() {
return blogCount;
}
public void setBlogCount(Integer blogCount) {
this.blogCount = blogCount;
}
public Integer getLikesCount() {
return likesCount;
}
public void setLikesCount(Integer likesCount) {
this.likesCount = likesCount;
}
public Integer getCollectCount() {
return collectCount;
}
public void setCollectCount(Integer collectCount) {
this.collectCount = collectCount;
}
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Override
public String getUsername() {
return username;
}
@Override
public void setUsername(String username) {
this.username = username;
}
@Override
public String getPassword() {
return password;
}
@Override
public void setPassword(String password) {
this.password = password;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getAvatar() {
return avatar;
}
@Override
public void setAvatar(String avatar) {
this.avatar = avatar;
}
@Override
public String getRole() {
return role;
}
@Override
public void setRole(String role) {
this.role = role;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
}
UserController
```java
package com.wzh.springbootproject.controller;
import com.wzh.springbootproject.common.Result;
import com.wzh.springbootproject.dto.UserDTO;
import com.wzh.springbootproject.entity.User;
import com.wzh.springbootproject.entity.Admin;
import com.wzh.springbootproject.service.UserService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@Transactional
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/add")
public Result add(@RequestBody User user) {
userService.add(user);
return Result.success();
}
/**
* 删除
*/
@DeleteMapping("/delete/{id}")
public Result deleteById(@PathVariable Integer id) {
userService.deleteById(id);
return Result.success();
}
/**
* 批量删除
*/
@DeleteMapping("/delete/batch")
public Result deleteBatch(@RequestBody List<Integer> ids) { // [1,2,3]
userService.deleteBatch(ids);
return Result.success();
}
/**
* 修改
*/
@PutMapping("/update")
public Result updateById(@RequestBody User user) {
userService.updateById(user);
return Result.success();
}
/**
* 根据ID查询
*/
@GetMapping("/selectById/{id}")
public Result selectById(@PathVariable Integer id) {
User user = userService.selectById(id);
return Result.success(user);
}
/**
* 查询所有
*/
@GetMapping("/selectAll")
public Result selectAll(User user) {
List<User> list = userService.selectAll(user);
return Result.success(list);
}
/**
* 分页查询
*/
@GetMapping("/selectPage")
public Result selectPage(User user,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
PageInfo<User> page = userService.selectPage(user, pageNum, pageSize);
return Result.success(page);
}
}
UserMapper
package com.wzh.springbootproject.mapper;
import com.wzh.springbootproject.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface UserMapper {
void insert(User user);
User selectByUsername(String username);
void deleteById(Integer id);
void updateById(User user);
User selectById(Integer id);
List<User> selectAll(User user);
}
UserMapper.xml实现上面Mapper的操作
<?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.wzh.springbootproject.mapper.UserMapper">
<insert id="insert">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="username != null">username,</if>
<if test="password != null">password,</if>
<if test="name != null">name,</if>
<if test="phone != null">phone,</if>
<if test="email != null">email,</if>
<if test="avatar != null">avatar,</if>
<if test="role != null">role,</if>
<if test="sex != null">sex,</if>
<if test="info != null">info,</if>
<if test="birth != null">birth,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="username != null">#{username},</if>
<if test="password != null">#{password},</if>
<if test="name != null">#{name},</if>
<if test="phone != null">#{phone},</if>
<if test="email != null">#{email},</if>
<if test="avatar != null">#{avatar},</if>
<if test="role != null">#{role},</if>
<if test="sex != null">#{sex},</if>
<if test="info != null">#{info},</if>
<if test="birth != null">#{birth},</if>
</trim>
</insert>
<update id="updateById">
update user
<set>
<if test="username != null">
username = #{username},
</if>
<if test="password != null">
password = #{password},
</if>
<if test="name != null">
name = #{name},
</if>
<if test="phone != null">
phone = #{phone},
</if>
<if test="email != null">
email = #{email},
</if>
<if test="avatar != null">
avatar = #{avatar},
</if>
<if test="role != null">
role = #{role},
</if>
<if test="sex != null">
sex = #{sex},
</if>
<if test="info != null">
info = #{info},
</if>
<if test="birth != null">
birth = #{birth},
</if>
</set>
where id = #{id}
</update>
<delete id="deleteById">
delete from user where id = #{id}
</delete>
<select id="selectByUsername" resultType="com.wzh.springbootproject.entity.User">
select * from user where username = #{username}
</select>
<select id="selectById" resultType="com.wzh.springbootproject.entity.User">
select * from user where id = #{id}
</select>
<select id="selectAll" resultType="com.wzh.springbootproject.entity.User">
select * from user
<where>
<if test="username != null"> and username = #{username}</if>
<if test="name != null"> and name like concat('%', #{name}, '%')</if>
</where>
order by id desc
</select>
</mapper>
user的功能实现和管理员的差不多可以直接复制粘贴