swagger2使用
import com.bw.service.UserService;
import com.bw.util.ExcelUtil;
import com.bw.util.FileTransferUtil;
import com.bw.util.MD5Util;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.jasypt.encryption.StringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
@RestController
public class UserController {
@Value("${myImgDir}")
private String myImgDir;
@Autowired
private UserService userService;
@Autowired
private StringEncryptor stringEncryptor;
@RequestMapping("/testEnc")
public String encryptPwd() {
String result = stringEncryptor.encrypt("root");
return result;
}
@ApiOperation(value="查询所有用户",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(dataType = "String",name="uid")
})
@RequestMapping(value="/selectAll",method = RequestMethod.GET)
public List<User> selectAll(){
return userService.selectAll();
}
//注册
@ApiIgnore
@RequestMapping("/doRegister")
public User doRegister(User user, @RequestParam("imgFile") MultipartFile imgFile){
//密码加密
String oldPwd = user.getPassword();
String newPwd = MD5Util.MD5(oldPwd);
user.setPassword(newPwd);
//上传文件
String filename = FileTransferUtil.uploadFile(myImgDir,imgFile);
//设置头像属性
user.setHeadImg(filename);
//记录web日志
// logger.info("用户请求的参数为:{},{}",user.toString(),imgFile.getOriginalFilename());
//保存用户信息,并返回
return userService.registerUser(user);
}
@RequestMapping("/exportExcel")
public String exportExcel(HttpServletResponse response) throws Exception{
//查询出要导出的数据
List<User> users = userService.selectAll();
//遵循poi的操作规范将数据写入到excel中
ExcelUtil.exportUserList(response,users);
return "success";
}
}
JPA使用
@Entity
@Table(name="t_user")
public class User implements Serializable{
@Id
@GeneratedValue
private Integer uid;
@Column
private String username;
@Column
private String password;
@Column
private Integer age;
@Column
private String gender;
@Column
private String headImg;
@Column
private String hobby;
dao层处理
public interface UserRepository extends JpaRepository<User,Integer> {
//根据用户名和密码查询用户
public User findUserByUsernameAndPassword(String username,String password);
//根据uid查询用户
public User findUserByUid(Integer uid);
@Query(value = "update User set username=?1,password=?2,age=?3,headImg=?4,gender=?5,hobby=?6 where uid=?7 ")
@Modifying
public void updateUser(@Param("username") String username,@Param("password") String password,@Param("age") Integer age, @Param("gender") String gender,@Param("headImg") String headImg, @Param("hobby") String hobby, @Param("uid") Integer uid);
}
service层可以写的接口,因为是jpa所以可以比之前更多
//根据用户名和密码查询用户
public User login(String username, String password);
//注册功能
public User registerUser(User user);
//修改功能
public void updateUser(User user);
//根据id删除用户
public void deleteByUid(Integer uid);
//根据uid查询用户
public User findUserByUid(Integer uid);
public List<User> selectAll();
实现
@Autowired
private UserRepository dao;
@Override
public User login(String username, String password) {
return dao.findUserByUsernameAndPassword(username,password);
}
@Override
public User registerUser(User user) {
dao.save(user);
return user;
}
@Override
public void updateUser(User user) {
dao.updateUser(user.getUsername(),user.getPassword(),user.getAge(),user.getGender(),user.getHeadImg(),user.getHobby(),user.getUid());
}
@Override
public void deleteByUid(Integer uid) {
dao.delete(uid);
}
@Override
public User findUserByUid(Integer uid) {
return dao.findUserByUid(uid);
}
@Override
public List<User> selectAll() {
return dao.findAll();
}