逐步分析總結(jié)了 mybatis core瑟慈、mybatis-generator 薪寓,這次看看半醉,如果把自己推薦給java界的霸主spring :)
-
先看一下spring的官宣ioc
image.png
不管你是啥谚中,把控制權(quán)交給我饰恕,我大spring給您ioc賦能 哈哈
- 再看看 mybatis的基本用法
無論是代碼牲览、xml墓陈、注解 都需要完成這幾個基本步驟 - 加載配置文件
- 構(gòu)建SqlSessionFactory
- 獲取SqlSession
- 執(zhí)行具體業(yè)務
- 事務管理類處理
/*
加載配置文件
*/
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
/**
* 構(gòu)建SqlSessionFactory
*/
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStreamReader);
/**
* 獲取SqlSession
*/
session = sqlSessionFactory.openSession();
/*
執(zhí)行具體業(yè)務
*/
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog=(Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 1);
這樣基本需求就明確了:
通過上述兩步簡單分析,就知道第献,要想賣身給spring大佬
- mybatis自己搞一套adapter去迎合spring
- spring給他開發(fā)一套贡必。
- 當然還有第三個方案,咱們開發(fā)者自己搞一個adapter去吧mybatis插到spring上 庸毫。
這個所謂的adapter仔拟,其實就是完成上述5個基本事,之后spring就可以祭出他ioc飒赃,給咱們隨便autowire 啥的
感覺上mybatis還是底座不如spring大利花,所以有了mybatis-spring 這個adapter工程。
大概看一下
git version: 0ab2cb2bf98b815e3a785fb1d5c8a04b56390784
-
基本工程結(jié)構(gòu)
image.png
符合上述yy
入口Bean
- 名稱:SqlSessionFactoryBean
-
類結(jié)構(gòu)圖
image.png
-
屬性
image.png
從屬性可以看出载佳,上述五步需要的東西炒事,都可以拿進來了
這樣,功能搞定后蔫慧,就完成了控制權(quán)翻轉(zhuǎn)一下交給spring來支配mybais了
- 看一眼非springboot時挠乳,spring使用mybatis
<!-- 配置SqlSessionFactory對象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入數(shù)據(jù)庫連接池 -->
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="mybatis-spring-config.xml"/>
</bean>
<!--數(shù)據(jù)庫連接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.uid}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 初始連接池大小 -->
<property name="initialPoolSize" value="10"/>
<!-- 連接池中連接最小個數(shù) -->
<property name="minPoolSize" value="5"/>
<property name="maxPoolSize" value="20"/>
</bean>
配置完后,mapper這塊姑躲,老式的就xml配置睡扬,新式的可以注解等。
完活
小結(jié)
- 熟悉一下委身spring管理的基本生態(tài)規(guī)范
- 學習一下做adapter的一些技巧
- 有上述基礎(chǔ)后肋联,可以方便遷移如何給mybatis做一個新式的adapter spring-booter