1、在pom.xml导入MyBatis相关的包
该项目使用的springboot版本是 3.5.13
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version> 3.5.10.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>3.5.10.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
加入这段代码后点击maven的刷新按钮,重新拉取一下

Lifecycle中的install可以查看拉取过程

2、在application.yml配置数据库连接
spring:
application:
name: weibo
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
datasource:
username: root
password: xxx
url: jdbc:mysql://localhost:3306/webo?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
server:
port: 8080
servlet:
context-path: /

3、创建entity实体类去映射数据库的数据表
java
package com.hn.it.weibo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("users")
public class User {
@TableId(value="user_id",type= IdType.AUTO)
private int id;
@TableField("user_nickname") //一律小写,不能用驼峰法
private String nickName;
@TableField("user_loginname")
private String loginName;
@TableField("user_loginpwd")
private String loginPwd;
@TableField("user_photo")
private String photo;
@TableField("user_score")
private int score;
@TableField("user_attioncount")
private int attionCount;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int getAttionCount() {
return attionCount;
}
public void setAttionCount(int attionCount) {
this.attionCount = attionCount;
}
}

4、写操作数据库的接口Mapper(Dao)

5、Controller注入UserMapper,用**UserMapper**去执行数据库操作
UserController的代码如下:
java
package com.hn.it.weibo.web;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hn.it.weibo.entity.User;
import com.hn.it.weibo.mapper.UserMapper;
import com.hn.it.weibo.web.dto.RespEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.hn.it.weibo.web.dto.UserDto;
import org.springframework.web.multipart.MultipartFile;
@RestController
//@Controller
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user/list")
public RespEntity userList() {
List<User> list = userMapper.selectList(new QueryWrapper<>());
return new RespEntity(2000,"查询成功",list);
}
@PostMapping("/user/login")
public RespEntity login(String name, String pwd) {
QueryWrapper<User> qw= new QueryWrapper<>();
qw.eq("user_loginname", name);
qw.eq("user_loginpwd", pwd);
User user = userMapper.selectOne(qw);
if(user != null) {
user.setLoginPwd(null);
return new RespEntity(2000,"登录成功",user);
}
return new RespEntity(4001,"用户名或密码不符",null);
}
@PostMapping("/user/reg")
public RespEntity register(@RequestBody User user) {
QueryWrapper<User> qw = new QueryWrapper<>();
qw.eq("user_loginname",user.getLoginName());
User u = userMapper.selectOne(qw);
if(u != null) {
return new RespEntity(4000,"此用户名已存在,不允许注册",null);
}
user.setScore(50);
user.setAttionCount(0);
userMapper.insert(user);
user.setLoginPwd("");
return new RespEntity(2000,"注册成功",user);
}
@GetMapping("/my/test01")
public RespEntity test01(@RequestParam(value="name",defaultValue = "姓名未知") String stuname,int age ) {
System.out.println(stuname+age);
return new RespEntity(2000,"插入成功",stuname+age);
}
@PostMapping("/my/test02")
public RespEntity test02(@RequestBody Map<String,Object> map) {
String nickName = map.get("nickName").toString();
String loginName = map.get("loginName").toString();
String loginPwd = map.get("loginPwd").toString();
return new RespEntity(2000,"注册成功",nickName+loginName+loginPwd);
}
@PostMapping("my/test03")
public RespEntity test03(@RequestBody UserDto user) {
System.out.println(user);
return new RespEntity(2000,"注册成功",user.getNickName()+user.getLoginName()+user.getLoginPwd());
}
@PostMapping("my/test04")
public RespEntity test04( String title, String content, MultipartFile imgfile) throws IOException {
System.out.println(title+content+imgfile.getOriginalFilename());
if(!imgfile.isEmpty()) {
imgfile.transferTo(new File("D:/"+imgfile.getOriginalFilename()));
}
return new RespEntity(2000,"插入成功",title+content+imgfile.getOriginalFilename());
}
// @RequestMapping(value="/my/hello",method = RequestMethod.GET)
@GetMapping(value="/my/hello",produces = "application/json;charset=utf-8")
// @ResponseBody//不加就是返回页面
public String hello() {
return """
{
"hello":"world",
"name":"张三"
}
""";
}
@GetMapping(value="/my/hello2")
// @ResponseBody//不加就是返回页面回
public Map<String,Object> hello2(){
Map<String,Object> map = new HashMap<>();
map.put("code",2000);
map.put("msg","查询成功");
map.put("data",Map.of("name","张三","age",23));
return map;
}
@GetMapping(value="/my/hello3")
public RespEntity hello3(){
return new RespEntity(2000,"查询成功",Map.of("name","张三","age",23));
}
}
