這篇文章主要介紹Spring整合Mybatis思路的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Spring
Myabtis
Mybatsi-spring
Spring:
項目管理框架,主要是用來負責項目中組件對象的創建,使用,銷毀。
Mybatis:
持久層框架,主要是用來簡化原始jdbc技術對數據庫訪問操作。
== >整合思路:通過Spring框架接管Mybatis框架中核心對象的創建。
sqlSession?
SqlSessionFactory?
SqlSessionFactoryBuilder?
dao?
最核心的對象必然是:SqlSessionFactory。
SqlSessionFactoryBuilder的作用就是讀取解析配置文件==【數據源配置,mapper文件配置】==,來創建SqlSessionFactory。
SqlSession的創建又依靠于SqlSessionFactory。
== > SqlSessionFactory是最核心的對象。
整合思路:通過Spring框架接管Mybatis中核心的SqlSessionFactory對象的創建。
SqlSessionFactory是簡單對象還是復雜對象呢?
如果是簡單對象
<bean id="" class=""/>
如果是復雜對象
通過查看源碼得知,SqlSessionFactory是一個接口類型的復雜對象。
如何創建?
is = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder(),build(is);
1).SqlSessionFactory(Factory)Bean implements FactoryBean<SqlSessionFactory> { SqlSessionFactory getObject() { is = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder(),build(is); } Class getClass() { return SqlSessionFactory.class; } boolean isSingleton() { return true; } } 2).工廠管理SqlSessionFactory <bean id="sqlSessionFactory" class="xxx.SqlSessionFactoryBean"> 3).工廠獲取 SqlSessionFactory sf = context.getBean("sqlSessionFactory");
寫完之后,我們可以發現,這段代碼是固定不變的,這個項目要寫,別的項目也要寫。
于是Mybatis官方替我們寫好了,對這段代碼進行了封裝:Mybatis-spring.jar。
jar包里提供了一個類:SqlSessionFactoryBean。
我們以后只要引Mybatsi-spring依賴就可以了,不用在自己去寫了。
值得注意的是:mybatis官方提供SqlSessionFactoryBean,不在使用mybaits主配置文件。
主配置文件的核心就是【數據源】【mapper文件的注冊】
所以我們要注入數據源對象,引入druid依賴,注入mapper文件的位置?!綝I思想,依賴注入】
<!-- 配置Spring.xml文件 --> <!-- 創建數據源對象 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" > <property name="driverName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/xxx"/> <property name="username" value="root"/> <property name="password" value="root"/> <bean/> <!-- 創建SqlSessionFactory對象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入數據源對象 --> <property name="dataSource" ref="dataSource" /> <!-- 注入mapper文件的位置 --> <property name="mapperLocations"> <array> <value>.....</value> </array> </property> <bean/>
以上是“Spring整合Mybatis思路的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。