接上文:SpringBoot整合Mybatis【註解版】 一、項目創建 新建一個工程 選擇Spring Initializr,配置JDK版本 輸入項目名 選擇構建web項目所需的staters(啟動器) 選擇與資料庫相關的組件 分析:Spring Boot基本上將我們實際項目開發 ...
一、項目創建
- 新建一個工程
- 選擇Spring Initializr,配置JDK版本
- 輸入項目名
- 選擇構建web項目所需的staters(啟動器)
- 選擇與資料庫相關的組件
分析:Spring Boot基本上將我們實際項目開發中所遇到的所有場景都做了封裝。它將所有的功能場景都抽取出來,做成了一個個的staters(啟動器),只需要在項目的pom.xml配置文件裡面引入這些starter相關場景的所有依賴都會導入進來。需要什麼功能就導入什麼場景的啟動器,實質就是通過配置導入了與實現其功能相關的jar包,然後直接進行項開發即可。
- 選擇保存地址後點擊Finish
- 註意:idea必須在聯網環境下才會自動構建項目
- 在項目中使用druid作為數據源,不會的請點擊SpringBoot整合Druid數據源
- 在bean包下新建實體類對象Employee(員工)
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); } }附錄:
- @RestController:等價於同時使用@ResponseBody和@Controller
- @GetMapping("/emp/{id}"):等價於@RequestMapping(value = "/dept/{id}",method = RequestMethod.GET)
- /emp/{id}:controller中的url採用restful形式,不會的請自行百度
- @PathVariable("id"):將url中相對應參數名的值綁定到指定的形參上
- 最終項目結構目錄如下:
二、項目測試
- 啟動項目,在url地址欄輸入插入操作:http://localhost:8080/emp?lastName=AAA&[email protected]&gender=1
- 觀察資料庫,看是否插入成功
- 再在url地址欄輸入查詢操作:http://localhost:8080/emp/1
- 至此,springboot整合mybatis成功!如果你失敗了,繼續調試吧騷年!剛搬來博客園,請多多關照手動滑稽--
( ̄︶ ̄)↗[GO!]