SpringBoot整合Mybatis【非注解版】


接上文:SpringBoot整合Mybatis【注解版】


一、項目創建

  • 新建一個工程


  • 選擇Spring Initializr,配置JDK版本

  • 輸入項目名

  •  選擇構建web項目所需的staters(啟動器)


  • 選擇與數據庫相關的組件

分析:Spring Boot基本上將我們實際項目開發中所遇到的所有場景都做了封裝。它將所有的功能場景都抽取出來,做成了一個個的staters(啟動器),只需要在項目的pom.xml配置文件里面引入這些starter相關場景的所有依賴都會導入進來。需要什么功能就導入什么場景的啟動器,實質就是通過配置導入了與實現其功能相關的jar包,然后直接進行項開發即可。 


  • 選擇保存地址后點擊Finish


  • 注意:idea必須在聯網環境下才會自動構建項目


package com.cyn.bean;

/**
 * @author:cyn
 * @create:2018/12/30 16:14
 * @description:員工實體類
 */
public class Employee {
    
    private Integer id;
    private String lastName;
    private Integer gender;
    private String email;
    private Integer dId;
    
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getdId() {
        return dId;
    }

    public void setdId(Integer dId) {
        this.dId = dId;
    }

}


  • 新建數據庫mybatis,在數據庫中新建與實體類對象相關聯的數據庫表 employee
    DROP TABLE IF EXISTS `employee`;
    CREATE TABLE `employee` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `lastName` varchar(255) DEFAULT NULL,
      `email` varchar(255) DEFAULT NULL,
      `gender` int(2) DEFAULT NULL,
      `d_id` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


  • 在mapper包下新建與實體類所關聯的mapper接口【非注解版】:EmployeeMapper 
package com.cyn.mapper;

import com.cyn.bean.Employee;

/**
 * @author:崔雅楠
 * @create:2018/12/30 17:32
 * @description:員工管理
 */
//在這里使用@Mapper注解或在主類中使用@MapperScan注解將該接口掃描裝配到容器中
@Mapper
public interface EmployeeMapper {

    //查詢
    public Employee getEmpById(Integer id);
    //插入
    public void insertEmp(Employee employee);
}


  • 在classpath:mybatis/下新建mybatis的主配置文件:mybatis-config.xml 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!--開啟駝峰命名規則-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>
  • 在classpath:mybatis/mapper/下新建mapper接口相對應的映射文件例如:EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--切記:要將此映射文件與相對應的mapper接口通過namespace屬性進行關聯-->
<mapper namespace="com.cyn.mapper.EmployeeMapper">
    <!--    public Employee getEmpById(Integer id);

     public void insertEmp(Employee employee);-->
    <select id="getEmpById" resultType="com.cyn.bean.Employee">
        SELECT * FROM employee WHERE id=#{id}
    </select>

    <insert id="insertEmp">
        INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dId})
    </insert>
</mapper>

 


  •  在application.yml(application.properties)項目配置文件中指定mybatis的主配置文件和mapper映射文件的路徑,告知springboot,完整application.yml配置文件如下:
    spring:
      datasource:
        username: root
        password: 123456
        url: jdbc:mysql://localhost:3306/mybatis
        driver-class-name: com.mysql.jdbc.Driver
        #修改springboot默認數據源為Druid
        type: com.alibaba.druid.pool.DruidDataSourceC3P0Adapter
        #數據源其他配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        #配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    #配置mybatis的主配置文件和mapper映射文件的路徑
    mybatis:
      config-location: classpath:mybatis/mybatis-config.xml
      mapper-locations: classpath:mybatis/mapper/*.xml

     


  • 在controller包下新建controller控制類:EmpController
package com.cyn.controller;

import com.cyn.bean.Employee;
import com.cyn.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author:cyn
 * @create:2019/1/1 20:15
 * @description:員工管理
 */
@RestController
public class EmpController {
    
    @Autowired
    EmployeeMapper employeeMapper;

    //查詢
    @GetMapping("emp/{id}")
    public Employee getEmpById(@PathVariable("id") Integer id){

        return employeeMapper.getEmpById(id);
    }
    //添加
    @GetMapping("emp")
    public void insertEmp(Employee employee){
        employeeMapper.insertEmp(employee);
    }
}

附錄:

  1. @RestController:等價於同時使用@ResponseBody和@Controller 
  2. @GetMapping("/emp/{id}"):等價於@RequestMapping(value = "/dept/{id}",method = RequestMethod.GET)
  3.  /emp/{id}:controller中的url采用restful形式,不會的請自行百度
  4. @PathVariable("id"):將url中相對應參數名的值綁定到指定的形參上

  • 最終項目結構目錄如下:

二、項目測試

  • 至此,springboot整合mybatis成功!如果你失敗了,繼續調試吧騷年!剛搬來博客園,請多多關照手動滑稽--

( ̄︶ ̄)↗[GO!]  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM