国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

獲取Java的MyBatis框架項目中的SqlSession的方法

2019-11-26 14:15:50
字體:
供稿:網(wǎng)友

從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ù)類型也很安全)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南召县| 长治市| 桦南县| 台东县| 平江县| 藁城市| 色达县| 治县。| 神农架林区| 合江县| 钟祥市| 宾川县| 桓仁| 小金县| 阳山县| 上饶县| 赞皇县| 温宿县| 遂平县| 探索| 泗水县| 英吉沙县| 托克托县| 汉川市| 武鸣县| 秭归县| 云霄县| 寻乌县| 鹰潭市| 榆社县| 三穗县| 遵义市| 湘乡市| 定州市| 富顺县| 鄱阳县| 济阳县| 陆丰市| 武山县| 大英县| 恩平市|