概要
SpringBoot+Mybatis简易增删改查
直接上代码
mysql表
1.创建springboot项目
2.导入pom坐标
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>QingGeDemoOne</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>QingGeDemoOne</name>
<description>QingGeDemoOne</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.6.13</spring-boot.version>
</properties>
<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>2.2.2</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.example.qinggedemoone.QingGeDemoOneApplication</mainClass>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
3.封装返回前端的类
package com.example.qinggedemoone.common;
import lombok.*;
@Getter
@Setter
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Result {
public static final String CODE_SUCCESS="200";
public static final String CODE_AUTH_ERROR="401";
public static final String CODE_SYS_ERROR="500";
private String code;
private String msg;
private Object data;
public static Result success(){
return Result.builder().code(CODE_SUCCESS).msg("请求成功").build();
}
public static Result success(Object data){
return new Result(CODE_SUCCESS,"请求成功",data);
}
public static Result error(String msg){
return new Result(CODE_SYS_ERROR,msg,null);
}
public static Result error(String code,String msg){
return new Result(code,msg,null);
}
public static Result error(){
return new Result(CODE_SYS_ERROR,"系统错误",null);
}
}
4.创建实体类
package com.example.qinggedemoone.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
//@Builder //创建链式bulider调用方法 eg:User.bulider().name("张三").build();
public class User {
private Integer id;
private String username;
private String password;
private String name;
private String phone;
private String email;
private String address;
private String avatar;
}
5.编写mapper
package com.example.qinggedemoone.mapper;
import com.example.qinggedemoone.entity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper //通过mapper注解将他放入spring容器
public interface UserMapper {
@Insert("insert into user(username,password,name,phone,email,address,avatar) values (#{username},#{password},#{name},#{phone},#{email},#{address},#{avatar})")
void addUser(User user);
@Select("select count(*) from user")
int getCount();
@Update("update user set username=#{username},name =#{name},phone=#{phone},email=#{email}," +
"address=#{address},avatar=#{avatar} where id=#{id}")
void updateUser(User user);
@Delete("delete from user where id =#{id}")
void delUser(String id);
@Select("select * from user")
List<User> users();
@Delete("delete from user where id=#{ids}")
void batchDeleteUser(Integer ids);
@Select("select * from user where id=#{id}")
User getUser(Integer id);
//注:多个参数时要加上@Param 告诉Mybatis框架sql 中要使用的字段
@Select("select * from `user` where username=#{username} and name=#{name}")
User selectByMore(@Param("username") String username, @Param("name") String name);
@Select("select * from user where username=#{username}")
List<User> getUserListCo(@Param("username") String username);
@Select("select count(*) from user where username=#{username}")
int getUserByNameCount(@Param("username") String username);
}
6.编写service 接口层
public interface UserService {
void insert(User user);
int getCount();
void updateUser(User user);
void delUser(String id);
List<User> users();
void batchDeleteUser(List<Integer> ids);
User getUser(Integer id);
User MyselectByMore(String username, String name);
List<User> getUserListCo(String username);
int getUserByNameCount(String username);
}
7.编写service实现类
import com.example.qinggedemoone.entity.User;
import com.example.qinggedemoone.mapper.UserMapper;
import com.example.qinggedemoone.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public User MyselectByMore(String username, String name) {
return userMapper.selectByMore(username,name);
}
@Override
public List<User> getUserListCo(String username) {
return userMapper.getUserListCo(username);
}
@Override
public int getUserByNameCount(String username) {
return userMapper.getUserByNameCount(username);
}
@Override
public void insert(User user) {
userMapper.addUser(user);
}
@Override
public int getCount() {
return userMapper.getCount();
}
@Override
public void updateUser(User user) {
userMapper.updateUser(user);
}
@Override
public void delUser(String id) {
userMapper.delUser(id);
}
@Override
public List<User> users() {
return userMapper.users();
}
@Override
public void batchDeleteUser(List<Integer> ids) {
for (Integer id : ids) {
userMapper.batchDeleteUser(id);
}
}
@Override
public User getUser(Integer id) {
return userMapper.getUser(id);
}
小结
不断提升!