3.SpringBoot整合SSM

流程: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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹子君@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值