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

首頁 > 學院 > 開發設計 > 正文

Java框架篇---Mybatis 構建SqlSessionFactory

2019-11-15 00:58:13
字體:
來源:轉載
供稿:網友
java框架篇---Mybatis 構建SqlsessionFactory從 xml 中構建 SqlSessionFactory

基于 MyBatis 的應用都是以一個 SqlSessionFactory 的實例為中心的。SqlSessionFactory 的實例可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個預先定制的 Configuration 的實例構建出 SqlSessionFactory 的實例。

從 XML 文件中構建 SqlSessionFactory 的實例非常簡單,建議使用類路徑下的資源文件進行配置。但是也可以使用任意的輸入流(InputStream)實例,包括字符串形式的文件路徑或者 file:// 的 URL 形式的文件路徑來配置。MyBatis 包含一個名叫 Resources 的工具類,它包含一些實用方法,可使從 classpath 或其他位置加載資源文件更加容易。

String resource = "mybatis.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

XML 配置文件(mybatis.xml)中包含了對 MyBatis 系統的核心設置,這里先給出一個簡單的示例:

<?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="com.MySQL.jdbc.Driver" />                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />                <property name="username" value="root" />                <property name="passWord" value="root" />            </dataSource>        </environment>    </environments>    <mappers>               <mapper resource="com/oumyye/mapping/userMapping.xml"/>     </mappers></configuration>

當然,還有很多可以在XML 文件中進行配置,上面的示例指出的則是最關鍵的部分。要注意 XML 頭部的聲明,用來驗證 XML 文檔正確性。environment 元素體中包含了事務管理和連接池的配置。mappers 元素則是包含一組 mapper 映射器(這些 mapper 的 XML 文件包含了 SQL 代碼和映射定義信息)。

不使用 XML 構建 SqlSessionFactory

如果你更愿意直接從 Java 程序而不是 XML 文件中創建 configuration,或者創建你自己的 configuration 構建器,MyBatis 也提供了完整的配置類,提供所有和 XML 文件相同功能的配置項。

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory, dataSource);Configuration configuration = new Configuration(environment);configuration.addMapper(BlogMapper.class);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

注意該例中,configuration 添加了一個映射器類(mapper class)。映射器類是 Java 類,它們包含 SQL 映射語句的注解從而避免了 XML 文件的依賴。不過,由于 Java 注解的一些限制加之某些 MyBatis 映射的復雜性,XML 映射對于大多數高級映射(比如:嵌套 Join 映射)來說仍然是必須的。有鑒于此,如果存在一個對等的 XML 配置文件的話,MyBatis 會自動查找并加載它(這種情況下, BlogMapper.xml 將會基于類路徑和 BlogMapper.class 的類名被加載進來)。

從 SqlSessionFactory 中獲取 SqlSession

既然有了 SqlSessionFactory ,顧名思義,我們就可以從中獲得 SqlSession 的實例了。SqlSession 完全包含了面向數據庫執行 SQL 命令所需的所有方法。你可以通過 SqlSession 實例來直接執行已映射的 SQL 語句。例如:

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

誠然這種方式能夠正常工作,并且對于使用舊版本 MyBatis 的用戶來說也比較熟悉,不過現在有了一種更直白的方式。使用對于給定語句能夠合理描述參數和返回值的接口(比如說BlogMapper.class),你現在不但可以執行更清晰和類型安全的代碼,而且還不用擔心易錯的字符串字面值以及強制類型轉換。例如:

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

以上轉自:http://mybatis.github.io/mybatis-3/zh/getting-started.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安国市| 永春县| 旬阳县| 余干县| 霍州市| 西乡县| 苗栗县| 卓尼县| 霍林郭勒市| 明溪县| 灌阳县| 百色市| 屯昌县| 呼玛县| 汕尾市| 阿鲁科尔沁旗| 锡林郭勒盟| 互助| 县级市| 钟山县| 沾益县| 巩留县| 蕲春县| 吴旗县| 柳林县| 海宁市| 昆山市| 灌南县| 高雄县| 海丰县| 寿宁县| 台中市| 米林县| 黄陵县| 鸡泽县| 鄢陵县| 华蓥市| 景宁| 岐山县| 鄢陵县| 元氏县|