這篇文章將為大家詳細(xì)講解有關(guān)怎么在Spring Boot中使用MyBatis,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)環(huán)翠,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108orm框架的本質(zhì)是簡化編程中操作數(shù)據(jù)庫的編碼,發(fā)展到現(xiàn)在基本上就剩兩家了,一個(gè)是宣稱可以不用寫一句SQL的hibernate,一個(gè)是可以靈活調(diào)試動態(tài)sql的mybatis,兩者各有特點(diǎn),在企業(yè)級系統(tǒng)開發(fā)中可以根據(jù)需求靈活使用。發(fā)現(xiàn)一個(gè)有趣的現(xiàn)象:傳統(tǒng)企業(yè)大都喜歡使用hibernate,互聯(lián)網(wǎng)行業(yè)通常使用mybatis。
hibernate特點(diǎn)就是所有的sql都用Java代碼來生成,不用跳出程序去寫(看)sql,有著編程的完整性,發(fā)展到最頂端就是spring data jpa這種模式了,基本上根據(jù)方法名就可以生成對應(yīng)的sql了。
mybatis初期使用比較麻煩,需要各種配置文件、實(shí)體類、dao層映射關(guān)聯(lián)、還有一大推其它配置。當(dāng)然mybatis也發(fā)現(xiàn)了這種弊端,初期開發(fā)了generator可以根據(jù)表結(jié)果自動生產(chǎn)實(shí)體類、配置文件和dao層代碼,可以減輕一部分開發(fā)量;后期也進(jìn)行了大量的優(yōu)化可以使用注解了,自動管理dao層和配置文件等,發(fā)展到最頂端就是今天要講的這種模式了,mybatis-spring-boot-starter就是springboot+mybatis可以完全注解不用配置文件,也可以簡單配置輕松上手。
mybatis-spring-boot-starter
官方說明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot
其實(shí)就是myBatis看spring boot這么火熱也開發(fā)出一套解決方案來湊湊熱鬧,但這一湊確實(shí)解決了很多問題,使用起來確實(shí)順暢了許多。mybatis-spring-boot-starter主要有兩種解決方案,一種是使用注解解決一切問題,一種是簡化后的老傳統(tǒng)。
當(dāng)然任何模式都需要首先引入mybatis-spring-boot-starter的pom文件,現(xiàn)在最新版本是1.1.1
org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1
無配置文件注解版
就是一切使用注解搞定。
實(shí)在是不喜歡把sql用注解的形式寫在java類中的形式,所以就忽略吧...
下面討論一下xml版本
1 添加相關(guān)maven依賴
4.0.0 com.example spring-boot-mybatis 0.0.1-SNAPSHOT jar spring-boot-mybatis Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.5.3.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1 org.springframework.boot spring-boot-devtools true org.springframework.boot spring-boot-maven-plugin true
2.在applications.properties配置文件中添加MySQL的配置
spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 spring.datasource.username = root spring.datasource.password = root spring.datasource.max-active=20 spring.datasource.max-idle=8 spring.datasource.min-idle=8 spring.datasource.initial-size=10
Spring boot會自動加載spring.datasource.*相關(guān)配置,數(shù)據(jù)源就會自動注入到sqlSessionFactory中,sqlSessionFactory會自動注入到Mapper中,對了你一切都不用管了,直接拿起來使用就行了。
3.編寫測試實(shí)體類DemoInfo
package com.winner.po; public class DemoInfo { private Integer id; private String name; private String password; 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 String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
4.編寫Mapper接口
package com.winner.mapper; import com.winner.po.DemoInfo; public interface DemoInfoMapper { DemoInfo queryById(Integer id); }
在啟動類中使用@MapperScan注解掃描mapper接口
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.winner.mapper") public class SpringBootMybatisApplication { public static void main(String[] args) { SpringApplication.run(SpringBootMybatisApplication.class, args); } }
5.編寫配置文件
DemoInfoMapper.xml
id, name, password
mybatis-config.xml
注意,需要在application.properties新增以下配置
mybatis.config-locations=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
指定了mybatis基礎(chǔ)配置文件和實(shí)體類映射文件的地址
6.編寫DemoInfoService
@Service public class DemoInfoService { @Resource private DemoInfoMapper demoInfoMapper; DemoInfo queryById(Integer id){ DemoInfo demoInfo = demoInfoMapper.queryById(id); return demoInfo; } }
7.編寫DemoInfoController
@RestController public class DemoInfoController { @Resource private DemoInfoService demoInfoService; @RequestMapping("/{id}") DemoInfo queryById(@PathVariable Integer id){ DemoInfo demoInfo = demoInfoService.queryById(id); return demoInfo; } }
運(yùn)行訪問:http://127.0.0.1:8080/1,運(yùn)行結(jié)果:
{"id":1,"name":"zhangsan","password":"123456"}
關(guān)于怎么在Spring Boot中使用MyBatis就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。