流程:pom》yml》入口类》dao》service》controller
1.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.wang.demo</groupId>
<artifactId>springboot_ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<!--父工程约定版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatisplus的启动坐标-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.yml/yaml(连接数据库)
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///springboot_db?useUnicode=true&characterEncoding=utf-8
username: root
password: 1234
server:
port: 8080
3.入口类(@MapperScan扫描dao包@SpringBootApplication)
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("cn.wang.dao")//相当于spring要扫描dao层的所有接口
public class ApplicationSsm1 {
public static void main(String[] args) {
SpringApplication.run(ApplicationSsm1.class, args);
}
}
4.controller(result风格)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<User> findAll() {
return userService.findAll();
}
@GetMapping("/{id}")
public Result findById(@PathVariable("id") long id) {
try {
userService.findById(id);
return new Result(true, "select ok", null);
} catch (Exception e) {
userService.findById(id);
return new Result(false, "selete fail", null);
}
}
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable("id") long id) {
try {
userService.deleteById(id);
return new Result(true, "delete ok", null);
} catch (Exception e) {
userService.deleteById(id);
return new Result(false, "delete fail", null);
}
}
@PostMapping
public Result save(@RequestBody User user) {
try {
userService.save(user);
return new Result(true, "save ok", null);
} catch (Exception e) {
userService.save(user);
return new Result(false, "save fail", null);
}
}
@PutMapping
public Result update(@RequestBody User user) {
try {
userService.update(user);
return new Result(true, "update ok", null);
} catch (Exception e) {
userService.update(user);
return new Result(false, "upate fail", null);
}
}
}
5.service(指定dao方法)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<User> findAll() {
return userDao.selectList(null);
}
public User findById(long id) {
return userDao.selectById(id);
}
public Integer deleteById(long id) {
return userDao.deleteById(id);
}
public Integer save(User user) {
return userDao.insert(user);
}
public Integer update(User user) {
return userDao.updateById(user);
}
}
6.dao(继承Basemapper<实体类>)
import cn.itcast.demo.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//通过自定义mapper接口继承BaseMapper<T>T是查询的实体类泛型 dao 继承该接口后,无需编写 dao.xml 文件,即可获得CRUD功能
//@Mapper 相当于spring,需要代理的接口对象 有多个接口需要都写上
public interface UserDao extends BaseMapper<User> {
}
7.实体类(lombok @TableName(声明实体类对应的数据库的表名) @TableId(6中类型的id))
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
//MyBatis需要配置驼峰命名规范,实体类(大写)的属性对应字段的下划线,但是plus默认打开
@Data//添加lombok依赖
@TableName("tb_user")//通过Mybatisplus的@TableName注解声明实体类对应的表
public class User {
// id
//@TableField //能对上属性名和字段名可以省略 属性对应的字段
/** 指定当前id的生成策略
* AUTO(0), 对应数据库的自增
* NONE(1), 不用管
* INPUT(2), 手动输入
* ID_WORKER(3), 雪花算法
* UUID(4), uuid
* ID_WORKER_STR(5); 生成雪花算法id转str字符串
*/
@TableId(type = IdType.AUTO)
private Long id;
// 用户名
private String userName;
// 密码
private String password;
// 姓名
private String name;
// 年龄
private Integer age;
// 性别,1男性,2女性
private Integer sex;
// 出生日期
private Date birthday;
// 创建时间
private Date created;
// 更新时间
private Date updated;
// 备注
private String note;
}
8.result(lombok vo类哦)
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private Boolean success;
private String message;
private Object object;
}