
想看干货文章,戳左边绿色按钮吧
本文主要讲解如何在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文件依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</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
创建实体类
package com.li.springbootmybatis.model;
/**
* @ClassName User
* @Author lihaodong
* @Date 2019/2/19 09:20
* @Mail lihaodongmail@163.com
* @Description
* @Version 1.0
**/
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4
dao层
package com.li.springbootmybatis.dao;
import com.li.springbootmybatis.model.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
/**
* @ClassName UserMapper
* @Author lihaodong
* @Date 2019/2/19 09:18
* @Mail lihaodongmail@163.com
* @Description
* @Version 1.0
**/
@Mapper
public interface UserMapper {
@Insert("insert into user(name) values(#{name})")
int add(@Param("name") String name);
@Update("update user set name = #{name} where id = #{id}")
int update(@Param("name") String name, @Param("id") int id);
@Delete("delete from user where id = #{id}")
int delete(int id);
@Select("select id, name from user where id = #{id}")
User findUser(@Param("id") int id);
@Select("select id, name from user")
List<User> findUserList();
}
5
server层
package com.li.springbootmybatis.server;
import com.li.springbootmybatis.model.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface UserServer {
int add(@Param("name") String name);
int update(@Param("name") String name, @Param("id") int id);
int delete(int id);
User findUser(@Param("id") int id);
List<User> findUserList();
}
6
serviceImpl层
package com.li.springbootmybatis.server.impl;
import com.li.springbootmybatis.dao.UserMapper;
import com.li.springbootmybatis.model.User;
import com.li.springbootmybatis.server.UserServer;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @ClassName UserServiceImpl
* @Author lihaodong
* @Date 2019/2/19 09:22
* @Mail lihaodongmail@163.com
* @Description
* @Version 1.0
**/
@Service
public class UserServiceImpl implements UserServer {
@Resource
private UserMapper userMapper;
@Override
public int add(String name) {
return userMapper.add(name);
}
@Override
public int update(String name, int id) {
return update(name, id);
}
@Override
public int delete(int id) {
return userMapper.delete(id);
}
@Override
public User findUser(int id) {
return userMapper.findUser(id);
}
@Override
public List<User> findUserList() {
return userMapper.findUserList();
}
}
7
controller层,构建restful API
package com.li.springbootmybatis.controller;
import com.li.springbootmybatis.model.User;
import com.li.springbootmybatis.server.UserServer;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @ClassName UserController
* @Author lihaodong
* @Date 2019/2/19 09:25
* @Mail lihaodongmail@163.com
* @Description
* @Version 1.0
**/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserServer userServer;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<User> getAccounts() {
return userServer.findUserList();
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User getAccountById(@PathVariable("id") int id) {
return userServer.findUser(id);
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public String updateAccount(@PathVariable("id") int id, @RequestParam(value = "name", required = true) String name) {
int t = userServer.update(name, id);
if (t == 1) {
return "success";
} else {
return "fail";
}
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public String delete(@PathVariable(value = "id") int id) {
int t = userServer.delete(id);
if (t == 1) {
return "success";
} else {
return "fail";
}
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String postAccount(String name) {
int t = userServer.add(name);
if (t == 1) {
return "success";
} else {
return "fail";
}
}
}
我这边通过paw软件测试通过 也可以使用postman测试通过。 源码下载:https://github.com/LiHaodong888/SpringBootLearn




