Spring Boot整合Mybatis完成对数据库增删改查功能

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
这里写图片描述

猜你喜欢

转载自blog.csdn.net/m0_37284598/article/details/81240843