暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot详细教程 | 第三篇:Spring Boot整合Mybatis

小东IT技术分享 2019-02-19
233

想看干货文章,戳左边绿色按钮吧

本文主要讲解如何在springboot下整合mybatis,并访问数据库。由于mybatis这个框架太过于流行,所以我就不讲解了。

讲下下面要用的注解

@Controller:修饰class,用来创建处理http请求的对象
@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格@RequestMapping:配置url映射@RestController: 修饰class,用来创建处理http请求的对象以及直接可以返回json数据类型

下面我们尝试Spring Boot整合Mybatis对象的RESTful API,配合注解使用

RESTful API具体设计如下:

请求类型 URL 功能说明 GET /user/list 查询用户列表 POST /user/add 创建一个用户 GET /users/id 根据id查询一个用户 PUT /users/id 根据id更新一个用户 DELETE /users/id 根据id删除一个用户

1

引入依赖

在创建Spring Boot项目的时候可以搜索直接引入

在pom文件依赖:

  1.        <dependency>

  2.            <groupId>org.mybatis.spring.boot</groupId>

  3.            <artifactId>mybatis-spring-boot-starter</artifactId>

  4.            <version>2.0.0</version>

  5.        </dependency>


  6.        <dependency>

  7.            <groupId>mysql</groupId>

  8.            <artifactId>mysql-connector-java</artifactId>

  9.            <scope>runtime</scope>

  10.        </dependency>

mybatis-spring-boot-starter: mybatis的依赖 mysql-connector-java: 连接mysql数据库依赖 连接池依赖选择Spring Boot 自带的Hikari 不选择阿里的Druid

2

引入数据源

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

user表结构很简单 自行创建



3

创建实体类



  1. package com.li.springbootmybatis.model;


  2. /**

  3. * @ClassName User

  4. * @Author lihaodong

  5. * @Date 2019/2/19 09:20

  6. * @Mail lihaodongmail@163.com

  7. * @Description

  8. * @Version 1.0

  9. **/


  10. public class User {


  11.    private int id;

  12.    private String name;


  13.    public int getId() {

  14.        return id;

  15.    }


  16.    public void setId(int id) {

  17.        this.id = id;

  18.    }


  19.    public String getName() {

  20.        return name;

  21.    }


  22.    public void setName(String name) {

  23.        this.name = name;

  24.    }

  25. }

4

dao层

  1. package com.li.springbootmybatis.dao;


  2. import com.li.springbootmybatis.model.User;

  3. import org.apache.ibatis.annotations.*;


  4. import java.util.List;


  5. /**

  6. * @ClassName UserMapper

  7. * @Author lihaodong

  8. * @Date 2019/2/19 09:18

  9. * @Mail lihaodongmail@163.com

  10. * @Description

  11. * @Version 1.0

  12. **/

  13. @Mapper

  14. public interface UserMapper {


  15.    @Insert("insert into user(name) values(#{name})")

  16.    int add(@Param("name") String name);


  17.    @Update("update user set name = #{name} where id = #{id}")

  18.    int update(@Param("name") String name, @Param("id") int id);


  19.    @Delete("delete from user where id = #{id}")

  20.    int delete(int id);


  21.    @Select("select id, name from user where id = #{id}")

  22.    User findUser(@Param("id") int id);


  23.    @Select("select id, name from user")

  24.    List<User> findUserList();



  25. }

5

server层

  1. package com.li.springbootmybatis.server;


  2. import com.li.springbootmybatis.model.User;

  3. import org.apache.ibatis.annotations.*;


  4. import java.util.List;


  5. public interface UserServer {


  6.    int add(@Param("name") String name);


  7.    int update(@Param("name") String name, @Param("id") int id);


  8.    int delete(int id);


  9.    User findUser(@Param("id") int id);


  10.    List<User> findUserList();

  11. }

6

serviceImpl层

  1. package com.li.springbootmybatis.server.impl;


  2. import com.li.springbootmybatis.dao.UserMapper;

  3. import com.li.springbootmybatis.model.User;

  4. import com.li.springbootmybatis.server.UserServer;

  5. import org.springframework.stereotype.Service;


  6. import javax.annotation.Resource;

  7. import java.util.List;


  8. /**

  9. * @ClassName UserServiceImpl

  10. * @Author lihaodong

  11. * @Date 2019/2/19 09:22

  12. * @Mail lihaodongmail@163.com

  13. * @Description

  14. * @Version 1.0

  15. **/

  16. @Service

  17. public class UserServiceImpl implements UserServer {


  18.    @Resource

  19.    private UserMapper userMapper;


  20.    @Override

  21.    public int add(String name) {

  22.        return userMapper.add(name);

  23.    }


  24.    @Override

  25.    public int update(String name, int id) {

  26.        return update(name, id);

  27.    }


  28.    @Override

  29.    public int delete(int id) {

  30.        return userMapper.delete(id);

  31.    }


  32.    @Override

  33.    public User findUser(int id) {

  34.        return userMapper.findUser(id);

  35.    }


  36.    @Override

  37.    public List<User> findUserList() {

  38.        return userMapper.findUserList();

  39.    }

  40. }

7

controller层,构建restful API

  1. package com.li.springbootmybatis.controller;


  2. import com.li.springbootmybatis.model.User;

  3. import com.li.springbootmybatis.server.UserServer;

  4. import org.apache.ibatis.annotations.Param;

  5. import org.springframework.beans.factory.annotation.Autowired;

  6. import org.springframework.web.bind.annotation.*;


  7. import java.util.List;


  8. /**

  9. * @ClassName UserController

  10. * @Author lihaodong

  11. * @Date 2019/2/19 09:25

  12. * @Mail lihaodongmail@163.com

  13. * @Description

  14. * @Version 1.0

  15. **/


  16. @RestController

  17. @RequestMapping("/user")

  18. public class UserController {


  19.    @Autowired

  20.    UserServer userServer;


  21.    @RequestMapping(value = "/list", method = RequestMethod.GET)

  22.    public List<User> getAccounts() {

  23.        return userServer.findUserList();

  24.    }


  25.    @RequestMapping(value = "/{id}", method = RequestMethod.GET)

  26.    public User getAccountById(@PathVariable("id") int id) {

  27.        return userServer.findUser(id);

  28.    }


  29.    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)

  30.    public String updateAccount(@PathVariable("id") int id, @RequestParam(value = "name", required = true) String name) {

  31.        int t = userServer.update(name, id);

  32.        if (t == 1) {

  33.            return "success";

  34.        } else {

  35.            return "fail";

  36.        }

  37.    }


  38.    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)

  39.    public String delete(@PathVariable(value = "id") int id) {

  40.        int t = userServer.delete(id);

  41.        if (t == 1) {

  42.            return "success";

  43.        } else {

  44.            return "fail";

  45.        }

  46.    }


  47.    @RequestMapping(value = "/add", method = RequestMethod.POST)

  48.    public String postAccount(String name) {

  49.        int t = userServer.add(name);

  50.        if (t == 1) {

  51.            return "success";

  52.        } else {

  53.            return "fail";

  54.        }

  55.    }


  56. }

我这边通过paw软件测试通过 也可以使用postman测试通过。 源码下载:https://github.com/LiHaodong888/SpringBootLearn



文章转载自小东IT技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论