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

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

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

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

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

XML配置文件包含對MyBatis系統(tǒng)的核心設(shè)置,包含獲取數(shù)據(jù)庫連接實(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對象了,基于同樣的啟示,我們就可以獲得SqlSession的實(shí)例了。SqlSession對象完全包含以數(shù)據(jù)庫為背景的所有執(zhí)行SQL操作的方法。你可以用SqlSession實(shí)例來直接執(zhí)行已映射的SQL 語句。例如:

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

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

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

探究已映射的SQL語句
這里給出一個基于XML映射語句的示例,這些語句應(yīng)該可以滿足上述示例中SqlSession對象的調(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”中,它定義了一個名為“selectBlog”的映射語句,這樣它允許你使用完全限定名“org.mybatis.example.BlogMapper.selectBlog”來調(diào)用映射語句,我們下面示例中的寫法也就是這樣的。

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

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

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

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

相關(guān)文章

  • Java中的this、super、final關(guān)鍵字詳解

    Java中的this、super、final關(guān)鍵字詳解

    這篇文章主要介紹了Java中的this、super、final關(guān)鍵字詳解,它在方法內(nèi)部使用,表示這個方法所屬對象的引用,它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對象,this 可以調(diào)用類的屬性、方法和構(gòu)造器,需要的朋友可以參考下
    2023-09-09
  • IntelliJ?IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟

    IntelliJ?IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟

    這篇文章主要介紹了IntelliJ?IDEA如何運(yùn)行SpringBoot項(xiàng)目,步驟一配置maven,步驟二配置JDK環(huán)境,緊接著通過步驟三檢查數(shù)據(jù)庫的配置,最后一步數(shù)據(jù)庫連接,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • idea添加數(shù)據(jù)庫圖文教程

    idea添加數(shù)據(jù)庫圖文教程

    這篇文章主要介紹了idea添加數(shù)據(jù)庫圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 解析Hibernate + MySQL中文亂碼問題

    解析Hibernate + MySQL中文亂碼問題

    如果持久化的類中有包括了漢字的String對象,那么對應(yīng)到數(shù)據(jù)庫中漢字的部分就會是亂碼。這主要是由于MySQL數(shù)據(jù)表的字符集與我們當(dāng)前使用的本地字符集不相同造成的
    2013-07-07
  • Logback的使用及如何配置

    Logback的使用及如何配置

    這篇文章主要介紹了Logback的使用及如何配置,幫助大家更好的理解和學(xué)習(xí)使用Logback,感興趣的朋友可以了解下
    2021-03-03
  • review引發(fā)的有關(guān)于單例模式的思考

    review引發(fā)的有關(guān)于單例模式的思考

    一次代碼調(diào)試中發(fā)現(xiàn)一個情況,即我在查看memcached的connection時,發(fā)現(xiàn)總是維持在100來個左右,當(dāng)然這看似沒什么問題,因?yàn)閙emcached默認(rèn)connection有1024個。
    2013-04-04
  • 如何在MyBatis中實(shí)現(xiàn)DataSource

    如何在MyBatis中實(shí)現(xiàn)DataSource

    今天給大家整理了如何在MyBatis中實(shí)現(xiàn)DataSource,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • SpringBoot部署到外部Tomcat無法注冊到Nacos服務(wù)端的解決思路

    SpringBoot部署到外部Tomcat無法注冊到Nacos服務(wù)端的解決思路

    這篇文章主要介紹了SpringBoot部署到外部Tomcat無法注冊到Nacos服務(wù)端,本文給大家分享完美解決思路,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 深入理解Java抽象類

    深入理解Java抽象類

    這篇文章主要介紹了Java抽象類的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理

    Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理

    這篇文章主要介紹了Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論