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);
}

這種是mybatis?提供的原始調(diào)用方式 有什么問題?
我們可以明顯的看到?sqlId?是一個Mapper路徑+方法?萬一寫錯了呢?
所以我們有了mybatis調(diào)用的第二種方法
2、通過sqlSession.GetMapper(OrderMapper.class).selectById(id) ;??調(diào)用

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)的標簽不會被當作標記。實體不會被展開。
