MyBatis之基礎入門
Mybatis介紹
MyBatis是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架。MyBatis消除了幾乎所有的JDBC程式碼和引數的手工設定以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或註解用於配置和原始對映,將介面和Java的POJO(Plain Old Java Objects,普通的Java物件)對映成資料庫中的記錄。
二、mybatis快速入門
2.1、準備開發環境
1、建立測試專案,普通java專案或者是JavaWeb專案均可,如下圖所示:
2、新增相應的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驅動包】
mysql-connector-java-5.1.7-bin.jar
3、建立資料庫和表,針對MySQL資料庫
SQL指令碼如下:
1 create database mybatis; 2 use mybatis; 3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); 4 INSERT INTO users(NAME, age) VALUES('孤傲蒼狼', 27); 5 INSERT INTO users(NAME, age) VALUES('白虎神皇', 27);
將SQL指令碼在MySQL資料庫中執行,完成建立資料庫和表的操作,如下:
到此,前期的開發環境準備工作全部完成。
2.2、使用MyBatis查詢表中的資料
1、新增Mybatis的配置檔案conf.xml
在src目錄下建立一個conf.xml檔案,如下圖所示:
conf.xml檔案中的內容如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 <environments default="development"> 5 <environment id="development"> 6 <transactionManager type="JDBC" /> 7 <!-- 配置資料庫連線資訊 --> 8 <dataSource type="POOLED"> 9 <property name="driver" value="com.mysql.jdbc.Driver" /> 10 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> 11 <property name="username" value="root" /> 12 <property name="password" value="XDP" /> 13 </dataSource> 14 </environment> 15 </environments> 16 17 </configuration>
2、定義表所對應的實體類,如下圖所示:
User類的程式碼如下:
1 package me.gacl.domain; 2 3 /** 4 * @author gacl 5 * users表所對應的實體類 6 */ 7 public class User { 8 9 //實體類的屬性和表的欄位名稱一一對應 10 private int id; 11 private String name; 12 private int age; 13 14 public int getId() { 15 return id; 16 } 17 18 public void setId(int id) { 19 this.id = id; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29 30 public int getAge() { 31 return age; 32 } 33 34 public void setAge(int age) { 35 this.age = age; 36 } 37 38 @Override 39 public String toString() { 40 return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; 41 } 42 }
3、定義操作users表的sql對映檔案userMapper.xml
建立一個me.gacl.mapping包,專門用於存放sql對映檔案,在包中建立一個userMapper.xml檔案,如下圖所示:
userMapper.xml檔案的內容如下:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3 <!-- 為這個mapper指定一個唯一的namespace,namespace的值習慣上設定成包名+sql對映檔名,這樣就能夠保證namespace的值是唯一的 4 例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml檔案去除字尾) 5 --> 6 <mapper namespace="me.gacl.mapping.userMapper"> 7 <!-- 在select標籤中編寫查詢的SQL語句, 設定select標籤的id屬性為getUser,id屬性值必須是唯一的,不能夠重複 8 使用parameterType屬性指明查詢時使用的引數型別,resultType屬性指明查詢返回的結果集型別 9 resultType="me.gacl.domain.User"就表示將查詢結果封裝成一個User類的物件返回 10 User類就是users表所對應的實體類 11 --> 12 <!-- 13 根據id查詢得到一個user物件 14 --> 15 <select id="getUser" parameterType="int" 16 resultType="me.gacl.domain.User"> 17 select * from users where id=#{id} 18 </select> 19 </mapper>
4、在conf.xml檔案中註冊userMapper.xml檔案
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 <environments default="development"> 5 <environment id="development"> 6 <transactionManager type="JDBC" /> 7 <!-- 配置資料庫連線資訊 --> 8 <dataSource type="POOLED"> 9 <property name="driver" value="com.mysql.jdbc.Driver" /> 10 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> 11 <property name="username" value="root" /> 12 <property name="password" value="XDP" /> 13 </dataSource> 14 </environment> 15 </environments> 16 17 <mappers> 18 <!-- 註冊userMapper.xml檔案, 19 userMapper.xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml--> 20 <mapper resource="me/gacl/mapping/userMapper.xml"/> 21 </mappers> 22 23 </configuration>
5、編寫測試程式碼:執行定義的select語句
建立一個Test1類,編寫如下的測試程式碼:
package me.gacl.test; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import me.gacl.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test1 { public static void main(String[] args) throws IOException { //mybatis的配置檔案 String resource = "conf.xml"; //使用類載入器載入mybatis的配置檔案(它也載入關聯的對映檔案) InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource); //構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //使用MyBatis提供的Resources類載入mybatis的配置檔案(它也載入關聯的對映檔案) //Reader reader = Resources.getResourceAsReader(resource); //構建sqlSession的工廠 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //建立能執行對映檔案中sql的sqlSession SqlSession session = sessionFactory.openSession(); /** * 對映sql的標識字串, * me.gacl.mapping.userMapper是userMapper.xml檔案中mapper標籤的namespace屬性的值, * getUser是select標籤的id屬性值,通過select標籤的id屬性值就可以找到要執行的SQL */ String statement = "me.gacl.mapping.userMapper.getUser";//對映sql的標識字串 //執行查詢返回一個唯一user物件的sql User user = session.selectOne(statement, 1); System.out.println(user); } }
執行結果如下:
可以看到,資料庫中的記錄已經成功查詢出來了。
相關推薦
MyBatis之基礎入門
Mybatis介紹 MyBatis是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架。MyBatis消除了幾乎所有的JDBC程式碼和引數的手工設定以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或註解用於配置和原始對映,將介面和Java的
T4模版引擎之基礎入門
如何 inf 添加引用 研究 變量 sta word lis ports 額,T4好陌生的名字,和NuGet一樣很悲催,不為世人所熟知,卻又在背後默默無聞的奉獻著,直到現在我們項目組的人除了我之外,其它人還是對其豪無興趣,基本上是連看一眼都懶得看
mybatis入門(一)之基礎安裝
安裝 要使用 MyBatis, 只需將 mybatis-x.x.x.jar 檔案置於 classpath 中即可。 如果使用 Maven 來構建專案,則需將下面的 dependency 程式碼置於 pom.xml 檔案中: <dependency>
Qt入門之基礎篇 ( 二 ) :Qt項目建立、編譯、運行和發布過程解析
qt 5 對話 讓我 進度 qmake ctr deploy 設定 設置 轉載請註明出處:CN_Simo。 題解: 本篇內容主講Qt應用從創建到發布的整個過程,旨在幫助讀者能夠快速走進Qt的世界。 本來計劃是講解Qt源碼靜態編譯,如此的話讀者可能並不能清楚地知
Qt入門之基礎篇 ( 一 ) :Qt4及Qt5的下載與安裝
mingw ins 第3版 點擊 調試 但我 關系 構建 eas 轉載請註明出處:CN_Simo. 導語: Qt是一個跨平臺的C++圖形界面應用程序框架。它提供給開發者建立圖形用戶界面所需的功能,廣泛用於開發GUI程序,也可用於開發非GUI程序。Qt很容易擴展,並
EasyUI基礎入門之Pagination(分頁)
比例 tab 由於 名稱 script idt 分隔符 jquery show 前言 對於一些企業級的應用來說(非站點),頁面上最為基本的內容也就是表格和form了。對於類似於ERP這類系統來說數據記錄比較大,前端表格展示的時候必需得實現分頁功能了。恰巧
Python學習之路 - 基礎入門
rdquo 下載 asd 64位 pyqt 最大 視頻網站 必備 真的 本系列文章使用的Python版本為3.6.2 使用開發工具為Pycharm2017 一、Python介紹 Python的創始人為吉多·範羅蘇姆(Guido van Rossum
python學習_day58_前端基礎之jQuery入門1
基本 兼容多瀏覽器 python jquery入門 選擇 eight ges span 偶數 一、jQuery介紹 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。使用戶能夠更方便地處理HTML Document、Events、實現動畫效果、方便地進行
前端基礎之jQuery入門 01
隔行變色 三方 sel () 層級選擇器 aps not 切換 jquer jQuery介紹 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。 jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果、方便地進行Ajax交
08-Linux基礎入門(六)-文件和目錄的屬性及權限之文件類型、文件擴展名及文件權限基礎
ins tmp first 串口 .py 都是 公眾平臺 cond .com 一、Linux中的文件類型在Linux系統中,可以說一切(包括目錄、普通文件、設備文件等)皆為文件。文件類型包含有普通文件、目錄、字符設備文件、設備文件、符號鏈接文件、管道文件等等,當執行ls
10-Linux基礎入門(八)-文件和目錄的屬性及權限之用戶與組和時間戳基礎
log 信息 p s center 新浪 shell 使用 自己的 用戶配置 一、概述Linux是一個多用戶、多任務的操作系統,對於Linux系統來說,由於角色不同,權限和所完成的任務也不同。用戶的角色是通過UID和GID識別的,用戶的UID就相當於我們的身份證一樣,用戶名
MyBatis 框架系列之基礎初始
trace 使用 下一個 utf statement 公眾號 全局配置 註冊 例如 1、什麽是 MyBatis MyBatis 本是 apache 的一個開源項目 iBatis,後改名為 MyBatis,它 是一個優秀的持久層框架,對 jdbc 的操作數據庫的過程進行封裝
MyBatis 框架之快速入門程序
用戶 框架 oot utf-8 文章 puts inter RM sco 一、使用 IDEA 快速創建 Maven 項目 關於如何快速創建 Maven 項目,這個可以參考下面這篇文章: Maven 項目管理工具基礎入門系列(一) 二、快速配置 MyBatis 依賴 jar
Redis 入門之基礎
我們 -- git 數量 stack ast www 基礎 技術分享 1.安裝 redis-windows redis服務端下載 redis客戶端下載 redis官網 redis中文網 1.1 Window下安裝 redis-server.exe redis.windo
Web前端開發之HTML+CSS基礎入門(框架)
AR 網頁 html 表單提交 pos 部分加載 selected area pin HTML框架詳解與框架布局? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1)什麽是框架 框架將瀏覽器劃分成不同的部分,每一部分加載不同的網頁,實現在同一
Web前端開發之HTML+CSS基礎入門(使用CSS樣式的方式)
AD 層疊樣 b前端開發 col In 基於 允許 ML 語言 1) HTML<!DOCTYPE> 聲明標簽 a.定義和用法 <!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標簽之前。 <!DOCTYP
JAVA攻城獅培養計劃之Java零基礎入門
集合 輸出流 java工具 基礎語 百度網 高效率 字符 包裝類 利用 百度網盤下載 步驟一、Java基礎知識 基礎語法、循環、數組、方法,這些知識是你進入研發世界的必備技能 步驟二、面向對象繼承、封裝、多態、玩轉面向對象,你一定聽說過“面向對象”,這是理解編程這件事最重要
Linux基礎入門之單用戶密碼修改03
分享圖片 基礎 .com log term color chroot bin alt 1.啟動系統,並在選擇第二個選項,按下e鍵進入編輯模式2.在Linux16 /vmlinuz的行末 編輯添加init=/sysroot/bin/sh 3.按Ctrl +x 啟動shell4
Java基礎入門五)之方法以及遞歸算法
存在 兼容 直接 elf 推薦 1.8 可讀性 do..while 方法體 一.方法 1.1 什麽是方法 java中的方法類似於其他語言中的函數 是一段用來完成特定功能的代碼片段 1.2 為什麽要聲明方法
Scala學習之路----基礎入門
語句 計算 sum 自動創建 lse 鍵值 name ctrl fir 一、Scala解釋器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循環) scala解釋器也被稱為REPL,會快速編譯sc