SSM整合

1. SSM整合

1.1 导入依赖

        需要导入整合mysql、jdbc、druid、mybatis的依赖

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <!--        mysql   -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
        <!--        jdbc   -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.7.3</version>
        </dependency>
<!--        druid   -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>1.2.23</version>
        </dependency>
<!--        整合 mybatis   -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.7</version>
        </dependency>
<!--        springboot 整合springmvc依赖    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

<!--        lombok  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.38</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

1.2 配置数据源

        在application.yml中进行配置

server:
  port: 8080
spring:
  datasource:
    username: root # 数据库用户名
    password: 123456 # 数据库密码
    url: jdbc:mysql:///db1 # JDBC连接地址
    driver-class-name: com.mysql.cj.jdbc.Driver # MySQL驱动类名
    type: com.alibaba.druid.pool.DruidDataSource # 指定数据源类型为Druid

1.3 写业务

  • 实体类Dept
package com.example.demo.pojo;

import lombok.Data;

@Data
public class Dept {
    private int id;
    private String dname;
    private String loc;

}
  • DeptMapper接口层
package com.example.demo.mapper;

import com.example.demo.pojo.Dept;
import org.apache.ibatis.annotations.*;
import org.springframework.web.bind.annotation.PutMapping;

import java.util.List;

@Mapper
public interface DeptMapper {

//    查询所有
    @Select("select * from dept")
    List<Dept> list();

//    根据id查询
    @Select("select * from dept where id = #{id}")
    Dept  listById(int id);

//    新增
    @Insert("insert into dept values(#{id},#{dname},#{loc})")
    int save(Dept dept);

//    修改
    @Update("update dept set dname = #{dname},loc=#{loc} where id = #{id}")
    int update(Dept dept);

//    删除
    @Delete("delete from dept where id = #{id}")
    int delete(int id);
}
  • DeptService
package com.example.demo.service;

import com.example.demo.pojo.Dept;

import java.util.List;

public interface DeptService {
    //    查询所有
    List<Dept> list();

    //    根据id查询
    Dept  listById(int id);

    //    新增
    int save(Dept dept);

    //    修改
    int update(Dept dept);

    //    删除
    int delete(int id);
}
  • DeptServiceImpl
package com.example.demo.service.impl;

import com.example.demo.mapper.DeptMapper;
import com.example.demo.pojo.Dept;
import com.example.demo.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;

    @Override
    public List<Dept> list() {
        List<Dept> list = deptMapper.list();
        return list;
    }

    @Override
    public Dept listById(int id) {
        Dept dept = deptMapper.listById(id);
        return dept;
    }

    @Override
    public int save(Dept dept) {
        int save = deptMapper.save(dept);
        return save;
    }

    @Override
    public int update(Dept dept) {
        int i = deptMapper.update(dept);
        return i;
    }

    @Override
    public int delete(int id) {
        int i = deptMapper.delete(id);
        return i;
    }
}
  • controller
package com.example.demo.controller;

import com.example.demo.pojo.Dept;
import com.example.demo.service.DeptService;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/depts")
public class DeptsController {

    @Autowired
    private DeptService deptService;


//    查询所有
    @GetMapping
    public List<Dept> list() {
        return deptService.list();
    }

    //    根据id查询
    @GetMapping("/{id}")
    public Dept listById(@PathVariable int id) {
        return deptService.listById(id);
    }

    //    新增
    @PostMapping
    public int save(@RequestBody Dept dept) {
        return deptService.save(dept);
    }

    //    修改
    @PutMapping
    public int update(@RequestBody Dept dept) {
        return deptService.update(dept);
    }
    //    删除
    @DeleteMapping("/{id}")
    public int deleteById(@PathVariable int id) {
        return deptService.delete(id);
    }


}
  • 请求接口测试

        这里我们使用一个比较好用的接口测试软件进行测试,叫Apipost

接口如下:

  • 查询所有

  • 根据id查询

  • 新增

  • 修改

  • 删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值