SpringBoot邊學邊用(二)SpringBoot 整合 Mybatis(xml檔案形式)
在SpringBoot整合MyBatis時,存在兩種常用方式:基於xml檔案形式與註解形式。xml的可維護性高,在實際開發中表結構往往很複雜,所以在實際開發中建議大家用xml
建立資料表
CREATE TABLE `customer` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `job` varchar(255) NOT NULL, `phone` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- ---------------------------- -- Records of customer -- ---------------------------- INSERT INTO `customer` VALUES ('1', '小明', '醫生','13567344567'); INSERT INTO `customer` VALUES ('2', '小紅', '教師','18756576778');
新增專案依賴
我們選擇使用MyBatis運算元據庫,所以需要新增一些依賴,在專案pom.xml檔案<dependencies></dependencies>標籤內新增如下程式碼
<!--mybatis-spring介面卡--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!--mysql驅動包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
建立專案目錄結構
在專案啟動類同級包下新建所需包,並在resources中建立Mapper資料夾
建立實現方法
Customer.java
在com.syg.demo.po下建立資料表Customer對應的實體
package com.syg.demo.po; public class Customer { private Integer id; private String username; private String job; private String phone; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
CustomerDao.java
在com.syg.demo.dao下建立mapper介面,通過@Mapper註解使SpringBoot自動建立customerDao物件加入到容器中
package com.syg.demo.dao; import com.syg.demo.po.Customer; import org.apache.ibatis.annotations.Mapper; @Mapper public interface CustomerDao { public Customer findCustomerById(Integer id); }
CustomerMapper.xml
在resources中的Mapper資料夾下,建立mapper介面對應的對映檔案CustomerMapper.xml,實現對資料庫的具體操作,其中<mapper>標籤中的namespace繫結上邊建立的CustomerDao
<?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="com.syg.demo.dao.CustomerDao"> <select id="findCustomerById" parameterType="Integer" resultType="Customer"> select * from customer where id = #{id} </select> </mapper>
CustomerService
在com.syg.demo.service下建立Service層介面方法
package com.syg.demo.service; import com.syg.demo.po.Customer; public interface CustomerService { public Customer findCustomerById(Integer id); }
CustomerServiceImpl
在com.syg.demo.service.impl下建立CustomerServiceImpl具體實現Service介面方法,使用@Service表示為Service層,同時使SpringBoot自動建立customerService物件加入到容器中,在方法中使用@Autowired註解呼叫容器中的customerDao物件,並呼叫其查詢方法
package com.syg.demo.service.impl; import com.syg.demo.dao.CustomerDao; import com.syg.demo.po.Customer; import com.syg.demo.service.CustomerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class CustomerServiceImpl implements CustomerService { @Autowired private CustomerDao customerDao; //查詢客戶 public Customer findCustomerById(Integer id){ return this.customerDao.findCustomerById(id); } }
CustomerController
在com.syg.demo.controller下建立CustomerController,使用@RestController註解表示為Controller層,在方法中使用@Autowired註解呼叫容器中的customerService物件,並呼叫其實現的查詢方法,通過@GetMapping定義GET方式訪問的路由地址,方法定義的引數id由url傳遞
package com.syg.demo.controller; import com.syg.demo.po.Customer; import com.syg.demo.service.CustomerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CustomerController { @Autowired private CustomerService customerService; @GetMapping("/findCustomerById") public Customer findCustomerById(Integer id){ return customerService.findCustomerById(id); } }
編寫相關配置
開啟resources目錄下application.properties檔案,編寫如下配置:
#修改伺服器埠 server.port=8081 #指定資料庫驅動 spring.datasource.driver-class-name=com.mysql.jdbc.Driver #資料庫jdbc連線url地址 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC #資料庫賬號 spring.datasource.username=root spring.datasource.password=123456 #mybatis相關 #實體類包路徑 mybatis.type-aliases-package=com.syg.demo.po #掃描mapper對映檔案 mybatis.mapper-locations=classpath:Mapper/*.xml
訪問測試
重新執行專案
開啟路由器,輸入url地址:http://localhost:8081/findCustomerById?id=1
可以成功訪問到Id為1的資料
快速構建xml檔案
通過本節內容,許多讀者可能會有疑惑,隨著業務邏輯的增加,xml檔案的編寫會越來越複雜,如果都要我們手動編寫,要花費多少時間啊?
這裡可以用mybatis generator自動生成就會變得很方便,由於篇幅內容有限,將在專欄後續章節中介紹
閱讀更多技術文章,及時獲取內容更新,請掃碼關注微信公眾號-大資料School!
歡迎評論區留下你的精彩評論~ 覺得文章不錯可以分享到朋友圈讓更多的小夥伴看到哦~ 客官!在看一下唄
相關文章
- SpringBoot 實戰 (十三) | 整合 MyBatis (XML 版)Spring BootMyBatisXML
- springboot專案整合mybatisSpring BootMyBatis
- mybatis-plus整合springboot自動生成檔案MyBatisSpring Boot
- SpringBoot學習之整合MybatisSpring BootMyBatis
- springBoot 整合 mybatisSpring BootMyBatis
- Springboot整合MybatisSpring BootMyBatis
- SpringBoot資料訪問之整合Mybatis配置檔案Spring BootMyBatis
- SpringBoot快速整合Mybatis(去XML化+註解進階)Spring BootMyBatisXML
- springboot+mybatis整合Spring BootMyBatis
- SpringBoot | 3.2 整合MyBatisSpring BootMyBatis
- Springboot+mybatis 整合Spring BootMyBatis
- SpringBoot + Mybatis + Redis 整合入門專案Spring BootMyBatisRedis
- SpringBoot2.0應用(五):SpringBoot2.0整合MyBatisSpring BootMyBatis
- springBoot 整合 mybatis+OracleSpring BootMyBatisOracle
- SpringBoot整合Mybatis-PlusSpring BootMyBatis
- springboot-整合mybatis,securitySpring BootMyBatis
- SpringBoot整合系列–整合MyBatis-plusSpring BootMyBatis
- 企業 SpringBoot 教程(六)springboot整合mybatisSpring BootMyBatis
- SpringBoot整合Mybatis-Plus(SpringBoot3)Spring BootMyBatis
- 【springboot】學習4:整合JDBC、整合druid、整合mybatis、整合 SpringSecuritySpring BootJDBCUIMyBatisGse
- SpringBoot-16-之整合MyBatis-xml篇+單元測試Spring BootMyBatisXML
- 2.springboot2.x整合mysql和mybatis(以xml的方式)Spring BootMySqlMyBatisXML
- SpringBoot資料訪問(一) SpringBoot整合MybatisSpring BootMyBatis
- SpringBoot 實戰 (九) | 整合 MybatisSpring BootMyBatis
- SpringBoot 2.1.1.RELEASE 整合MyBatisSpring BootMyBatis
- springboot整合mybatis及其反向工程Spring BootMyBatis
- SpringBoot | 3.3 整合MyBatis-PlusSpring BootMyBatis
- SpringBoot整合Mybatis+DruidSpring BootMyBatisUI
- SpringBoot--整合Mybatis和RedisSpring BootMyBatisRedis
- MyBatis 與 SpringBoot 整合:註解和xml兩種使用方式介紹MyBatisSpring BootXML
- SpringBoot2.0應用(二):SpringBoot2.0整合ActiveMQSpring BootMQ
- Springboot整合MongoDB儲存檔案、讀取檔案Spring BootMongoDB
- SpringBoot第五篇:整合MybatisSpring BootMyBatis
- SpringBoot、MyBatis、Shiro、Thymeleaf整合思路Spring BootMyBatis
- Mybatis 的使用(整合Spring、SpringBoot)MyBatisSpring Boot
- Springboot 整合 Mybatis 的完整 Web 案例Spring BootMyBatisWeb
- SpringBoot整合Mybatis超詳細流程Spring BootMyBatis
- springboot整合mybatis自動生成框架Spring BootMyBatis框架