五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MyBatis開發(fā)框架的四大核心

2018-12-24 14:56 作者:動力節(jié)點  | 我要投稿

MyBatis 四大核心主要包括(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。

MyBatis 作為互聯(lián)網(wǎng)數(shù)據(jù)庫映射工具界的“上古神器”,訓有四大“神獸”,謂之:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper??梢哉f,了解了這四大核心,便可知 MyBatis 八 九。

SqlSessionFactoryBuilder
從命名上可以看出,這個是一個 Builder 模式的,用于創(chuàng)建 SqlSessionFactory 的類。SqlSessionFactoryBuilder 根據(jù)配置來構造 SqlSessionFactory。

其中配置方式有兩種

1. XML 文件方式
XML 文件方式是作為常用的一種方式:

String resource = "org/mybatis/example/mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

mybatis-config.xml 就是我們的配置文件:


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ?
? ? ? ?
? ?
? ?
? ?
? ?

2. Java Config
這是第二種配置方式,通過 Java 代碼來配置:

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);

Java Config 相比較 XML 文件的方式而言,會有一些限 制。比如修改了配置文件需要重新編譯,注解方式?jīng)]有 XML 配置項多等。所以,業(yè)界大多數(shù)情況下是選擇 XML 文件的方式。但到底選擇哪種方式,這個要取決與自己團隊的需要。比如,項目的 SQL 語句不復雜,也不需要一些高級的 SQL 特性,那么 Java Config 則會更加簡潔一點;反之,則可以選擇 XML 文件的方式。

SqlSessionFactory
SqlSessionFactory 顧名思義,是用于生產(chǎn) SqlSession 的工廠。

通過如下的方式來獲取 SqlSession 實例:

SqlSession session = sqlSessionFactory.openSession();

SqlSession
SqlSession 包含了執(zhí)行 SQL 的所有的方法。以下是示例:

SqlSession session = sqlSessionFactory.openSession();

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

????}

當然,下面的方式可以做到類型安全:

SqlSession session = sqlSessionFactory.openSession();

try { BlogMapper mapper = session.getMapper(BlogMapper.class);?

Blog blog = mapper.selectBlog(101);?

????} finally {?

????????????session.close();

????????????}

Mapper
Mapper 顧名思義,是用做 Java 與 SQL 之間的映射的。包括了 Java 映射為 SQL 語句,以及 SQL 返回結果映射為 Java。

比如,下面是一個常見的 Mapper 接口映射文件:

? ? ? select * from Blog where id = #{id}其中 "org.mybatis.example.BlogMapper" 就是我們要射射的接口,selectBlog 就是BlogMapper上的方法。而這個 selectBlog 具體就是要執(zhí)行“select * from Blog where id = #{id}”這個 SQL 語句。

這樣,我們就能通過

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

或者是

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


來獲取到執(zhí)行的結果。

當然,如果是采用注解的方式的話,可以省去 XML 文件:

public interface BlogMapper {@Select("SELECT * FROM blog WHERE id = #{id}")Blog selectBlog(int id);?

}


MyBatis開發(fā)框架的四大核心的評論 (共 條)

分享到微博請遵守國家法律
启东市| 广安市| 化德县| 沭阳县| 贡嘎县| 崇明县| 聂拉木县| 合作市| 巫溪县| 德昌县| 印江| 玉树县| 巴青县| 安义县| 临武县| 秦安县| 衡山县| 醴陵市| 绥芬河市| 奉新县| 泰和县| 鄄城县| 奉贤区| 中山市| 新河县| 曲靖市| 岱山县| 通许县| 阿拉善右旗| 西青区| 富顺县| 封丘县| 鹤庆县| 抚顺县| 神池县| 连城县| 高雄县| 迁西县| 潍坊市| 时尚| 太仓市|