摘要:我猜想框架源碼中通過(guò)工廠(chǎng)類(lèi)封裝了數(shù)據(jù)庫(kù)的連接這些模板代碼,對(duì)象類(lèi)似于我們?cè)谥惺褂玫膶?duì)象的封裝,在我們調(diào)用關(guān)閉這個(gè)對(duì)象時(shí),框架幫你關(guān)閉數(shù)據(jù)庫(kù)連接之類(lèi)的工作。
關(guān)于myBatis的介紹,我就多講了,主要寫(xiě)下的內(nèi)容是代碼,還有一些我碰到的問(wèn)題
1.配置文件Configuration.xml:
2.映射器xml文件 UserMapper.xml:
這兩步一般是使用myBatis框架都會(huì)做的事(好像很多內(nèi)容都可以在注解中做了,但是我對(duì)注解不是特別熟悉,就不嘗試了)。接下來(lái)如何在Java代碼中體現(xiàn)呢?
3.代碼程序訪(fǎng)問(wèn)myBatis:
1)類(lèi)實(shí)現(xiàn): private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static{ try{ reader =Resources.getResourceAsReader("Configuration.xml"); sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader); }catch(Exception e){ e.printStackTrace(); } } public User selectUserByID(int id){ SqlSession session=sqlSessionFactory.openSession(); User user; try{ user=(User)session.selectOne("UserMapper.selectUserByID", id); System.out.println(user); }finally{ session.close(); } return user; }
主要的內(nèi)容其實(shí)就是先加載Configuration.xml文件,然后創(chuàng)建一個(gè)SqlSessionFactory,利用這個(gè)工廠(chǎng)類(lèi)創(chuàng)建session,通過(guò)session來(lái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。我猜想框架源碼中通過(guò)工廠(chǎng)類(lèi)封裝了數(shù)據(jù)庫(kù)的連接這些模板代碼,session對(duì)象類(lèi)似于我們?cè)趈dbc中使用的statement對(duì)象的封裝,在我們調(diào)用close關(guān)閉這個(gè)session對(duì)象時(shí),框架幫你關(guān)閉數(shù)據(jù)庫(kù)連接之類(lèi)的工作。
2)接口實(shí)現(xiàn): public interface UserOperation { public User selectUserByID(int user_id); }
沒(méi)錯(cuò),只用這一點(diǎn)代碼,調(diào)用時(shí)就用如下代碼就可以了
SqlSession session =sqlSessionFactory.openSession(); try{ UserOperation userOperation =session.getMapper(UserOperation.class); User user =userOperation.selectUserByID(3); System.out.println(user); //session.commit(); }finally{ session.close(); }
的確省去了很多不方便的數(shù)據(jù)庫(kù)連接代碼,我自己重構(gòu)之前寫(xiě)過(guò)的一些代碼,之前一個(gè)DAO類(lèi)大概會(huì)有200行左右吧,用myBatis寫(xiě)完之后大概會(huì)到100左右,我還想把一些公共的部分提取出來(lái)作為工具類(lèi),那樣會(huì)更少??傊€不錯(cuò)。
在做demo的時(shí)候犯過(guò)的錯(cuò):
1.在使用類(lèi)實(shí)現(xiàn)的時(shí)候傳遞多個(gè)參數(shù)到myBatis框架一直都不對(duì),嘗試了網(wǎng)上的注解還是不可以,然后用接口實(shí)現(xiàn),完全沒(méi)有這個(gè)問(wèn)題了,建議用接口
2.在寫(xiě)映射器文件的時(shí)候,會(huì)有奇怪的問(wèn)題,報(bào)出無(wú)法找到XX屬性,可以利用序號(hào)來(lái)在xml文件中可以利用序號(hào)傳遞參數(shù),這樣會(huì)避免這個(gè)問(wèn)題
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64985.html
摘要:整合想著每次搭建新項(xiàng)目時(shí)框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來(lái)搭建一種常用的后臺(tái)框架,以后新開(kāi)小項(xiàng)目可以直接拿來(lái)使用項(xiàng)目整體結(jié)構(gòu)圖新建空白項(xiàng)目,選中依賴(lài)略,也可以完全根據(jù)本人代碼操作文件依賴(lài)項(xiàng)展示 springboot整合tkMapper 想著每次搭建新項(xiàng)目時(shí)框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來(lái)搭建一種常用的springboot后臺(tái)框架,以后新開(kāi)小項(xiàng)目可以直接拿來(lái)...
摘要:新推出的,對(duì)新手是友好了,但是不利于了解這個(gè)框架,而且遇到問(wèn)題能查的資料少綜上,我最后還是選擇了作為開(kāi)發(fā)的標(biāo)配,下面以配置作為示例依賴(lài)文件沒(méi)啥好講的,程序員都知道規(guī)定了有哪些顯式的,規(guī)定了最頂層的環(huán)境,是整個(gè)的綱領(lǐng)。 前言 最近開(kāi)始嘗試使用久負(fù)盛名的SM框架——Spring+Mybatis進(jìn)行Web開(kāi)發(fā),從此走上了Spring配置的不歸路。說(shuō)句實(shí)在話(huà),Spring是我特么見(jiàn)過(guò)所有WE...
摘要:教程簡(jiǎn)介本項(xiàng)目?jī)?nèi)容為教程樣例。目的是通過(guò)學(xué)習(xí)本系列教程,讀者可以從到掌握的知識(shí),并且可以運(yùn)用到項(xiàng)目中。 教程簡(jiǎn)介 本項(xiàng)目?jī)?nèi)容為Spring Boot教程樣例。目的是通過(guò)學(xué)習(xí)本系列教程,讀者可以從0到1掌握spring boot的知識(shí),并且可以運(yùn)用到項(xiàng)目中。如您覺(jué)得該項(xiàng)目對(duì)您有用,歡迎點(diǎn)擊收藏和點(diǎn)贊按鈕,給予支持??!教程連載中,歡迎持續(xù)關(guān)注! 環(huán)境 IDE: Eclipse NeonJa...
摘要:核心流程三大階段縷清思路也就是核心流程之后,我們就開(kāi)始寫(xiě)代碼了,詳見(jiàn)下節(jié) Mybatis快速入門(mén) 步驟: 1.加入mybatis的依賴(lài) 2.添加Mybatis的配置文件 3.場(chǎng)景介紹 4.編寫(xiě)實(shí)體類(lèi)丶mapper接口及mapper.xml文件 5.編寫(xiě)測(cè)試代碼 demo: public class TUser { private Integer id; priva...
閱讀 3104·2021-11-19 09:40
閱讀 1569·2021-11-15 11:39
閱讀 685·2021-10-08 10:05
閱讀 2280·2021-09-03 10:29
閱讀 3413·2021-08-12 13:22
閱讀 2172·2019-08-30 15:54
閱讀 3717·2019-08-30 14:03
閱讀 2659·2019-08-30 13:45