KeyWords: Mybatis 原理,源碼,Mybatis Mapper 接口實(shí)現(xiàn)類(lèi),代理模式,動(dòng)態(tài)代理,Java動(dòng)態(tài)代理,
Proxy.newProxyInstance,Mapper 映射,Mapper 實(shí)現(xiàn)
MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。我們?cè)谑褂?Mybaits 進(jìn)行 ,通常只需要定義幾個(gè) Mapper 接口,然后在編寫(xiě)一個(gè) xml 文件,我們?cè)谂渲梦募袑?xiě)好 sql , Mybatis 幫我們完成 Mapper 接口道具體實(shí)現(xiàn)的調(diào)用。以及將結(jié)果映射到 model bean 中。
我們?cè)陧?xiàng)目中所編寫(xiě)的眾多的 Mapper 類(lèi)只是一個(gè)接口(interface ),根據(jù) Java 的多態(tài)性我們知道,可以使用接口接口作為形參,進(jìn)而在運(yùn)行時(shí)確定具體實(shí)現(xiàn)的對(duì)象是什么。但是,對(duì)于 Mapper 接口,我們并沒(méi)有編寫(xiě)其實(shí)現(xiàn)類(lèi)!Mybatis是如何找到其實(shí)現(xiàn)類(lèi),進(jìn)而完成具體的 CRUD 方法調(diào)用的呢?原理何在?
Mapper 接口是怎么找到實(shí)現(xiàn)類(lèi)的
為了弄清楚 Mapper 接口是如何找到實(shí)現(xiàn)類(lèi)的,我們先回憶一下 Mybatis 是怎么使用的,根據(jù)實(shí)際的例子,進(jìn)而一點(diǎn)點(diǎn)的去分析。這里的使用指的是Mybatis 單獨(dú)使用,而不是整合 spring , 因?yàn)檎?spring 的話(huà),還需要涉及 Mapper dao 裝載到 spring 容器的問(wèn)題,spring 幫忙創(chuàng)建數(shù)據(jù)源配置等問(wèn)題。
通常我們使用 Mybatis 的主要步驟是:
從一段代碼看起
上面我們概括了使用 Mybatis 的4個(gè)步驟。這4個(gè)步驟看起來(lái)很簡(jiǎn)單,但是用代碼寫(xiě)出來(lái)就很多。我們不妨先記著這4個(gè)步驟,再去看代碼,會(huì)容易點(diǎn)。
// 1. DataSource dataSource = BlogDataSourceFactory.getBlogDataSource(); TransactionFactory transactionFactory = new JdbcTransactionFactory(); Environment environment = new Environment("development", transactionFactory, dataSource); Configuration configuration = new Configuration(environment); configuration.addMapper(BlogMapper.class);// 添加Mapper接口 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration); // 2. SqlSession session = sqlSessionFactory.openSession(); try { // 3. BlogMapper mapper = session.getMapper(BlogMapper.class); // 4. Blog blog = mapper.selectBlog(1); } finally { session.close(); }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱(chēng):MybatisMapper接口工作原理實(shí)例解析-創(chuàng)新互聯(lián)
路徑分享:http://chinadenli.net/article10/coiego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站改版、域名注冊(cè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容