1.利用spring脚手架创建项目,引入基本依赖
大体项目结构
2.具体所需依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version> <!-- 请使用最新版本 -->
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.3.0</version>
</dependency>
<!-- hutool 插件包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.25</version>
</dependency>
</dependencies>
3.在resources目录下创建yml文件连接数据库(application.yml)
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/你的数据库名
username: 你的数据库用户名
password: 你的数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
4.在springboot启动器添加扫描注解
@MapperScan("com.example.springboot.Mapper")
5.编写controller,service,mapper层
5.1 注意这儿还需要编写User实体类
package com.example.springboot.Entity;
public class User {
private Integer id;
private String name;
private Integer age;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
5.2.注意引入Result类
package com.example.springboot.Common;
public class Result {
private String code;
private String msg;
private Object data;
public static Result success(){
Result result=new Result();
result.setCode("200");
result.setMsg("请求成功");
return result;
}
public static Result success(Object data){
Result result = success();
result.setData(data);
return result;
}
public static Result error(){
Result result=new Result();
result.setCode("500");
result.setMsg("系统错误");
return result;
}
public static Result error(String code,String msg){
Result result=new Result();
result.setCode(code);
result.setMsg(msg );
return result;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
5.3 controller层
package com.example.springboot.Controller;
import com.example.springboot.Common.Result;
import com.example.springboot.Entity.User;
import com.example.springboot.Service.UserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
@Autowired
private UserService userService;
@GetMapping("/selectAll")
public Result selectAll(User user){
List<User> list = userService.selectAll(user);
return Result.success(list);
}
@GetMapping("/selectById/{id}")
public Result selectById(@PathVariable Integer id){
User user = userService.selectById(id);
return Result.success(user);
}
@PostMapping("/add")
public Result add(@RequestBody User user ){
userService.add(user);
return Result.success();
}
@PutMapping("/update")
public Result updateById(@RequestBody User user){
userService.updateById(user);
return Result.success();
}
@DeleteMapping("/delete/{id}")
public Result deleteById(@PathVariable Integer id){
userService.deleteById(id);
return Result.success();
}
@DeleteMapping("/deleteBatch")
public Result deleteBatch(@RequestBody List<Integer> ids){
userService.deleteBatch(ids);
return Result.success();
}
@GetMapping("/selectPage")
public Result selectPage(User user,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize){
PageInfo<User> pageInfo = userService.selectPage(user,pageNum,pageSize);
return Result.success(pageInfo);
}
}
5.4 Service层
package com.example.springboot.Service;
import com.example.springboot.Entity.User;
import com.example.springboot.Mapper.UserMapper;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import java.util.List;
@Service
public class UserService {
@Resource
private UserMapper userMapper;
public List<User> selectAll(User user) {
return userMapper.selectAll(user);
}
public void deleteById(Integer id) {
userMapper.deleteById(id);
}
public void add(User user) {
userMapper.add(user);
}
public User selectById(Integer id) {
return userMapper.selectById(id);
}
public void updateById(User user) {
userMapper.updateById(user);
}
public void deleteBatch(List<Integer> ids) {
for (Integer id : ids){
this.deleteById(id);
}
}
public PageInfo<User> selectPage(User user, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<User> list = userMapper.selectAll(user);
return PageInfo.of(list);
}
}
5.5 Mapper层
package com.example.springboot.Mapper;
import com.example.springboot.Entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper {
public abstract List<User> selectAll(User user);
@Delete("delete from `user` where id=#{id}")
void deleteById(Integer id);
void add(User user);
@Select("select * from `user` where id=#{id}")
User selectById(Integer id);
void updateById(User user);
}
6.编写mybatis的sql映射xml文件
<?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.example.springboot.Mapper.UserMapper">
<select id="selectAll" resultType="com.example.springboot.Entity.User">
select * from user
<where>
<if test="name !=null">name like concat('%',#{name},'%')</if>
</where>
order by id desc
</select>
</mapper>
前面忘了,数据库如下
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`age` int DEFAULT NULL,
`sex` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
最后,启动项目即可实现所有功能!