*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper().eq(“username”, user.getUsername())) !=null) {
return R.error(“用户已存在”);
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper().eq(“username”, user.getUsername())) !=null) {
return R.error(“用户已存在”);
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper().eq(“username”, user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error(“用户名已存在。”);
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
文件上传:
/**
-
上传文件映射表
/
@RestController
@RequestMapping(“file”)
@SuppressWarnings({“unchecked”,“rawtypes”})
public class FileController{
@Autowired
private ConfigService configService;
/*- 上传文件
*/
@RequestMapping(“/upload”)
public R upload(@RequestParam(“file”) MultipartFile file, String type,HttpServletRequest request) throws Exception {
if (file.isEmpty()) {
throw new EIException(“上传文件不能为空”);
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(“.”)+1);
String fileName = new Date().getTime()+“.”+fileExt;
File dest = new File(request.getSession().getServletContext().getRealPath(“/upload”)+“/”+fileName);
file.transferTo(dest);
if(StringUtils.isNotBlank(type) && type.equals(“1”)) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq(“name”, “faceFile”));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName(“faceFile”);
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put(“file”, fileName);
}
/**
-
下载文件
*/
@IgnoreAuth
@RequestMapping(“/download”)
public void download(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) {
try {
File file = new File(request.getSession().getServletContext().getRealPath(“/upload”)+“/”+fileName);
if (file.exists()) {
response.reset();
response.setHeader(“Content-Disposition”, “attachment; filename=”" + fileName+“”");
response.setHeader(“Cache-Control”, “no-cache”);
response.setHeader(“Access-Control-Allow-Credentials”, “true”);
response.setContentType(“application/octet-stream; charset=UTF-8”);
IOUtils.write(FileUtils.readFileToByteArray(file), response.getOutputStream());
}} catch (IOException e) {
e.printStackTrace();
}
}
- 上传文件
}
>
> ### 数据库设计:
>
>
>
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表4-1wenwufenlei表
| | | | |
| --- | --- | --- | --- |
| 列名 | 数据类型 | 长度 | 约束 |
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| wenwufenlei | varchar | 50 | default NULL |
表4-2:wenwuxinxi表
| | | | |
| --- | --- | --- | --- |
| 列名 | 数据类型 | 长度 | 约束 |
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| wenwubianhao | varchar | 50 | default NULL |
| wenwumingcheng | varchar | 50 | default NULL |
| wenwufenlei | varchar | 200 | default NULL |
| wenwujianjie | varchar | 200 | default NULL |
| tupian | varchar | 200 | default NULL |
| wenwuxiangqing | varchar | 200 | default NULL |
| clicktime | varchar | 200 | default NULL |
| clicknum | varchar | 200 | default NULL |
表4-3:yonghu表
| | | | |
| --- | --- | --- | --- |
| 列名 | 数据类型 | 长度 | 约束 |
| id | int | 11 | NOT NULL |
| addtime | varchar | 50 | default NULL |
| zhanghao | varchar | 50 | default NULL |
| mima | varchar | 50 | default NULL |
| xingming | varchar | 200 | default NULL |
| nianling | varchar | 200 | default NULL |
| xingbie | varchar | 200 | default NULL |
| shouji | varchar | 200 | default NULL |
| zhaopian | varchar | 200 | default NULL |
>
> ### 论文目录:
>
>
>
[摘 要](#_Toc6442)
[Abstract](#_Toc29180)
[1 系统概述](#_Toc26774)
[1.1 概述](#_Toc19464)
[1.2课题意义](#_Toc11425)
[1.3 研究要内容](#_Toc2043)
[2 系统开发环境](#_Toc25777)
[2.1 JSP技术介绍](#_Toc4018)
[2.2 JAVA简介](#_Toc25336)
[2.3访问数据库实现方法](#_Toc25913)
[2.4系统对MySQL数据库的两种连接方式](#_Toc16234)
[2.5 MySql数据库](#_Toc20072)
[2.6 SSM框架](#_Toc20072)
[3 需求分析](#_Toc18285)
[3.1技术可行性:技术背景](#_Toc11855)
[3.2经济可行性](#_Toc30730)
[3.3操作可行性:](#_Toc804)
[3.4系统设计规则](#_Toc16039)
[3.5系统流程和逻辑](#_Toc29846)
[4系统概要设计](#_Toc23700)
[4.1 概述](#_Toc32169)
[4.2 系统结构](#_Toc27629)
[4.3. 数据库设计](#_Toc22156)
[4.3.1 数据库实体](#_Toc14494)
[4.3.2 数据库设计表](#_Toc9737)
[4.4 数据表](#_Toc30358)
[第5章 系统详细设计](#_Toc32633)
[5.1系统功能模块](#_Toc26208)
[5.2管理员功能模块](#_Toc6505)
### 最后
由于篇幅有限,这里就不一一罗列了,**20道常见面试题(含答案)+21条MySQL性能调优经验**小编已整理成Word文档或PDF文档
![MySQL全家桶笔记](https://img-blog.csdnimg.cn/img_convert/a108cf2b522a3424e801832cf9735f99.webp?x-oss-process=image/format,png)
**还有更多面试复习笔记分享如下**
![Java架构专题面试复习](https://img-blog.csdnimg.cn/img_convert/18b77cf76b3b5694de37704fa0ff7f70.webp?x-oss-process=image/format,png)
[4.3.2 数据库设计表](#_Toc9737)
[4.4 数据表](#_Toc30358)
[第5章 系统详细设计](#_Toc32633)
[5.1系统功能模块](#_Toc26208)
[5.2管理员功能模块](#_Toc6505)
### 最后
由于篇幅有限,这里就不一一罗列了,**20道常见面试题(含答案)+21条MySQL性能调优经验**小编已整理成Word文档或PDF文档
[外链图片转存中...(img-OTTSbuMd-1714656073681)]
**还有更多面试复习笔记分享如下**
[外链图片转存中...(img-lJt981RK-1714656073682)]
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**