SpringBoot整合第三方框架+综合案例(Postman测试)

目录

1. springboot整合mybatis

2.springboot整合pageHelper

3.综合案例=学生表CRUD(Postman测试结果)

3.1完成查询所有

3.1.1.创建springboot项目

3.1.2.导入依赖 pom.xml

3.1.3.application.properties配置文件

3.1.4.数据库准备

 3.1.5.创建实体类Student.java , Clazz.java

3.1.6.创建dao接口 StudentDao.java

3.1.7.创建Student.xml

3.1.8.创建业务层

3.1.9.创建Result.java

3.1.10.Controller层 

3.1.11.使用Postman测试

3.2.完成所有

3.2.1创建StudentVo.java

3.2.2.StudentDao.java

3.2.3.StudentDao.xml

3.2.4.StudentService.java

3.2.5.StudentServiceImpl.java

3.2.6.StudentController.java

3.2.7.使用Postman测试


1. springboot整合mybatis

数据库:

(1)依赖

<?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>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot02</name>
    <description>springboot02</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>

        </dependency>
        <!--mysql的驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mybatis启动依赖:DataSourceAutoConfiguration:读取application配置文件中以spring.datasource -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </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>

(2)配置文件

#数据源信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# characterEncoding防止您添加到数据的数据出现乱码。
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&characterEncoding=UTF8
spring.datasource.username=root
spring.datasource.password=123456789

