1. 程式人生 > >MyBatis之基礎入門

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