什么是mybatis框架:
mybatis屬于三層架構(gòu)中的持久層框架,直接與數(shù)據(jù)庫(kù)相互聯(lián)系肉拓,主要為Dao接口,(DAO:數(shù)據(jù)訪問(wèn)層暖途,Data Acess Object)
如圖所示:
mybatis的環(huán)境搭建:
①、創(chuàng)建maven工程并導(dǎo)入jar包的坐標(biāo)驻售;
②、創(chuàng)建實(shí)體類(lèi)和dao接口欺栗;
③、創(chuàng)建mybatis的主配置文件 迟几;
④、創(chuàng)建映射配置文件类腮,即每個(gè)dao獨(dú)立的配置文件;
環(huán)境搭建的注意事項(xiàng):
①蚜枢、一般在mybatis中,把持久層的操作接口名稱(chēng)和映射文件也叫:Mapper厂抽,所以一般取名為IUserMapper.xml,但為了和之前的知識(shí)保持一致贺辰,于是取名叫IUserDao.xml,所以以后看到IUserMapper.xml和IUserDao.xml其實(shí)是一樣的饲化。
②莽鸭、mybatis的映射配置文件位置必須和dao接口的包結(jié)構(gòu)相同吃靠。
③、映射配置文件的mapper標(biāo)簽namespace屬性的取值必須是dao接口的全限定類(lèi)名巢块。
④、映射配置文件的操作配置(select或update矾瘾、insert等)id屬性的取值必須是dao接口的方法名。
只有遵從了②③④之后越走,無(wú)需寫(xiě)dao實(shí)現(xiàn)類(lèi),直接定義接口即可廊敌。
mybatis的快速入門(mén):
1、讀取配置文件
2骡澈、創(chuàng)建SqlSessionFactorygong工廠(使用了構(gòu)建者模式,調(diào)用方法即可拿到對(duì)象)
3肋殴、使用工廠生產(chǎn)出SqlSession對(duì)象(使用了工廠模式,解耦(降低類(lèi)依賴關(guān)系))
4疼电、使用SqlSession對(duì)象創(chuàng)建Dao接口的代理對(duì)象(使用了代理模式,增強(qiáng)方法蔽豺,不用創(chuàng)建實(shí)現(xiàn)類(lèi))
5、使用代理對(duì)象執(zhí)行Dao接口中的方法
6修陡、釋放資源
注意事項(xiàng):
不要忘記在映射配置文件中告知mybatis要封裝到哪個(gè)實(shí)體類(lèi)中魄鸦,即resultType的屬性值要指定實(shí)體類(lèi)的全類(lèi)名宴杀。
*mybatis基于注解實(shí)現(xiàn)環(huán)境配置:
①拾因、把IUserDao.xml移除旷余,在dao接口的方法上使用@select注解,并且制定SQL語(yǔ)句正卧。(@update、@insert炉旷、......)
②、同時(shí)需要在SqlMapConfig.xml中的mappers中的mapper配置時(shí)窘行,使用class屬性指定dao接口的全類(lèi)名即可。
最后明確:
在實(shí)際的開(kāi)發(fā)中罐盔,都是越簡(jiǎn)便越好,所以都是采用不寫(xiě)dao實(shí)現(xiàn)類(lèi)的方式翘骂,不管使用注解還是xml進(jìn)行配置,都比寫(xiě)dao實(shí)現(xiàn)類(lèi)簡(jiǎn)潔太多太多,但是支持寫(xiě)dao實(shí)現(xiàn)類(lèi)草丧。
自定義mybatis的分析:
其實(shí)mybatis在使用代理dao的方式實(shí)現(xiàn)增刪改查時(shí)只做了兩件事:
1、創(chuàng)建代理對(duì)象
2昌执、在代理對(duì)象中調(diào)用selectList方法