mybaitis基礎(chǔ)---原生調(diào)用的2種方式

https://mybatis.org/mybatis-3/zh/getting-started.html ----中文網(wǎng)站

mybatis原生調(diào)用的2種方式

底層原理:mybatis本質(zhì)是對JDBC的封裝 封裝了一個會話slqsession?對數(shù)據(jù)連接? 并定義了增刪改查的方法

mybaits?有2個配置文件配置文件

mybatis-config.xml? 全局映射器

*Mapper.xml? 映射器?

1、通過 session .sleectOne(?nameSpace+method)?調(diào)用

定義sqlSeesionFactory?工廠

private SqlSeesionFactory? sqlsessionFactory;

加載配置文件

@Before

private void preper(){

//拿到配置文件

InputStream?inputStream =?Resource.getResourceAsStream("mybatis-config");

//解析文件 得到一個工廠?

sqlsessionFactory =new?SqlSeesionFactoryBuild().bulid(inputStream?);

}

//執(zhí)行sql?

public?void?Test(){

//創(chuàng)建一個數(shù)據(jù)庫連接會話

SqlSession?session = sqlsessionFactory .openSession();

//執(zhí)行select? 參數(shù)(sqlId 、params?)

Order order = session .sleectOne("com.java.mapper.OrderMapper.selectById",orderId);

}

通過調(diào)用stateMentId?實現(xiàn)

這種是mybatis?提供的原始調(diào)用方式 有什么問題?

我們可以明顯的看到?sqlId?是一個Mapper路徑+方法?萬一寫錯了呢?

所以我們有了mybatis調(diào)用的第二種方法

2、通過sqlSession.GetMapper(OrderMapper.class).selectById(id) ;??調(diào)用

通過sqlSession.GetMapper(OrderMapper.class).selectById(id);

mybatis特性總結(jié)

### mybatis的特點

1.mybatis是一種持久層框架,也屬于ORM映射。前身是ibatis。

2.相比于hibernatehibernate為全自動化,配置文件書寫之后不需要書寫sql語句,但是欠缺靈

活,很多時候需要優(yōu)化;

3.mybatis為半自動化,需要自己書寫sql語句,需要自己定義映射。增加了程序員的一些操作,

但是帶來了設(shè)計上的靈活,并且也是支持hibernate的一些特性,如延遲加載,緩存和映射等;

4.對數(shù)據(jù)庫的兼容性比hibernate差。移植性不好,但是可編寫靈活和高性能的sql語句。

### mybatis的組成

1.核心對象:SqlSessionFactory SqlSession

2.配置文件:mybatis.cfg.xml??相當于hibernate的hibernate.cfg.xml

3.多個類配置文件:user.xml相當于hibernate的映射類文件;

4.支持注解配置

### mybatis配置

1.mybatis設(shè)置url時,加上&allowMultiQueries=true,表示允許一個語句塊中添加多條SQL語句;

2.mybatis.xml的命名空間

1.在orm文件根目錄下加入設(shè)置命名空間

2.作用:更好的將sql語句塊分類,更好維護;防止sql語句重名;

3.mybatis中#和$的差別

1.#在生成sql語句時,對于字符類型參數(shù)會拼接引號

2.$在生成sql語句時,不會拼接引號,可用于order by之類的參數(shù)拼裝

### XML知識點

1.CDATA是不被解析器解析的文本。文本內(nèi)的標簽不會被當作標記。實體不會被展開。

mybatis特性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容