2、mybatis的基本使用
對于初學者,如果進行mybatis的學習呢?我總結了幾點,會慢慢的更新出來。首先大家需要了解mybatis是什么、用mybatis來做什么、為什么要用mybatis、有什么優缺點;當知道了為什么的時候就開始了解如何用的問題,如何使用mybatis、有幾種使用方式、各種方式的優缺點,在這個階段也會學習mybatis涉及到的一些標簽的用法;當知道了基礎用法之后,就開始接觸一些高級的用法,例如動態sql的使用、mybatis的緩存使用等;至此,在實戰項目中使用mybatis進行開發已經沒有問題了。
接下來就開始深入的研究一下mybatis這個持久層的框架,在純技術的方面進行研究,提高自己的能力。首先,大家需要了解一下mybatis的整體技術架構和工作原理;接下來,就開始了解一下mybatis各大核心組件的具體功能及其工作原理。至此,算是對mybatis的原理簡單的了解一下了,由于博主的能力有限,因此對于mybatis的框架技術研究也就到這里算結束了。
最后會了解一些其他的東西,例如:mybatis的逆向工程使用、如何開發一個mybatis插件,在這里會介紹一下mybatis的分頁實現等。
至此,mybatis也算是入門了,出去就可以和別人說,你稍微了解mybatis框架,對其也多少有一點自己的理解和看法了。
目錄
1、mybatis整體使用步驟
2、針對具體的數據操作上,mybatis 有兩種處理方式
3、實際操作,如何從0開始使用mybatis
3、1 創建maven項目,添加mybatis依賴和mysql驅動
3、2 創建mybatis全局配置文件mybatis-config.xml,添加數據庫配置信息
3、3?整體上使用mybatis的代碼實現
?4、數據處理上的具體實現方式
4、1?通過直接調用API的方式使用
4、2?通過接口式編程方式使用
這一節介紹一下mybatis的基本使用,僅僅停留在使用層面。
1、mybatis整體使用步驟
? ? ? ? 1)根據mybatis的全局配置文件構建對應的SqlSessionFactory;
? ? ? ? 2)通過SqlSessionFactory創建對應的SqlSession;
? ? ? ? 3)通過SqlSession進行接下來的與數據庫具體的操作動作;
? ? ? ? 4)SqlSession就是和數據庫的一次對話,使用完之后需要關閉。
2、針對具體的數據操作上,mybatis 有兩種處理方式
? ? ? ? 1)創建sql映射的xml文件,之后通過SqlSession直接調用映射文件中聲明的對應的sql。
? ? ? ? 2)創建一個接口,仍然需要使用xml,xml的命名空間必須是接口的全路徑名,之后可以通過SqlSession獲取接口對應的代理對象,之后通過代理對象進行數據的操作。
3、實際操作,如何從0開始使用mybatis
3、1 創建maven項目,添加mybatis依賴和mysql驅動
<dependencies><!-- DataBase數據庫連接 mysql包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!-- 引入mybatis依賴包 --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency></dependencies>3、2 創建mybatis全局配置文件mybatis-config.xml,添加數據庫配置信息
<?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><!-- ----這里通過引入properties文件的方式設置,peoperties文件內容如下----------- -->driver = com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT username = root password = *******?此配置文件放在資源類路徑下,如下:
??
3、3?整體上使用mybatis的代碼實現
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據配置文件構建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過SqlSession進行接下來的數據處理操作 // 此處是偽代碼,具體實現在第4部分詳細說明// 關閉 SqlSession sqlSession.close();?4、數據處理上的具體實現方式
接下來以獲取數據表oa_user 中的id 為5的user信息來進行代碼實現,有兩種實現方式,具體如下:
4、1?通過直接調用API的方式使用
?1)創建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直接調用API進行數據處理
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據配置文件構建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過SqlSession進行接下來的數據處理操作 User user = (User) sqlSession.selectOne("com.app.test.mapper.UserMapper.selectUser", 5L); System.out.println(user);注:如果無法查詢到xml文件時,需要在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?通過接口式編程方式使用
1)創建sql映射文件,如 4、1 中操作,但需注意,sql映射文件中的命名空間namespace必須是其對應的接口的全路徑名
2)創建接口
3)使用SqlSession獲取接口的代理對象,繼而數據處理
// 讀取到配置文件信息 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");// 根據配置文件構建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);// 獲取 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession();// 通過SqlSession進行接下來的數據處理操作 UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.selectUser(5L);// 關閉 SqlSession sqlSession.close();??
mybatis的基本使用先寫到這里。
總結
以上是生活随笔為你收集整理的2、mybatis的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水星路由器怎么修改密码水星无线网路由器如
- 下一篇: 4、mybatis通过配置类Config