springBoot入门总结(五)整合Mybatis(注解方式)

一、环境要求

  • 开发工具: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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章