欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis如何使用(三)

 更新時(shí)間:2016年07月25日 15:38:02   作者:迷茫中守候  
這篇文章主要介紹了MyBatis如何使用(三)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

在前邊闡述了單獨(dú)使用mybatis的方法,在實(shí)際開(kāi)發(fā)過(guò)程中mybatis經(jīng)常和spring一起使用,即mybatis和spring進(jìn)行集成,現(xiàn)在我們來(lái)看如何集成。

mybatis和spring進(jìn)行集成需要用到集成包:mybatis-spring-1.1.1.jar,此包提供mybatis和spring集成的支持,把此包導(dǎo)入到項(xiàng)目的lib目錄下。

我們先看mybatis單獨(dú)使用的時(shí)候的過(guò)程,mybatis配置文件==》讀取配置文件==》操作數(shù)據(jù)庫(kù),具體的使用方法可參照前兩篇文章。

下面進(jìn)行mybatis和spring的集成,

一、mybatis配置文件

在和spring做集成時(shí)mybatis的配置文件中有些配置不再需要了,spring會(huì)使用它自己的。如數(shù)據(jù)源,下面看下mybatis的配置文件,MybatisConfiguration.xml,

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases> 
<typeAlias alias="Message" type="com.cn.imooc.entity.Message"/> 
</typeAliases> 
<mappers>
<mapper resource="com/cn/mappers/message.xml"/>
</mappers>
</configuration> 

上面的配置文件配置了別名和mappers映射文件,和之前的配置文件相比,可以看出沒(méi)有了關(guān)于數(shù)據(jù)源的信息,這里在mybatis的配置文件中不再需要配置數(shù)據(jù)源,需要在spring的配置文件中配置。

二、spring配置文件

既然和spring做集成,那么必須導(dǎo)入spring的包,關(guān)于spring的包可以從前面的文章中獲得;導(dǎo)入spring的包之后,就需要配置spring的配置文件,我們把spring的配置文件放在src下,名字為spring-application.xml,

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="address" class="com.cn.test.spring.Address"></bean>
<!-- 引入jdbc配置文件 --> 
<!--
<context:property-placeholder location="jdbc.properties"/> 
-->
<!--1、創(chuàng)建jdbc數(shù)據(jù)源 --> 
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > 
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/weixin?useUnicode=true&amp;characterEncoding=UTF-8" />
<property name="username" value="root"/>
<property name="password" value="123456"/> 
</bean> 
<!--2、sqlSessionFactoryBean--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:MybatisConfiguration.xml"></property>
<!--
<property name="mapperLocations" value="classpath:com/cn/mappers/message.xml"></property>
-->
</bean>
<bean id="messageMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.cn.inter.IMessageOperation" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
</beans> 

首先,我們配置了一個(gè)數(shù)據(jù)源,這里如果引入了context的命名空間,可以使用<context:property-placeholder location="jdbc.properties"/>,引入src下的配置文件。

其次,配置了sqlSessionFactoryBean,這里使用sqlSessionFactoryBean生成sqlSessionFactory(在mybatis中sqlSessionFactory由sqlSessionFactoryBuilder生成)。要通過(guò)sqlSessionFactroyBean生成sqlSessionFactroy有以下幾個(gè)屬性,dataSource 即剛才配置的數(shù)據(jù)源,指定生成sqlSessionFactory使用的數(shù)據(jù)源

configLocation 這個(gè)屬性指定mybatis的配置文件的路徑,在本例中我們使用了src下的MybatisConfiguration.xml,如果在此文件中配置了mappers映射文件,則不需要第三個(gè)屬性,如果沒(méi)配置映射文件則需要第三個(gè)屬性;假如,在MybatisConfiguration.xml文件中沒(méi)有配置映射文件,也沒(méi)有配置mapperLocations屬性,則映射文件必須必須和映射器類(lèi)在同一個(gè)包下,且映射文件和映射器類(lèi)必須名字相同。

mapperLocations 指定mappers映射文件,這個(gè)屬性可以配置為一個(gè)list的值

