Hibernate 與 Mybatis 如何共存?打破你的認(rèn)知!

Java技術(shù)棧
www.javastack.cn
關(guān)注閱讀更多優(yōu)質(zhì)文章
很長(zhǎng)一段時(shí)間,網(wǎng)上有很多關(guān)于Hibernate與Mybatis孰優(yōu)孰劣的爭(zhēng)論,兩個(gè)陣營(yíng)的人誰也不能說服誰,每個(gè)人的理由都很有道理。
今天,我分享的主題是:在一個(gè)項(xiàng)目中同時(shí)使用Hibernate和Mybatis兩個(gè)ORM框架。

一、準(zhǔn)備開發(fā)環(huán)境
如果你想成功運(yùn)行本文中的源代碼,需要滿足一下的幾個(gè)條件:
1、JDK : JDK 1.8.x及以上版本
2、Maven : Maven 3.x或更高版本
3、Git:版本控制工具,選擇一個(gè)你喜歡的
4、IDE : 選擇你比較喜歡的一個(gè)代碼編輯器,如STS、IntelliJ IDEA。筆者使用的是IntelliJ IDEA
5、Databases : 選擇一個(gè)你熟練使用的數(shù)據(jù)庫系統(tǒng)。筆者在本文中使用的是MySQL 5.1.x版本的數(shù)據(jù)庫系統(tǒng)
二、搭建項(xiàng)目
2-1、引入依賴

2-2、定義實(shí)體類-User.java

說明:
在本次演示的項(xiàng)目中,使用到了Lombok插件,它可以讓開發(fā)者減少模板代碼的書寫,提高開發(fā)速度。@Data注解可以自動(dòng)生成類屬性的getter、setter和toString方法。@NoArgsConstructor會(huì)自動(dòng)為類生成無參構(gòu)造函數(shù),@AllArgsConstructor則會(huì)生成帶全部屬性的構(gòu)造函數(shù)。
2-3、定義數(shù)據(jù)持久化接口

說明:因?yàn)镴PA只負(fù)責(zé)寫操作,所以直接繼承并使用JpaRepository提供的API即可,不需要額外的定義其他的接口方法。

說明:
此接口需要注意的地方是@Component和@Mapper注解,@Component注解標(biāo)注此接口后,Spring會(huì)自動(dòng)掃描并配置此類;@Mapper注解是把這個(gè)mapper的DAO交由Spring進(jìn)行管理。

2-4、定義UserService


說明:
@Transactional注解用于設(shè)置每個(gè)方法的事務(wù)控制方式。@Service注解聲明該類是一個(gè)服務(wù)提供類,且設(shè)置了該類被Spring初始化時(shí)Bean對(duì)象的名稱為“userService”。
2-5、定義控制器

說明:
在本次教程中,為了編碼IDEA報(bào)警告,所有的依賴注入都采用構(gòu)造函數(shù)的方式注入相關(guān)的依賴。
三、配置Hibernate和Mybatis

四、測(cè)試
{
"username":"譚朝紅",
"alias":"ramostear",
"age":28
}


{
"id": 3,
"username": "譚朝紅",
"alias": "ramostear",
"age": 28
}
五、總結(jié)
版權(quán)申明:本作品系作者譚朝紅原創(chuàng) ,?采用《署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際》許可協(xié)議
來源:segmentfault.com/a/1190000019476544
點(diǎn)擊「閱讀原文」獲取面試題大全~
