最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

獲取Java的MyBatis框架項(xiàng)目中的SqlSession的方法

 更新時(shí)間:2016年06月01日 16:10:29   作者:fhd001  
SqlSession中包括已經(jīng)映射好的SQL語(yǔ)句,這樣對(duì)象實(shí)例就可以直接拿過(guò)來(lái)用了,那么這里就來(lái)講解獲取Java的MyBatis框架項(xiàng)目中的SqlSession的方法

從XML中構(gòu)建SqlSessionFactory
從XML文件中構(gòu)建SqlSessionFactory的實(shí)例非常簡(jiǎn)單。這里建議你使用類路徑下的資源文件來(lái)配置.

String resource = "org/mybatis/example/Configuration.xml";  
Reader reader = Resources.getResourceAsReader(resource);  
sqlMapper = new SqlSessionFactoryBuilder().build(reader);  

XML配置文件包含對(duì)MyBatis系統(tǒng)的核心設(shè)置,包含獲取數(shù)據(jù)庫(kù)連接實(shí)例的數(shù)據(jù)源和決定事務(wù)范圍和控制的事務(wù)管理器。如例:

<?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>  
  <environments default="development">  
    <environment id="development">  
      <transactionManager type="JDBC"/>  
      <dataSource type="POOLED">  
        <property name="driver" value="${driver}"/>  
        <property name="url" value="${url}"/>  
        <property name="username" value="${username}"/>  
        <property name="password" value="${password}"/>  
      </dataSource>  
    </environment>  
  </environments>  
  <mappers>  
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>  
  </mappers>  
</configuration>  

當(dāng)然,在XML配置文件中還有很多可以配置的,上面的示例指出的則是最關(guān)鍵的部分。

從SqlSessionFactory中獲取SqlSession
現(xiàn)在,我們已經(jīng)知道如何獲取SqlSessionFactory對(duì)象了,基于同樣的啟示,我們就可以獲得SqlSession的實(shí)例了。SqlSession對(duì)象完全包含以數(shù)據(jù)庫(kù)為背景的所有執(zhí)行SQL操作的方法。你可以用SqlSession實(shí)例來(lái)直接執(zhí)行已映射的SQL 語(yǔ)句。例如:

SqlSession session = sqlMapper.openSession();  
try{  
  Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog",101);  
}finally{  
  session.close();  
}  

現(xiàn)在有一種更簡(jiǎn)潔的方法。使用合理描述參數(shù)和SQL語(yǔ)句返回值的接口(比如BlogMapper.class),這樣現(xiàn)在就更簡(jiǎn)單,更安全的代碼,沒(méi)有容易發(fā)生的字符串文字和轉(zhuǎn)換的錯(cuò)誤。例如:

SqlSession session = sqlSessionFactory.openSession();  
try {  
  BlogMapper mapper = session.getMapper(BlogMapper.class);  
  Blog blog = mapper.selectBlog(101);  
}finally{  
  session.close();  
} 

探究已映射的SQL語(yǔ)句
這里給出一個(gè)基于XML映射語(yǔ)句的示例,這些語(yǔ)句應(yīng)該可以滿足上述示例中SqlSession對(duì)象的調(diào)用。

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
<mapper namespace="org.mybatis.example.BlogMapper">  
  <select id="selectBlog" parameterType="int" resultType="Blog">  
    select * from Blog where id = #{id}  
  </select>  
</mapper>  

在命名空間“com.mybatis.example.BlogMapper”中,它定義了一個(gè)名為“selectBlog”的映射語(yǔ)句,這樣它允許你使用完全限定名“org.mybatis.example.BlogMapper.selectBlog”來(lái)調(diào)用映射語(yǔ)句,我們下面示例中的寫法也就是這樣的。

Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);  

但下面的調(diào)用更有優(yōu)勢(shì):
映射接口對(duì)應(yīng)映射xml文件的命令空間,接口方法對(duì)應(yīng)映射xml文件中定義的SQL映射的ID。???????????

BlogMapper mapper = session.getMapper(BlogMapper.class);  
Blog blog = mapper.selectBlog(101);  

首先它不是基于文字的,那就更安全了。第二,如果你的IDE有代碼補(bǔ)全功能,那么你可以利用它來(lái)操縱已映射的SQL語(yǔ)句。第三,不需要強(qiáng)制類型轉(zhuǎn)換,同時(shí)BlogMapper接口可以保持簡(jiǎn)潔,返回值類型很安全(參數(shù)類型也很安全)。

