1. 程式人生 > >Spring Boot2.0之整合Mybatis

Spring Boot2.0之整合Mybatis

 

 

我在寫這個教程時候,踩了個坑,一下子折騰到了凌晨兩點半。

坑: Spring Boot對於Mysql8.1的驅動支援不好啊

我本地安裝的是Mysql8.1版本,在開發時候。pom提示不需要輸入驅動版本(因為Spring Boot會自動匹配),毛啊。根本就沒有匹配成功。然後我嘗試了各種辦法。沒有解決。

最後安裝的mysql5.6版本輕鬆搞定

廢話不多說了,趕緊寫完,睡覺覺。

1、建立maven工程,pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jdbcTemplate</groupId> <artifactId>com.toov5.jdbc</artifactId> <version>0.0.1-SNAPSHOT</version> <parent>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.2.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <dependencies
> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope> </dependency> </dependencies> </project>

2、application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3、User類程式碼:

  

package com.toov5.entity;

import lombok.Data;

@Data  
public class User {
  private Integer age;
  private String name;
  private  Integer id;
    
}

用了lombok外掛

4、Mapper程式碼:

package com.toov5.mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.toov5.entity.User;


public interface UserMapper {
    
        @Select("SELECT * FROM USERS WHERE NAME = #{name}")
        User findByName(@Param("name") String name);
        @Insert("INSERT INTO USERS(NAME, AGE) VALUES(#{name}, #{age})")
        int insert(@Param("name") String name, @Param("age") Integer age);

}

這裡沒有用到 @Mapper註解哦 因為啟動類裡面有個好東西代替了!請接著往下讀

5、service程式碼

package com.toov5.service;



import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.toov5.mapper.UserMapper;

import lombok.extern.slf4j.Slf4j;

@Service
@Slf4j
public class UserService {
  @Autowired
  private UserMapper userMapper;
  
  public int insertUser(String name, Integer age){
     int result = userMapper.insert(name, age);
      log.info("####################",result);
      return result;
  }
}

6、Controller程式碼:

package com.toov5.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.toov5.service.UserService;

@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/insertUser")  
  public Integer insertUser(String name, Integer age){
     return userService.insertUser(name, age);
     
     }
     
}

7、啟動類

package com.toov5.app;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan(basePackages="com.toov5")
@MapperScan(basePackages="com.toov5.mapper") 
@SpringBootApplication
public class app {
  public static void main(String[] args){
      SpringApplication.run(app.class, args);
  }
}

這裡重點說下:

這個註解,省去了mapper層類的@Mapper註解

整個專案目錄結構:

訪問:

 

 檢視資料庫:

都成功了~~ 是不是很好玩呀