MyBatis簡單使用

来源:http://www.cnblogs.com/zhouguanglin/archive/2017/10/09/7643603.html
-Advertisement-
Play Games

MyBatis MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將介面和 Java 的 POJOs(Plain Old ...


MyBatis


 

  MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。

搭建MyBatis


 

第一步:先創建一個項目,平常的Java project就行,項目結構先看看

第二步:導入相關的jar包(可以上官網下,開源的):

  • mybatis-3.4.4.jar  MyBatis的jar包
  • mysql-connector-java-5.1.13-bin.jar  Mysql的jar包

第三步:編寫一個配置文件。是一個XML文件mybatis-config.xml,位置放在src下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mobile"/>
        <property name="username" value="zhou"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/entity/UserMapper.xml"/>
  </mappers>
</configuration>

有關MyBatis中xml文件的屬性說明:

<!-- 配置文件的根元素 -->  
<configuration>  
    <!-- 屬性:定義配置外在化 -->  
    <properties></properties>  
    <!-- 設置:定義mybatis的一些全局性設置 -->  
    <settings>  
       <!-- 具體的參數名和參數值 -->  
       <setting name="" value=""/>   
    </settings>  
    <!-- 類型名稱:為一些類定義別名 -->  
    <typeAliases></typeAliases>  
    <!-- 類型處理器:定義Java類型與資料庫中的數據類型之間的轉換關係 -->  
    <typeHandlers></typeHandlers>  
    <!-- 對象工廠 -->  
    <objectFactory type=""></objectFactory>  
    <!-- 插件:mybatis的插件,插件可以修改mybatis的內部運行規則 -->  
    <plugins>  
       <plugin interceptor=""></plugin>  
    </plugins>  
    <!-- 環境:配置mybatis的環境 -->  
    <environments default="">  
       <!-- 環境變數:可以配置多個環境變數,比如使用多數據源時,就需要配置多個環境變數 -->  
       <environment id="">  
          <!-- 事務管理器 -->  
          <transactionManager type=""></transactionManager>  
          <!-- 數據源 -->  
          <dataSource type=""></dataSource>  
       </environment>   
    </environments>  
    <!-- 資料庫廠商標識 -->  
    <databaseIdProvider type=""></databaseIdProvider>  
    <!-- 映射器:指定映射文件或者映射類 -->  
    <mappers></mappers>  
</configuration> 

第四步:創建實體類,這個不用多說了,正常創建就ok

第五步:創建實體類的mapper映射xml文件,位置跟實體類同級,是對實體類的一些操作,在我認為就是配置了sql語句的趕腳,再去方法里調一下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace可以不加xml尾碼 -->
<mapper namespace="com.entity.UserMapper">
<!-- 單個對象查詢 -->
  <select id="selectUser" parameterType="int"  resultType="com.entity.User">
    select * from user where id = #{id}
  </select>
  <!--查詢列表  -->
  <resultMap id="userList" type="com.entity.User">
  <result property="id" column="id" />
  <result property="username" column="username"/>
  <result property="password" column="password"/>
</resultMap>
  <select id="selectAll"  resultMap="userList">
    select * from user
  </select>
  <!--插入數據  -->
   <insert id="insert"  >
    insert into User (username,password) values(#{username},#{password})
  </insert>
  <!--更新數據  -->
<update id="update">
  update User set username = #{username},password = #{password} where id = #{id}
</update>
<!--刪除數據  -->
<delete id="delete">
  delete from User where id = #{id}
</delete>
</mapper>

實體類映射的屬性說明:先看前幾個後面的遇到再說,百度就可以

第六步:編寫一下測試類,測試一下你搭建的是否有用

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.entity.User;
/**
 * 
 * @author 堅持到你GL
 *
 */
public class Test {
    private static SqlSession session=null;
    public static SqlSession mySession() {
        //你的MyBatis的配置文件地址
        String resource = "mybatis-config.xml";
        InputStream inputStream=null;
        try {
            //IO解析xml文件
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //創建一個SqlSessionFactoryBuilder對象,獲得SqlSessionFactory 的實例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //開啟SqlSession
         session=sqlSessionFactory.openSession();
        return session;
    }
    private static void select(){
        //selectUser是實體類映射文件的中設置的id
        User user=mySession().selectOne("selectUser",2);
        System.out.println(user);
    }
    private static void selectAll() {
        List<User> list=mySession().selectList("selectAll");
        for (User user : list) {
            System.out.println(user);
        }
    }
    private static void insert() {
        User insertuser=new User("zhou","123456");
        mySession().insert("insert",insertuser);
        session.commit();
    }
    private static void update() {
        User updateuser =new User(9,"admin","admin");
        mySession().update("update", updateuser);
        session.commit();
    }
    private static void delect() {
        mySession().delete("delete", 10);
        session.commit();
    }
    public static void main(String[] args) {
    
    selectAll();
    }
}

小項目微服務簡單的開發,運用MyBatis是非常不錯的選擇

 

 

     【版本聲明】本文為博主原創文章,轉載請註明出處

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 去掉字元串間的各種符號 String str=" [ abc/abc?u*t:e這個事情rt<enter>open();‘;|c;np\"ftrd nihao 你好 ]"; String str2=str.replaceAll("[^a-zA-Z_\u4e00-\u9fa5]", ""); Syst ...
  • 題目背景 這是一道ST表經典題——靜態區間最大值 請註意最大數據時限只有0.8s,數據強度不低,請務必保證你的每次查詢複雜度為 O(1)O(1) 題目描述 給定一個長度為 NN 的數列,和 MM 次詢問,求出每一次詢問的區間內數字的最大值。 輸入輸出格式 輸入格式: 第一行包含兩個整數 N, MN, ...
  • 題目描述 如題,給出一個N次函數,保證在範圍[l,r]記憶體在一點x,使得[l,x]上單調增,[x,r]上單調減。試求出x的值。 輸入輸出格式 輸入格式: 第一行一次包含一個正整數N和兩個實數l、r,含義如題目描述所示。 第二行包含N+1個實數,從高到低依次表示該N次函數各項的繫數。 輸出格式: 輸出 ...
  • java求兩個數中的大數 java中的max函數在Math中 應用如下: int a=34; int b=45; int ans=Math.max(34,45); 那麼ans的值就是45. ...
  • java保留兩位小數4種方法 方法一:String的format方法(推薦) double f = 111231.5585; System.out.println(String.format("%.2f", f)); 方法二:DecimalFormat的format方法 double f = 111 ...
  • Java線程相關概念與原理 1. 相關基本概念 進程:一個記憶體中運行的應用程式。 線程:一個進程可以有多個線程,線程是指進程內部同時做的事情,“同時”僅僅是人的感覺,實際上,CPU進行時間切分,輪換執行各個線程。 並行:多個CPU執行一個程式,是真正的“同時”。 併發:通過CPU調度演算法,輪換執行多 ...
  • 1.將方法調用同方法主體關聯起來被稱為 2.編譯期綁定(靜態)是在程式編譯階段就確定了引用對象的類型 3.運行期綁定(動態綁定)是指在執行期間判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法 4.除了static方法和final方法(private方法屬於final方法),其他所有方法都是 ...
  • 第五章 異常 一、異常概述 概述:異常是在程式的運行過程中所發生的不正常的事件,他會中斷正在運行的程式 二、異常處理 1.關鍵字:try catch finally throw throws 2.Try:把可能出現異常的代碼放入try中 3.Catch:捕捉異常 4.Finally:無論是否有異常, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...