一、环境要求
- 开发工具:Intellij IDEA 2017.3.3
- JDK:1.8.0_151
- maven:apache-maven-3.5.2
二、整合Mybatis
SpringBoot整合Mybatis,并实现简单的增删改查(CRUD)。
1、创建demo工程
Create New Project
New Project-Spring Initializr
Next 填写工程信息
Next添加依赖关系,WEB依赖及SQL、Mybatis
IDEA创建工程后目录结构如下
查看IDEA默认添加的POM依赖关系配置。
web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
MySQL依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
Mybatis依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
2、数据准备
Mysql中新建名称为test的数据库,并新建user表。
CREATE DATABASE test;
CREATE TABLE `user` (
`id` INT (11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR (30),
`age` INT (10),
`address` VARCHAR (150)
)ENGINE=INNODB AUTO_INCREMENT=1000 DEFAULT CHARSET=gbk;
user表机构如下
3、配置数据源
修改properties文件为yml文件(yml结构更清晰直观),添加数据源配置。
4、新建Userying'she对象
New Package entity
package com.springboot.demo.entity;
public class User {
private Integer id;
private String name;
private Integer age;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
5、新建UserMapper对象
新建mapper文件目录,并新增UserMapper类,在类中新增CRUD方法。
package com.springboot.demo.mapper;
import com.springboot.demo.entity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface UserMapper {
//新增
@Insert("insert into user (name,age,address) values (#{name},#{age},#{address})")
public int save(User user);
//更新
@Update("update user set name = #{name},age = #{age},address = #{address} where id = #{id}")
public void update(User user);
//根据ID查询
@Select("select * from user where id = #{id}")
public User selectUserById(@Param("id") Integer id);
//查询全部记录
@Select("select * from user")
public List<User> findAll();
//删除记录-删除后返回列表
@Delete("delete from user where id = #{id}")
public void delete(@Param("id") Integer id);
}
6、测试
分别创建controller目录及service目录,添加业务逻辑测试CRUD是否可行。
service
package com.springboot.demo.service;
import com.springboot.demo.entity.User;
import java.util.List;
public interface UserService {
//新增
public List<User> save(User user);
//更新
public User update(User user);
//查询
public User selectUserById(Integer id);
public List<User> findAll();
//删除
public List<User> delete(Integer id);
}
package com.springboot.demo.service.impl;
import com.springboot.demo.entity.User;
import com.springboot.demo.mapper.UserMapper;
import com.springboot.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> save(User user) {
//新增一条记录
userMapper.save(user);
//返回全部记录的列表
return userMapper.findAll();
}
@Override
public User update(User user) {
//更新记录
userMapper.update(user);
return userMapper.selectUserById(user.getId());
}
@Override
public User selectUserById(Integer id) {
return userMapper.selectUserById(id);
}
@Override
public List<User> findAll() {
return userMapper.findAll();
}
@Override
public List<User> delete(Integer id) {
userMapper.delete(id);
return userMapper.findAll();
}
}
controller
package com.springboot.demo.controller;
import com.springboot.demo.entity.User;
import com.springboot.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 新增记录
* */
@RequestMapping(value = "/save")
public List<User> saveUser(String name,Integer age,String address){
User user = new User();
user.setName(name);
user.setAge(age);
user.setAddress(address);
return userService.save(user);
}
//查询
@RequestMapping(value = "/findbyid")
public User findUserById(Integer id){
return userService.selectUserById(id);
}
@RequestMapping(value = "findall")
public List<User> findAll(){
return userService.findAll();
}
//更新
@RequestMapping(value = "/update")
public User updateUser(Integer id,String name,Integer age,String address){
User user = new User();
user.setId(id);
user.setName(name);
user.setAge(age);
user.setAddress(address);
return userService.update(user);
}
//删除
@RequestMapping(value = "/delete")
public List<User> deleteUser(Integer id){
return userService.delete(id);
}
}
启动工程
新增访问地址:http://localhost:8080/user/save?name=zhouxingchi&age=50&address=xianggang
更新请求地址:http://localhost:8080/user/update?id=6&name=周星驰&age=51&address=中国香港
查询请求地址:http://localhost:8080/user/findbyid?id=7
http://localhost:8080/user/findall
删除请求地址:http://localhost:8080/user/delete?id=7