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



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