2、mybatis的基本使用
對(duì)于初學(xué)者,如果進(jìn)行mybatis的學(xué)習(xí)呢?我總結(jié)了幾點(diǎn),會(huì)慢慢的更新出來(lái)。首先大家需要了解mybatis是什么、用mybatis來(lái)做什么、為什么要用mybatis、有什么優(yōu)缺點(diǎn);當(dāng)知道了為什么的時(shí)候就開(kāi)始了解如何用的問(wèn)題,如何使用mybatis、有幾種使用方式、各種方式的優(yōu)缺點(diǎn),在這個(gè)階段也會(huì)學(xué)習(xí)mybatis涉及到的一些標(biāo)簽的用法;當(dāng)知道了基礎(chǔ)用法之后,就開(kāi)始接觸一些高級(jí)的用法,例如動(dòng)態(tài)sql的使用、mybatis的緩存使用等;至此,在實(shí)戰(zhàn)項(xiàng)目中使用mybatis進(jìn)行開(kāi)發(fā)已經(jīng)沒(méi)有問(wèn)題了。
接下來(lái)就開(kāi)始深入的研究一下mybatis這個(gè)持久層的框架,在純技術(shù)的方面進(jìn)行研究,提高自己的能力。首先,大家需要了解一下mybatis的整體技術(shù)架構(gòu)和工作原理;接下來(lái),就開(kāi)始了解一下mybatis各大核心組件的具體功能及其工作原理。至此,算是對(duì)mybatis的原理簡(jiǎn)單的了解一下了,由于博主的能力有限,因此對(duì)于mybatis的框架技術(shù)研究也就到這里算結(jié)束了。
最后會(huì)了解一些其他的東西,例如:mybatis的逆向工程使用、如何開(kāi)發(fā)一個(gè)mybatis插件,在這里會(huì)介紹一下mybatis的分頁(yè)實(shí)現(xiàn)等。
至此,mybatis也算是入門(mén)了,出去就可以和別人說(shuō),你稍微了解mybatis框架,對(duì)其也多少有一點(diǎn)自己的理解和看法了。
目錄
1、mybatis整體使用步驟
2、針對(duì)具體的數(shù)據(jù)操作上,mybatis 有兩種處理方式
3、實(shí)際操作,如何從0開(kāi)始使用mybatis
3、1 創(chuàng)建maven項(xiàng)目,添加mybatis依賴(lài)和mysql驅(qū)動(dòng)
3、2 創(chuàng)建mybatis全局配置文件mybatis-config.xml,添加數(shù)據(jù)庫(kù)配置信息
3、3?整體上使用mybatis的代碼實(shí)現(xiàn)
?4、數(shù)據(jù)處理上的具體實(shí)現(xiàn)方式
4、1?通過(guò)直接調(diào)用API的方式使用
4、2?通過(guò)接口式編程方式使用
這一節(jié)介紹一下mybatis的基本使用,僅僅停留在使用層面。
1、mybatis整體使用步驟
? ? ? ? 1)根據(jù)mybatis的全局配置文件構(gòu)建對(duì)應(yīng)的SqlSessionFactory;
? ? ? ? 2)通過(guò)SqlSessionFactory創(chuàng)建對(duì)應(yīng)的SqlSession;
? ? ? ? 3)通過(guò)SqlSession進(jìn)行接下來(lái)的與數(shù)據(jù)庫(kù)具體的操作動(dòng)作;
? ? ? ? 4)SqlSession就是和數(shù)據(jù)庫(kù)的一次對(duì)話,使用完之后需要關(guān)閉。
2、針對(duì)具體的數(shù)據(jù)操作上,mybatis 有兩種處理方式
? ? ? ? 1)創(chuàng)建sql映射的xml文件,之后通過(guò)SqlSession直接調(diào)用映射文件中聲明的對(duì)應(yīng)的sql。
? ? ? ? 2)創(chuàng)建一個(gè)接口,仍然需要使用xml,xml的命名空間必須是接口的全路徑名,之后可以通過(guò)SqlSession獲取接口對(duì)應(yīng)的代理對(duì)象,之后通過(guò)代理對(duì)象進(jìn)行數(shù)據(jù)的操作。
3、實(shí)際操作,如何從0開(kāi)始使用mybatis
3、1 創(chuàng)建maven項(xiàng)目,添加mybatis依賴(lài)和mysql驅(qū)動(dòng)
<dependencies><!-- DataBase數(shù)據(jù)庫(kù)連接 mysql包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!-- 引入mybatis依賴(lài)包 --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency></dependencies>3、2 創(chuàng)建mybatis全局配置文件mybatis-config.xml,添加數(shù)據(jù)庫(kù)配置信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="db.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><mapper resource="com/app/test/mapper/UserMapper.xml"/></mappers> </configuration><!-- ----這里通過(guò)引入properties文件的方式設(shè)置,peoperties文件內(nèi)容如下----------- -->driver = com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT username = root password = *******?此配置文件放在資源類(lèi)路徑下,如下:
??
3、3?整體上使用mybatis的代碼實(shí)現(xiàn)
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據(jù)配置文件構(gòu)建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過(guò)SqlSession進(jìn)行接下來(lái)的數(shù)據(jù)處理操作 // 此處是偽代碼,具體實(shí)現(xiàn)在第4部分詳細(xì)說(shuō)明// 關(guān)閉 SqlSession sqlSession.close();?4、數(shù)據(jù)處理上的具體實(shí)現(xiàn)方式
接下來(lái)以獲取數(shù)據(jù)表oa_user 中的id 為5的user信息來(lái)進(jìn)行代碼實(shí)現(xiàn),有兩種實(shí)現(xiàn)方式,具體如下:
4、1?通過(guò)直接調(diào)用API的方式使用
?1)創(chuàng)建sql映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.app.test.mapper.UserMapper"><select id="selectUser" parameterType="Long" resultType="com.app.test.mapper.User">select * from oa_user where id = #{id}</select> </mapper>?2)使用SqlSession直接調(diào)用API進(jìn)行數(shù)據(jù)處理
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據(jù)配置文件構(gòu)建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過(guò)SqlSession進(jìn)行接下來(lái)的數(shù)據(jù)處理操作 User user = (User) sqlSession.selectOne("com.app.test.mapper.UserMapper.selectUser", 5L); System.out.println(user);注:如果無(wú)法查詢(xún)到xml文件時(shí),需要在pom.xml中顯式的聲明一下資源路徑,如下:
<build><resources><resource><directory>src/main/java</directory><filtering>false</filtering><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources> </build>4、2?通過(guò)接口式編程方式使用
1)創(chuàng)建sql映射文件,如 4、1 中操作,但需注意,sql映射文件中的命名空間namespace必須是其對(duì)應(yīng)的接口的全路徑名
2)創(chuàng)建接口
3)使用SqlSession獲取接口的代理對(duì)象,繼而數(shù)據(jù)處理
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據(jù)配置文件構(gòu)建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過(guò)SqlSession進(jìn)行接下來(lái)的數(shù)據(jù)處理操作 UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.selectUser(5L);// 關(guān)閉 SqlSession sqlSession.close();??
mybatis的基本使用先寫(xiě)到這里。
總結(jié)
以上是生活随笔為你收集整理的2、mybatis的基本使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 水星路由器怎么修改密码水星无线网路由器如
- 下一篇: 4、mybatis通过配置类Config