#指定mybatis映射文件的路径 classpath编译后的路径
mybatis.mapper-locations=classpath:mapper/*.xml
#控制台打印sql日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

(3)创建实体类和dao接口

@Data
public class Dept {
    private Integer id;
    private String name;
}
@Mapper
public interface DeptDao {
    public List<Dept>findAll();
}

mapper下的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">
<!--namesapce的内容必须和对应的接口路径映射-->
<mapper namespace="com.wqg.dao.DeptDao">


    <!--查询所有-->
    <select id="findAll" resultType="com.wqg.pojo.Dept">
        select * from dept
    </select>
</mapper>

(4)主启动类上添加@MapperScan或者dao接口上添加@Mapper

@SpringBootApplication
public class Springboot02Application {

    public static void main(String[] args) {
        SpringApplication.run(Springboot02Application.class, args);
    }

}

(5)测试

@SpringBootTest(classes = Springboot02Application.class)

class Springboot02ApplicationTests {

    @Autowired
    private DeptDao deptDao; //如果无法注入DeptDao的对象。[spring容器中没有dao接口的代理实现类]

    @Test
    void contextLoads() {

        List<Dept> all = deptDao.findAll();
        System.out.println(all);
    }

}

2.springboot整合pageHelper

(1)依赖

  <!--pageHelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.6</version>
        </dependency>

(2)测试

@Test
    void contextLoads() {
        PageHelper.startPage(1,1);
        List<Dept> all = deptDao.findAll();
        //把查询的结果封装到PageInfo中
        PageInfo<Dept> pageInfo=new PageInfo<>(all);
        System.out.println("总页数:"+pageInfo.getPages());
        System.out.println("总条数:"+pageInfo.getTotal());
        System.out.println("当前页的记录:");
        List<Dept> list = pageInfo.getList();
        list.stream().forEach(System.out::println);
    }

3.综合案例=学生表CRUD(Postman测试结果)

3.1完成查询所有

3.1.1.创建springboot项目

略...(详见上篇文章)

3.1.2.导入依赖 pom.xml

<?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>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot03</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot03</name>
    <description>springboot03</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--pageHelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.6</version>
        </dependency>
        <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.3.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3.1.3.application.properties配置文件

#数据源信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# characterEncoding防止您添加到数据的数据出现乱码。
spring.datasource.url=jdbc:mysql://localhost:3306/qy165ssm?serverTimezone=Asia/Shanghai&characterEncoding=UTF8
spring.datasource.username=root
spring.datasource.password=123456789

#指定mybatis映射文件的路径 classpath编译后的路径
mybatis.mapper-locations=classpath:mapper/*.xml
#控制台打印sql日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

3.1.4.数据库准备

班级表:class       学生信息表:student

 3.1.5.创建实体类Student.java , Clazz.java

@Data //学生信息表
public class Student {
    private Integer sid;
    private String sname;
    private Integer age;
    private String sex;
    private Integer class_id;
    private String headImg="https://aaa165.oss-cn-beijing.aliyuncs.com/wz.jpg"; //随便填一个照片路径,目前用于测试
    private Clazz clazz;
}




@Data  //班级表
public class Clazz {
    private Integer cid;
    private String cname;
}

3.1.6.创建dao接口 StudentDao.java

@Mapper
public interface StudentDao {

    //查询所有
    List<Student> selectAll();
}

3.1.7.创建Student.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">
<!--namesapce的内容必须和对应的接口路径映射-->
<mapper namespace="com.wqg.dao.StudentDao">


    <!--查询所有-->
    <select id="selectAll" resultType="com.wqg.pojo.Student">
        select
            s.sid , s.sname , s.age , s.sex , s.class_id , s.headImg,
            c.cid, c.cname
            from  student s join class c on s.class_id = c.cid
    </select>
</mapper>

3.1.8.创建业务层

StudenService.java接口及StudentServiceImpl.java

public interface StudentService {

    //查询所有
    List<Student> selectAll();
}



@Service
public class StudentServiceImpl implements StudentService {
    
    @Autowired
    private StudentDao studentDao;
    
    //查询所有
    @Override
    public List<Student> selectAll() {
        return studentDao.selectAll();
    }
    
}

3.1.9.创建Result.java

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Result {
    //表示状态码
    private Integer code;
    //消息提示
    private String msg;
    //响应的数据内容
    private Object data;
}

3.1.10.Controller层 

创建StudentController.java

@RestController
@RequestMapping("student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    //查询所有
    @RequestMapping("all")
    public Result StudentAll() {
        List<Student> studentList = studentService.selectAll();
        if (studentList.size() == 0) {
            return new Result(500, "查询所有失败", null);
        }
        return new Result(200, "查询所有成功", studentList);
    }

}

3.1.11.使用Postman测试

3.2.完成所有

增--删--改--根据id查--分页条件查

3.2.1创建StudentVo.java

//接收前端学生的搜索条件对象
@Data
public class StudentVo {

    private String sname;
    private Integer class_id;

}

3.2.2.StudentDao.java


    // 增
    public Integer add(Student student);
    // 删
    public Integer delete(Integer id);
    // 改
    public Integer update(Student student);
    // 根据id查
    public Student selectById(Integer id);
    //分页条件查
    List<Student> selectByCondition(StudentVo studentVo);

3.2.3.StudentDao.xml


    <!--增-->
    <insert id="add">
        insert into student
        values (null, #{sname}, #{age}, #{sex}, #{class_id}, #{headImg});
    </insert>
    <!--删-->
    <delete id="delete">
        delete
        from student
        where sid = #{sid}
    </delete>
    <!--改-->
    <update id="update">
        update student
        set sname=#{sname},
            age=#{age},
            sex=#{sex},
            class_id=#{class_id},
            headImg=#{headImg}
        where sid = #{sid}
    </update>
    <!--根据id查-->
    <select id="selectById" resultType="com.wqg.pojo.Student">
        select sid,
               sname,
               age,
               sex,
               class_id,
               headImg
        from student
        where sid = #{sid}
    </select>
    <!--分页条件查-->
    <select id="selectByCondition" resultType="com.wqg.pojo.Student">
        select s.sid,
        s.sname,
        s.age,
        s.sex,
        s.class_id,
        s.headImg,
        c.cid,
        c.cname
        from student s
        join class c on s.class_id = c.cid
        <where>
            <if test="sname != null and sname != ''">
                and s.sname like concat ("%",#{sname},"%")
            </if>
            <if test="class_id != null">
                and class_id =#{class_id}
            </if>
        </where>
    </select>

3.2.4.StudentService.java

 // 增
    public Integer add(Student student);
    // 删
    public Integer delete(Integer id);
    // 改
    public Integer update(Student student);
    // 根据id查
    public Student selectById(Integer id);
    //分页条件查
    PageInfo<Student> selectByCondition(Integer currentPage , Integer pageSize , StudentVo studentVo);

3.2.5.StudentServiceImpl.java


    //增
    @Override
    public Integer add(Student student) {
        return studentDao.add(student);
    }

    //删
    @Override
    public Integer delete(Integer id) {
        return studentDao.delete(id);
    }

    //改
    @Override
    public Integer update(Student student) {
        return studentDao.update(student);
    }

    //根据id查
    @Override
    public Student selectById(Integer id) {
        return studentDao.selectById(id);
    }

    //分页条件查
    @Override
    public PageInfo<Student> selectByCondition(Integer currentPage, Integer pageSize, StudentVo studentVo) {
        PageHelper.startPage(currentPage,pageSize);
        List<Student> a = studentDao.selectByCondition(studentVo);
        PageInfo<Student> pageInfo = new PageInfo<>(a);
        return pageInfo ;
    }

3.2.6.StudentController.java

   // 增
    @PostMapping("add")
    public Result add(@RequestBody Student student) {
        Integer add = studentService.add(student);
        return add > 0 ? new Result(200, "增加成功", null) : new Result(500, "增加失败", null);
    }

    // 删
    @DeleteMapping
    public Result delete(Integer id) {
        Integer delete = studentService.delete(id);
        return delete > 0 ? new Result(200, "删除成功", null) : new Result(500, "删除失败", null);

    }

    // 改
    @PutMapping
    public Result update(@RequestBody Student student) {
        Integer update = studentService.update(student);
        return update > 0 ? new Result(200, "修改成功", null) : new Result(500, "修改失败", null);

    }

    // 根据id查
    @GetMapping
    public Result selectById(Integer id) {
        Student student = studentService.selectById(id);
        return new Result(200, "根据id查询成功", student);
    }

    //分页条件查
    @PostMapping("selectByCondition")
    public Result selectByCondition(Integer currentPage, Integer pageSize, @RequestBody StudentVo studentVo) {
        PageInfo<Student> pageInfo = studentService.selectByCondition(currentPage, pageSize, studentVo);
        return new Result(200, "分页条件查询成功", pageInfo);
    }

3.2.7.使用Postman测试

根据id查

 

分页条件查询

全部包:

 

 综合案例测试完成...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是操作步骤: 1. 创建SpringBoot项目,并添加Mybatis和MySQL依赖。 2. 创建实体类和Mapper接口,并在Mapper接口中定义增删查改的方法。 3. 在application.properties文件中配置数据库连接相关信息。 4. 编写Controller层,调用Mapper接口中的方法,并使用@RequestBody注解接收前端传来的数据。 5. 使用Postman进行测试,发送对应的请求并查看返回结果。 具体的代码实现可以参考以下示例: 实体类: ``` public class User { private int id; private String name; private int age; // 省略getter和setter方法 } ``` Mapper接口: ``` @Mapper public interface UserMapper { List<User> findAll(); User findById(int id); void insert(User user); void update(User user); void delete(int id); } ``` Controller层: ``` @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/users") public List<User> findAll() { return userMapper.findAll(); } @GetMapping("/users/{id}") public User findById(@PathVariable int id) { return userMapper.findById(id); } @PostMapping("/users") public void insert(@RequestBody User user) { userMapper.insert(user); } @PutMapping("/users/{id}") public void update(@PathVariable int id, @RequestBody User user) { user.setId(id); userMapper.update(user); } @DeleteMapping("/users/{id}") public void delete(@PathVariable int id) { userMapper.delete(id); } } ``` 使用Postman进行测试: 1. GET请求,查询所有用户: ``` 请求方式:GET 请求URL:http://localhost:8080/users ``` 2. GET请求,根据ID查询用户: ``` 请求方式:GET 请求URL:http://localhost:8080/users/1 ``` 3. POST请求,新增用户: ``` 请求方式:POST 请求URL:http://localhost:8080/users 请求体:{ "name": "Tom", "age": 20 } ``` 4. PUT请求,修改用户: ``` 请求方式:PUT 请求URL:http://localhost:8080/users/1 请求体:{ "name": "Tom", "age": 21 } ``` 5. DELETE请求,删除用户: ``` 请求方式:DELETE 请求URL:http://localhost:8080/users/1 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值