mybatis在開(kāi)發(fā)中作為一個(gè)ORM框架使用的比較多,所謂ORM指的是Object Relation Mapping,直譯過(guò)來(lái)就是對(duì)象關(guān)系映射,這個(gè)映射指的是java中的對(duì)象和數(shù)據(jù)庫(kù)中的記錄的映射,也就是一個(gè)java對(duì)象映射數(shù)據(jù)庫(kù)中的一條記錄。了解了mybatis的背景及作用下面看mybatis的使用及從源碼分析啟動(dòng)過(guò)程。
一、概述
要使用mybatis必須要引入mybatis的jar包,由于我這里需要查看源碼,使用的mybatis源碼作為依賴。首先需要下載源碼,可執(zhí)行從github上下載,mybatis下載下來(lái)是maven工程,按照maven導(dǎo)入的方式進(jìn)行導(dǎo)入即可,詳細(xì)的步驟在這里不在贅述。
引入了mybatis的依賴便可以開(kāi)發(fā)mybatis的程序,我這里使用的源碼版本為:3-3.4.x版本。
1、核心配置文件
mybatis核心配置文件,一般命名為mybatis-config.xml,說(shuō)是核心配置文件一點(diǎn)也不錯(cuò),這個(gè)文件包含了使用mybatis的時(shí)候的所有配置,只有正確加載了此文件,mybatis才可正常工作。下面是mybatis-config.xml文件,
<?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> <settings> <!-- 設(shè)置日志輸出為L(zhǎng)OG4J --> <setting name="logImpl" value="LOG4J" /> <!--將以下畫(huà)線方式命名的數(shù)據(jù)庫(kù)列映射到 Java 對(duì)象的駝峰式命名屬性中--> <setting name= "mapUnderscoreToCamelCase" value="true" /> </settings> <!--簡(jiǎn)化類(lèi)命名空間 --> <typeAliases> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/test" /> <property name="username" value="user" /> <property name="password" value="user" /> </dataSource> </environment> </environments> <mappers> <!--常規(guī)做法--> <mapper resource="cn/com/mybatis/dao/UserMapper.xml"/> <mapper resource="cn/com/mybatis/dao/MenuMapper.xml"/> <!--第二種做法--> <!-- <package name="cn.com.mybatis.dao"/> --> </mappers></configuration>
上面是一個(gè)mybatis-config.xml文件的實(shí)例,在configuration標(biāo)簽中配置了mappers、settings、environments等標(biāo)簽,這些標(biāo)簽代表的意思及如何解析在后面會(huì)詳細(xì)分析。
這里sql的配置方式有注解和映射文件兩種方式,這里采用映射文件的方式,所以在mybatis-config.xml文件中配置了Mapper文件,下面看UserMapper.xml文件,
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.com.mybatis.dao.UserMapper"> <select id="selectUser" resultType="hashmap"> select * from e_user </select></mapper>
上面的UserMapper.xml只有一個(gè)select標(biāo)簽,另外在mapper標(biāo)簽中配置了namespace屬性,這個(gè)屬性很關(guān)鍵,代表的是一個(gè)應(yīng)映射文件對(duì)應(yīng)的接口。下面看UserMapper接口,
package cn.com.mybatis.dao;import java.util.HashMap;import java.util.List;public interface UserMapper { public List<HashMap> selectUser();}
細(xì)心的讀者會(huì)發(fā)現(xiàn)接口中的方法名和映射文件中的select標(biāo)簽的id是一樣的,沒(méi)錯(cuò)這里必須是一致,必須一一對(duì)應(yīng),至于為什么要保持一致,后面會(huì)通過(guò)源碼分析,并且在一同一個(gè)namespace中不能包含同名的方法,也就是映射文件中的id不允許重復(fù)。
有了上面的這些配置,便可以開(kāi)始mybatis之旅了,下面看下每個(gè)文件的位置,
零基礎(chǔ)學(xué)習(xí)MyBatis,小編推薦深圳達(dá)內(nèi)教育Mybatis視頻教程,通過(guò)本課程的學(xué)習(xí),可以在最短的時(shí)間內(nèi)學(xué)會(huì)使用持久層框架MyBatis,在該視頻中沒(méi)有廢話,都是干貨,該視頻的講解不是學(xué)術(shù)性研究,項(xiàng)目中用什么,這里就講什么,如果您現(xiàn)在項(xiàng)目中馬上要使用MyBatis框架,那么您只需要學(xué)習(xí)完此教程,就可以順利的使用MyBatis開(kāi)發(fā)了。
以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Mybatis源碼解析視頻,手把手帶你實(shí)踐”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。