最后,使用動(dòng)態(tài)代理生成訪問(wèn)數(shù)據(jù)庫(kù)的代碼,MapperFactoryBean作為一個(gè)工廠類(lèi),可以用來(lái)生成訪問(wèn)數(shù)據(jù)庫(kù)的動(dòng)態(tài)代理,有兩種方式可以生成一個(gè)動(dòng)態(tài)代理,這里使用了mapperInterface和sqlSessionFactory兩個(gè)屬性,第一個(gè)指定映射器類(lèi)的全限路徑,第二個(gè)就是上面的sqlSessionFactory;另一種方式是使用注解的方式。

至此,spring的配置文件完成,可以進(jìn)行測(cè)試,測(cè)試代碼如下,

package com.cn.test.spring;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.cn.imooc.entity.Message;
import com.cn.inter.IMessageOperation;
public class TestSpringAndMybatis {
public static void main(String[] args) {
// TODO Auto-generated method stub
//獲得spring的配置
ClassPathXmlApplicationContext cpxac=new ClassPathXmlApplicationContext("spring-application.xml");
//獲得IMessageOperation接口類(lèi)
IMessageOperation imo=(IMessageOperation)cpxac.getBean("messageMapper");
Message m=imo.selectMessageById("2");
System.out.println(m);
}
} 

上邊完成了mybatis和spring集成的一種方式,我們會(huì)發(fā)現(xiàn)在生成代理的時(shí)候如果有多個(gè)映射器類(lèi),則需要配置多次,比較麻煩,下篇文章使用另一種方式。

以上所述是小編給大家介紹的MyBatis如何使用(三),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名

    java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名

    這篇文章主要介紹了java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名,主要用在做主題時(shí)替換這些常見(jiàn)應(yīng)用的圖片,需要的朋友可以參考下
    2014-06-06
  • Java獲取文件的路徑及常見(jiàn)問(wèn)題解決方案

    Java獲取文件的路徑及常見(jiàn)問(wèn)題解決方案

    這篇文章主要介紹了Java獲取文件的路徑及常見(jiàn)問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 詳解Spring極速集成注解redis實(shí)錄

    詳解Spring極速集成注解redis實(shí)錄

    這篇文章主要介紹了詳解Spring極速集成注解redis實(shí)錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java String不可變性實(shí)現(xiàn)原理解析

    Java String不可變性實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java String不可變性實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring Boot配置Thymeleaf(gradle)的簡(jiǎn)單使用

    Spring Boot配置Thymeleaf(gradle)的簡(jiǎn)單使用

    今天小編就為大家分享一篇關(guān)于Spring Boot配置Thymeleaf(gradle)的簡(jiǎn)單使用,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 在java中調(diào)用python腳本的三種方法

    在java中調(diào)用python腳本的三種方法

    實(shí)際工程項(xiàng)目中可能會(huì)用到Java和python兩種語(yǔ)言結(jié)合進(jìn)行,這樣就會(huì)涉及到一個(gè)問(wèn)題,就是怎么用Java程序來(lái)調(diào)用已經(jīng)寫(xiě)好的python腳本呢,這篇文章主要給大家介紹了關(guān)于在java中調(diào)用python腳本的三種方法,需要的朋友可以參考下
    2023-09-09
  • 詳解如何使用ModelMapper庫(kù)進(jìn)行對(duì)象之間的屬性映射

    詳解如何使用ModelMapper庫(kù)進(jìn)行對(duì)象之間的屬性映射

    這篇文章主要介紹了如何使用ModelMapper庫(kù)進(jìn)行對(duì)象之間的屬性映射實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java訪問(wèn)權(quán)限原理與用法詳解

    Java訪問(wèn)權(quán)限原理與用法詳解

    這篇文章主要介紹了Java訪問(wèn)權(quán)限,結(jié)合實(shí)例形式詳細(xì)分析了java構(gòu)造者思想、包、訪問(wèn)修飾符等相關(guān)原理、應(yīng)用與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Java方法參數(shù)是引用調(diào)用還是值調(diào)用?

    Java方法參數(shù)是引用調(diào)用還是值調(diào)用?

    Java方法參數(shù)是引用調(diào)用還是值調(diào)用?這是一個(gè)值得思考的問(wèn)題。閱讀本文,找出答案
    2016-02-02
  • Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能

    Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能

    本文主要介紹了Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評(píng)論