SpringBoot:后端文件夹框架
entity:存放实体类
repository:继承Basemapper,链接数据库
service:实现一些增删改查的功能函数
controller:给前端提供接口
config:存放配置类
utils:存放service中可能用得到的辅助性功能函数
common:存放Result类
entity示例
package com. ustb. springboot. entity ;
import com. baomidou. mybatisplus. annotation. IdType ;
import com. baomidou. mybatisplus. annotation. TableId ;
import com. baomidou. mybatisplus. annotation. TableName ;
import com. fasterxml. jackson. annotation. JsonIgnore ;
import lombok. * ;
import javax. persistence. * ;
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName ( "user" )
@ToString
public class User {
@Id
@GeneratedValue ( strategy = GenerationType . IDENTITY)
@TableId ( value = "uid" , type = IdType . AUTO)
private int uid;
private String username;
private String nickname;
private String email;
private String mobile;
@JsonIgnore
private String password;
@Column ( length = 4 )
private String gender;
private String regDate;
private String avatar;
private int status;
}
repository示例
package com. ustb. springboot. repository ;
import com. baomidou. mybatisplus. core. mapper. BaseMapper ;
import com. ustb. springboot. entity. User ;
import org. springframework. stereotype. Repository ;
@Repository
public interface UsersRepository extends BaseMapper < User > {
}
service示例
userService:
package com. ustb. springboot. service;
import com. ustb. springboot. controller. dto. UserDTO;
import com. ustb. springboot. entity. User;
import java. util. List;
import java. util. Map;
public interface UserService {
public int save( User user) ;
public List< User> findAll( ) ;
public int deleteById( int uid) ;
public Map< String, Object> findPage( int pageNum, int pageSize) ;
public UserDTO login( UserDTO userDTO) ;
public int register( UserDTO userDTO) ;
public User getById( int id ) ;
}
userServiceImp:
package com. ustb. springboot. service ;
import cn. hutool. core. bean. BeanUtil ;
import cn. hutool. core. util. StrUtil ;
import com. baomidou. mybatisplus. core. conditions. query. QueryWrapper ;
import com. baomidou. mybatisplus. extension. plugins. pagination. Page ;
import com. ustb. springboot. controller. dto. UserDTO ;
import com. ustb. springboot. entity. User ;
import com. ustb. springboot. repository. UsersRepository ;
import com. ustb. springboot. utils. STRUtils ;
import com. ustb. springboot. utils. TokenUtils ;
import org. springframework. stereotype. Service ;
import javax. annotation. Resource ;
import java. util. HashMap ;
import java. util. List ;
import java. util. Map ;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UsersRepository userRepository;
@Override
public int save ( User user) {
QueryWrapper < User > wrapper = new QueryWrapper < User > ( ) ;
wrapper. eq ( "username" , user. getUsername ( ) ) ;
List < User > result = userRepository. selectList ( wrapper) ;
if ( result != null && result. size ( ) > 0 ) {
userRepository. update ( user, wrapper) ;
return 2 ;
} else {
userRepository. insert ( user) ;
return 1 ;
}
}
@Override
public List < User > findAll ( ) {
return userRepository. selectList ( null ) ;
}
@Override
public int deleteById ( int uid) {
return userRepository. deleteById ( uid) ;
}
@Override
public Map < String , Object > findPage ( int pageNum, int pageSize) {
QueryWrapper < User > wrapper = new QueryWrapper < User > ( ) ;
Page < User > page = new Page < User > ( pageNum, pageSize) ;
Page < User > userPage = userRepository. selectPage ( page, null ) ;
Map < String , Object > res = new HashMap < > ( ) ;
long pages = userPage. getPages ( ) ;
long current = userPage. getCurrent ( ) ;
List < User > records = userPage. getRecords ( ) ;
long total = userPage. getTotal ( ) ;
boolean hasNext = userPage. hasNext ( ) ;
boolean hasPrevious = userPage. hasPrevious ( ) ;
res. put ( "data" , records) ;
res. put ( "total" , total) ;
return res;
}
@Override
public UserDTO login ( UserDTO userDTO) {
QueryWrapper < User > wrapper = new QueryWrapper < > ( ) ;
String username = userDTO. getUsername ( ) ;
String password = userDTO. getPassword ( ) ;
if ( StrUtil . isBlank ( username) || StrUtil . isBlank ( password) ) {
return null ;
}
wrapper. eq ( "username" , username) . eq ( "password" , password) ;
List < User > result = userRepository. selectList ( wrapper) ;
if ( result!= null && result. size ( ) == 1 ) {
BeanUtil . copyProperties ( result. get ( 0 ) , userDTO) ;
String token = TokenUtils . genToken ( Integer . toString ( result. get ( 0 ) . getUid ( ) ) , result. get ( 0 ) . getPassword ( ) ) ;
userDTO. setToken ( token) ;
return userDTO;
}
return null ;
}
@Override
public int register ( UserDTO userDTO) {
QueryWrapper < User > wrapper = new QueryWrapper < > ( ) ;
String username = userDTO. getUsername ( ) ;
String password = userDTO. getPassword ( ) ;
if ( StrUtil . isBlank ( username) || StrUtil . isBlank ( password) ) {
return 0 ;
}
wrapper. eq ( "username" , username) ;
List < User > list = userRepository. selectList ( wrapper) ;
if ( list!= null && list. size ( ) > 0 ) {
return 0 ;
} else {
User user = new User ( ) ;
user. setUsername ( username) ;
user. setPassword ( password) ;
user. setStatus ( 0 ) ;
user. setNickname ( STRUtils . getRandomString ( 10 ) ) ;
return userRepository. insert ( user) ;
}
}
@Override
public User getById ( int id) {
return userRepository. selectById ( id) ;
}
}
controller示例
package com. ustb. springboot. controller ;
import com. ustb. springboot. common. Result ;
import com. ustb. springboot. controller. dto. UserDTO ;
import com. ustb. springboot. entity. User ;
import com. ustb. springboot. service. UserService ;
import com. ustb. springboot. utils. TokenUtils ;
import org. springframework. web. bind. annotation. * ;
import javax. annotation. Resource ;
import java. util. List ;
import java. util. Map ;
@RestController
@RequestMapping ( "/user" )
public class UserContorller {
@Resource
private UserService userService;
@PostMapping ( "/save" )
public Result save ( @RequestBody User user) {
int data = userService. save ( user) ;
return Result . success ( data) ;
}
@GetMapping ( "/getall" )
public Result findAll ( ) {
List < User > all = userService. findAll ( ) ;
if ( all. size ( ) > 0 && all!= null )
return Result . success ( all) ;
else return Result . error ( ) ;
}
@DeleteMapping ( "/{uid}" )
public Result delete ( @PathVariable int uid) {
int data = userService. deleteById ( uid) ;
if ( data> 0 )
return Result . success ( data) ;
else return Result . error ( ) ;
}
@GetMapping ( "/page" )
public Result findPage ( int pageNum, int pageSize) {
Map < String , Object > page = userService. findPage ( pageNum, pageSize) ;
if ( page!= null )
return Result . success ( page) ;
else return Result . error ( ) ;
}
@PostMapping ( "/login" )
public Result login ( @RequestBody UserDTO userDTO) {
UserDTO login = userService. login ( userDTO) ;
if ( login!= null ) {
return Result . success ( login) ;
}
else return Result . error ( ) ;
}
@PostMapping ( "/register" )
public Result register ( @RequestBody UserDTO userDTO) {
int register = userService. register ( userDTO) ;
if ( register != 0 )
return Result . success ( register) ;
else return Result . error ( ) ;
}
}