相關(guān)文章

  • 淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    下面小編就為大家?guī)?lái)一篇淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • OpenCV Java實(shí)現(xiàn)人臉識(shí)別和裁剪功能

    OpenCV Java實(shí)現(xiàn)人臉識(shí)別和裁剪功能

    這篇文章主要為大家詳細(xì)介紹了OpenCV Java實(shí)現(xiàn)人臉識(shí)別和裁剪功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 你知道在Java中Integer和int的這些區(qū)別嗎?

    你知道在Java中Integer和int的這些區(qū)別嗎?

    最近面試,突然被問(wèn)道,說(shuō)一下Integer和int的區(qū)別.額…可能平時(shí)就知道寫一些業(yè)務(wù)代碼,包括面試的一些Spring源碼等,對(duì)于這種特別基礎(chǔ)的反而忽略了,導(dǎo)致面試的時(shí)候突然被問(wèn)到反而不知道怎么回答了.哎,還是乖乖再看看底層基礎(chǔ),順帶記錄一下把 ,需要的朋友可以參考下
    2021-06-06
  • jedis操作redis的幾種常見(jiàn)方式總結(jié)

    jedis操作redis的幾種常見(jiàn)方式總結(jié)

    Redis是一個(gè)著名的key-value存儲(chǔ)系統(tǒng),也是nosql中的最常見(jiàn)的一種,這篇文章主要給大家總結(jié)了關(guān)于在java中jedis操作redis的幾種常見(jiàn)方式,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • Java Grpc實(shí)例創(chuàng)建負(fù)載均衡詳解

    Java Grpc實(shí)例創(chuàng)建負(fù)載均衡詳解

    這篇文章主要介紹了Java Grpc實(shí)例創(chuàng)建負(fù)載均衡詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java代碼規(guī)范review異常事故記錄

    java代碼規(guī)范review異常事故記錄

    這篇文章主要為大家介紹了java代碼規(guī)范關(guān)于異常review代碼發(fā)生異常的事故記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Java中的HashMap和ConcurrentHashMap區(qū)別和適用場(chǎng)景

    Java中的HashMap和ConcurrentHashMap區(qū)別和適用場(chǎng)景

    HashMap和ConcurrentHashMap在對(duì)null值的處理、線程安全性、性能等方面存在顯著的區(qū)別,HashMap允許鍵和值為null,適用于單線程環(huán)境下的數(shù)據(jù)存儲(chǔ)和查詢場(chǎng)景;而ConcurrentHashMap不允許鍵和值為null,適用多線程環(huán)境下的數(shù)據(jù)存儲(chǔ)和查詢場(chǎng)景,具有線程安全性和較高的并發(fā)性能
    2025-01-01
  • Java實(shí)現(xiàn)聊天機(jī)器人完善版

    Java實(shí)現(xiàn)聊天機(jī)器人完善版

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)聊天機(jī)器人完善版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • SpringBoot+Logback實(shí)現(xiàn)一個(gè)簡(jiǎn)單的鏈路追蹤功能

    SpringBoot+Logback實(shí)現(xiàn)一個(gè)簡(jiǎn)單的鏈路追蹤功能

    Spring Boot默認(rèn)使用LogBack日志系統(tǒng),并且已經(jīng)引入了相關(guān)的jar包,所以我們無(wú)需任何配置便可以使用LogBack打印日志。這篇文章主要介紹了SpringBoot+Logback實(shí)現(xiàn)一個(gè)簡(jiǎn)單的鏈路追蹤功能,需要的朋友可以參考下
    2019-10-10
  • java服務(wù)自動(dòng)停止原因查找方式

    java服務(wù)自動(dòng)停止原因查找方式

    這篇文章主要介紹了java服務(wù)自動(dòng)停止原因查找方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

百色市| 启东市| 鸡西市| 手游| 吉隆县| 肃北| 油尖旺区| 于都县| 南城县| 永定县| SHOW| 克什克腾旗| 昭通市| 乐都县| 曲松县| 慈溪市| 甘孜| 济阳县| 甘洛县| 英山县| 连云港市| 兖州市| 济宁市| 砚山县| 平舆县| 若尔盖县| 东台市| 麻城市| 荔波县| 巴林左旗| 新宁县| 海安县| 怀化市| 云浮市| 巩义市| 措勤县| 长治县| 准格尔旗| 黔江区| 忻城县| 蓝山县|