Spring Boot整合Mybatis完成对数据库增删改查功能
@(我的第一个笔记本)[JackMa, 2018-07-23]
前谈:
开发工具:Intellij IDEA
开发环境:Java version1.8
所用技术:springboot+mybatis+mysql
测试工具:postman
一. 创建项目
File–new –project–Spring Initializr
二. 编写代码
1.数据库
创建数据库test,员工表User
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(100) character set utf8 default NULL,
`gender` varchar(10) character set latin1 default NULL,
`job` varchar(200) character set latin1 default NULL,
`birthday` date default NULL,
`number` varchar(255) default NULL,
`password` varchar(255) default NULL,
`image` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
SET FOREIGN_KEY_CHECKS=1;
2.entity层实体类
在src/main/java目录下添加entity层的实体类User:
package com.example.demo.entity;
public class User {
private int id;
private String name;
private String password;
private String number;
private String birthday;
private String job;
private String gender;
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;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password =password;}
public String getNumber() { return number;}
public void setNumber(String number) {this.number = number;}
public String getBirthday() {return birthday;}
public void setBirthday(String birthday) {this.birthday = birthday; }
public String getJob() {return job; }
public void setJob(String job) {this.job = job; }
public String getGender() { return gender;}
public void setGender(String gender) {this.gender = gender; }
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ",gender="+gender+", job="+job+",password=" + password + "," +
"birthday="+birthday+", number=" + number + "password="+password+"]";
}
}
3.mapper层接口
在src/main/java目录下添加mapper层的UserMapper类:
package com.example.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.example.demo.entity.User;
@Mapper
public interface UserMapper {
List<User> findUserByName(String name);
public List<User> ListUser();
public int insertUser(User user);
public int delete(int id);
public int Update(User user);
}
4.service层实现类
在src/main/java目录下添加service层的实现类Userservice:
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findByName(String name) {
return userMapper.findUserByName(name);
}
public User insertUser(User user) { userMapper.insertUser(user);return user;}
public List<User> ListUser(){
return userMapper.ListUser();
}
public int Update(User user){
return userMapper.Update(user);
}
public int delete(int id){
return userMapper.delete(id);
}
}
5.controller层访问类
在src/main/java目录下添加controller层的实现类CRUD:
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(value = "/CRUD", method = { RequestMethod.GET, RequestMethod.POST })
public class CRUD {
@RequestMapping("/ListUser")
@ResponseBody
public List<User> ListUser(){
return userservice.ListUser();
}
//对数据库进行查找操作
@RequestMapping("/ListUserByname")
@ResponseBody
public List<User> ListUserByname(String name){
return userservice.findByName(name);
}
@Autowired
private UserService userservice;
//对数据库进行的删除操作
@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String delete(int id) {
int result = userservice.delete(id);
if (result >= 1) {
return "删除成功";
} else {
return "删除失败";
}
}
//对数据进行修改的操作
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(User user) {
int result = userservice.Update(user);
if (result >= 1) {
return "修改成功";
} else {
return "修改失败";
}
}
//对数据库进行增加字段操作
@RequestMapping(value = "/insert", method = RequestMethod.POST)
public User insert(User user)
{
return userservice.insertUser(user);
}
}
4.编写映射文件UserMapper
在src/main/resources下写UserMapper的映射文件xml.
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD com.example.Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="result" type="com.example.demo.entity.User">
<result property="name" column="name" />
<result property="password" column="password"/>
<result property="number" column="number"/>
</resultMap>
<select id="ListUser" resultMap="result">
SELECT * FROM user
</select>
<select id="findUserByName" resultMap="result">
SELECT * FROM user where name=#{name}
</select>
<insert id="insertUser" parameterType="com.example.demo.entity.User"
keyProperty="id" useGeneratedKeys="true">
INSERT INTO user(id,name,password,number)
VALUES (#{id},#{name, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR},#{number} )
</insert>
<delete id="delete" parameterType="int">
delete from user where id=#{id}
</delete>
<update id="Update" parameterType="com.example.demo.entity.User">
update user set user.name=#{name},user.password=#{password},user.number=#{number} where user.id=#{id}
</update>
</mapper>
5.编写配置文件application.properties
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = 123
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20 //指定连接池中最大的活跃连接数
spring.datasource.max-idle=8 //指定连接池中连接的最大的空闲连接数量
spring.datasource.min-idle=8 //指定必须保持连接的最小值
spring.datasource.initial-size=10 //指定启动连接池时,初始建立的连接数量
mybatis.mapper-locations= classpath:mapper/*.xml
三. 测试验证
利用postman这个工具进行测试:
1.显示数据
测试查询所有的信息:http://localhost:8080/CRUD/ListUser
2.查询数据
测试根据name查询数据:http://localhost:8080/CRUD/ListUserByname?name=jack
3.删除数据
测试根据Id删除数据:http://localhost:8080/CRUD/delete?id=1231342
4.插入数据
测试根据插入数据:http://localhost:8080/CRUD/insert?name=james&password=3456&number=1203