javascript
Spring集成Mybatis plus
Springboot中流行的持久層框架是Hibernate和Mybatis
前者已經(jīng)成為Spring Data的規(guī)范,以極簡(jiǎn)和全自動(dòng)的對(duì)象映射著稱,后者是一個(gè)半自動(dòng)化的ORM框架,SQL獨(dú)立存放在XML文件中,提高自由度的同時(shí)也方便DBA進(jìn)行校對(duì)和后續(xù)SQL優(yōu)化
由于Mybatis plus完全基于Mybatis,且吸收了一部分HIbernate的優(yōu)點(diǎn),提供集成的CRUD,基本上現(xiàn)在開發(fā)中都使用Mybatis Plus替代原生Mybatis框架
敲黑板: MybatisPlus 不能和 Mybatis同時(shí)使用
使用流程(三步走)
- 實(shí)體entity
- Dao層接口Mapper
- Xml文件中的Sql語(yǔ)句
第一步 添加Maven依賴
<dependency><groupId>com.baomidou</groupId><artifactId>mybatisplus-spring-boot-starter</artifactId> </dependency> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId> </dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> </dependency> 復(fù)制代碼第二步 在application.yml中配置Mybatis Plus
使用properties配置文件的可以在www.toyaml.com/index.html進(jìn)行yml文件的轉(zhuǎn)換
重點(diǎn)!!!
第一行的xml文件掃描,此處的xml文件存放在resource下的mapper路徑下(我的路徑是resource/mapper/xx模塊/xxx.xml)
第二行的實(shí)體掃描!!!要根據(jù)自己的entity目錄進(jìn)行配置 自己根據(jù)自己的實(shí)體類路徑修改typeAliasesPackage,或者使用我的這種模塊化工程路徑(工程根目錄/modules/xx模塊/entity/xxx.class)
沒(méi)添加mysq數(shù)據(jù)源的再添加如下配置
spring: datasource: continue-on-error: false driver-class-name: com.mysql.jdbc.Driver username: root ##根據(jù)自己MySQL的用戶名修改 url: jdbc:mysql://127.0.0.1:3306/renren_test ##根據(jù)自己MySQL的ip和端口修改 password: root ##根據(jù)自己MySQL的密碼修改復(fù)制代碼第三步 進(jìn)入正題
之前的步驟都是Mybatis的配置和管理,以下才是真正的業(yè)務(wù)代碼
之前用過(guò)JPA的可能直接運(yùn)行發(fā)現(xiàn)并沒(méi)有在數(shù)據(jù)庫(kù)中建表,因?yàn)镸ybatis不支持自動(dòng)根據(jù)實(shí)體類創(chuàng)建表,所以需要自己建表,如果要引入這個(gè)功能可以引入JPA,只利用JPA的自動(dòng)建表功能,本文為了簡(jiǎn)單明了不涉及,可以查看我另一篇文章Mybatis加入JPA的自動(dòng)建表功能
Mybatis框架的文件引入方式:
- entity通過(guò)第二步的配置typeAliasesPackage進(jìn)行查找,也可以通過(guò)注解方式查找
- Mybatis的xml與mapper對(duì)應(yīng),mapper提供java層的接口,xml保存相對(duì)應(yīng)的sql語(yǔ)句
- xml在第二步的配置中由Mybatis發(fā)現(xiàn),相對(duì)應(yīng)的Mapper文件在xml中通過(guò)namespace的方式關(guān)聯(lián)
最后一步 測(cè)試
在Controller文件中實(shí)現(xiàn)Restful接口 SwordController.class
public SwordController { // 自動(dòng)注入mapperprivate SwordMapper swordMapper;("sword")public sword(UserEntity userEntity) {Sword sword1 = new Sword();sword1.setName("這是一把劍");Sword sword = swordMapper.selectSword("1");return sword;} } 復(fù)制代碼訪問(wèn)127.0.0.1:8080/demo/sword
大功告成!
后記
在其他的博客中大家可能看到,有很多利用sqlsession或者SqlSessionFactoryBean來(lái)加載Mybatis配置文件,我這里又沒(méi)有sqlsession,經(jīng)常有人會(huì)被搞得一頭霧水,這里解釋一下,在原生的mybatis中,sqlsession可以由SqlSessionFactory創(chuàng)建;而在mybatis-spring中則需要通過(guò)SqlSessionFactoryBean來(lái)創(chuàng)建,并傳入datasource。 像這樣
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation"> <value>classpath:mybatis/mapper.xml</value> </property> <property name="dataSource" ref="dataSource" /> </bean> 復(fù)制代碼但是在Springboot中,mybatis-spring-boot支持自動(dòng)創(chuàng)建并注冊(cè)SqlSessionFactoryBean,所以sqlsession的配置并不需要。感謝Springboot.
總結(jié)
以上是生活随笔為你收集整理的Spring集成Mybatis plus的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql逻辑备份之mysqldump
- 下一篇: WPS是否可以进行论文查重? WPS O