好程式設計師Java學習路線分享MyBatis之基本使用
好程式設計師Java 學習路線分享 MyBatis 之基本使用, 前言 , 本章我們將開始學習一個非常優秀的ORM (物件關係對映)框架: MyBatis ,它是目前企業中使用最多的資料庫框架。
MyBatis 簡介
MyBatis 是一款優秀的 持久層框架,它支援定製化 SQL 、儲存過程以及高階對映。 MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。 MyBatis 可以使用簡單的 XML 或註解來配置和對映原生型別、介面和 Java 的 POJO ( Plain Old Java Objects ,普通老式 Java 物件)為資料庫中的記錄。
MyBatis 的優點有:
1 )代替 JDBC 完成 CRUD ,效率高
2 )上手容易,配置靈活
3 )是目前公司主流的 ORM (物件關係對映)框架
MyBatis 的基本配置
這裡我們使用Maven 構建專案,
首先需要匯入MyBatis 和 MySQL 驅動的依賴
然後再新增配置檔案,MyBat is 的配置檔案分為兩種:
1 、 MyBatis 框架的總體配置檔案
2 、 MyBatis 資料庫對映檔案
MyBatis 配置檔案
我們可以在專案的resources 目錄中新增配置檔案: mybatis-config.xml
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
3. "
4. <configuration>
5. <!--environments 代表配置環境集合,此標籤中可以有多個 environment ,
6. default 屬性是選擇其中一個環境作為預設的配置環境 -->
7. <environments default="develop">
8. <environment id="develop">
9. <!-- 這裡配置事務管理器為 JDBC 型別 -->
10. <transactionManager type="JDBC"/>
11. <!-- 這裡配置資料來源, POOLED 代表連線池型別的資料來源 -->
12. <dataSource type="POOLED">
13. <!-- 這裡是常用的 4 個資料庫配置:驅動、 URL 、賬號、密碼 -->
14. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
15. <property name="url" value="jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8"/>
16. <property name="username" value="root"/>
17. <property name="password" value="123456"/>
18. </dataSource>
19. </environment>
20. </environments>
21. <!-- 這裡是配置資料庫對映檔案的路徑,如果有對映檔案就配置到這裡 -->
22. <mappers>
23. <mapper resource="mappers/userMapper.xml"/>
24. </mappers>
25. </configuration>
對映檔案
MyBatis 能實現透過 Java 物件來運算元據庫,那麼如何透過 Java 物件的操作來查詢和修改資料庫的表呢? MyBatis 透過對映檔案來配置資料的 SQL 操作,將 Java 物件的方法對映為具體的 SQL 語句。
這裡我們先編寫一個UserDAO 介面
26. package com.qianfeng.mybatis.dao;
27. public interface UserDAO
28. {
29. List<User> selectAll();
30. void insert(User user);
31. }
接下來我們來配置對映檔案實現User 表的查詢和插入操作:
在resources 下建立 mappers 目錄,然後建立對映檔案: userMapper.xml
32. <?xml version="1.0" encoding="UTF-8"?>
33. <!DOCTYPE mapper
34. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
35. "
36. <!-- namespace 配置對應的 Java 介面 -->
37. <mapper namespace="com.qianfeng.mybatis.dao.UserDAO">
38. ...
39. </mapper>
mapper 中可以配置四種標籤:
1 ) <insert> 配置 insert 語句
2 ) <update> 配置 update 語句
3 ) <delete> 配置 delete 語句
4 ) <select> 配置 select 語句
這四種標籤的常用屬性有:
1) id 對應DAO 介面中的方法名
2 ) parameterType 對應方法的引數型別
3 ) returnType
對應方法的返回值型別,如:User (表的欄位名和類的屬性名一樣)
4) returnMap
對應方法的返回值型別對映,用於表的欄位名和類的屬性名不一樣的情況,實現欄位名和屬性的對映關係
這裡是insert 配置示例
40. <insert id="insert" parameterType="com.qianfeng.mybatis.entity.User">
41. insert into tb_user(u_name,u_password,u_realname,u_gender,u_age,u_img)
42. values(#{name},#{password},#{realname},#{gender},#{age},#{img})
43. </insert>
其中#{...} 中包含的是 User 物件的屬性名稱
select 配置示例
44. <resultMap id="userMap" type="com.qianfeng.mybatis.entity.User">
45. <id property="id" column="u_id"></id>
46. <result property="name" column="u_name"></result>
47. <result property="password" column="u_password"></result>
48. <result property="realname" column="u_realname"></result>
49. <result property="gender" column="u_gender"></result>
50. <result property="age" column="u_age"></result>
51. <result property="img" column="u_img"></result>
52. </resultMap>
53. <select id="selectAll" resultMap="userMap">
54. select * from tb_user
55. </select>
returnMap 配置的查詢語句返回的物件與資料庫表的對映, id 是對映名, type 是對應的 Java 型別
其中子標籤id 是配置表的主鍵,屬性 id 是 Java 類的屬性名, column 是表的欄位名,還有 javaType 和 jdbcType 屬性可以配置 Java 的型別和 Jdbc 資料型別,這兩個這裡可以省略。
result 是配置除主鍵外的一般列
MyBatis 的使用方法
主要步驟:
56. 1 )讀取配置檔案,建立 SqlSessionFactory
57. SqlSessionFactory factory =
58. new SqlSessionFactoryBuilder().build(
59. Resources.getResourceAsStream("mybatis-config.xml"));
60. 2 )開啟資料庫會話 Session
61. SqlSession sqlSession = factory.openSession();
62. 3 )獲得 DAO 介面的代理物件
63. UserDAO mapper = sqlSession.getMapper(UserDAO.class);
64. 4 )執行 CRUD
65. mapper.insert(...);
66. 5) 提交事務
67. sqlSession.commit();
68. 6) 關閉會話
69. sqlSession.close();
總結
本章我們學習了MyBatis的基本配置,以及對映檔案的寫法,也掌握了MyBatis的基本操作方法,MyBatis還有很多強大的特性,我們會在後面學習到。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2655757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java學習路線分享MyBatis之Spring整合程式設計師JavaMyBatisSpring
- 好程式設計師Java學習路線分享mybatis對映程式設計師JavaMyBatis
- 好程式設計師Java學習路線分享MyBatis之關聯查詢程式設計師JavaMyBatis
- 好程式設計師Java學習路線之SpringMVC之基本配置程式設計師JavaSpringMVC
- 好程式設計師Java學習路線分享MyBatis之執行緒最佳化程式設計師JavaMyBatis執行緒
- 好程式設計師Java學習路線分享SpringCloud程式設計師JavaSpringGCCloud
- 好程式設計師Java學習路線分享SpringMVC之MVC概述程式設計師JavaSpringMVC
- 好程式設計師Java學習路線分享原生Ajax的使用程式設計師Java
- 好程式設計師Java學習路線之集程式設計師Java
- 好程式設計師Java學習路線分享JavaScript基本資料型別分析程式設計師JavaScript資料型別
- 好程式設計師Java學習路線分享SpringMVC之請求和響應程式設計師JavaSpringMVC
- 好程式設計師Java學習路線分享Java弱引用的理解與使用程式設計師Java
- 好程式設計師Java學習路線分享Java框架怎麼搭建程式設計師Java框架
- 好程式設計師Java學習路線分享Java-String常用方法程式設計師Java
- 好程式設計師Java學習路線分享finalize()方法詳解程式設計師Java
- 好程式設計師Java學習路線分享JVM相關概念程式設計師JavaJVM
- 好程式設計師Java學習路線分享Redis快速入門程式設計師JavaRedis
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- 好程式設計師Java學習路線分享Java面試題之載入機制程式設計師Java面試題
- 好程式設計師Java學習路線分享Java中的位移運算程式設計師Java
- 好程式設計師Java學習路線分享三大特性之多型程式設計師Java多型
- 好程式設計師Java學習路線分享Dubbo架構介紹程式設計師Java架構
- 好程式設計師Java學習路線分享多執行緒概念程式設計師Java執行緒
- 好程式設計師Java學習路線分享MySQL目錄結構程式設計師JavaMySql
- 好程式設計師Java學習路線JSP物件程式設計師JavaJS物件
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師Java學習路線分享Java案例-封裝JDBC工具類程式設計師Java封裝JDBC
- 好程式設計師Java學習路線分享怎麼理解Java物件導向程式設計師Java物件
- 好程式設計師Java學習路線之Spring框架之動態代理程式設計師JavaSpring框架
- 好程式設計師Java學習路線之MySQL的執行計劃程式設計師JavaMySql
- 好程式設計師Java學習路線分享如何處理中文引數程式設計師Java
- 好程式設計師Java學習路線分享JVM類載入機制程式設計師JavaJVM
- 好程式設計師Java學習路線分享Spring常見面試題程式設計師JavaSpring面試題
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師Java學習路線分享5分鐘瞭解計數排序程式設計師Java排序
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料