mybatis入門百分百

来源:https://www.cnblogs.com/XSdao/archive/2019/10/11/11656855.html
-Advertisement-
Play Games

今天重新返回來看自己的mybatis,總結了一些更好入門的辦法,下麵用最簡單的方法帶領大家入門。 此處先引入類包的關係圖片 1.構建一個==普通==maven項目 構建好之後向pom.xml添加一下依賴 2.創建資料庫,並創建好實體類 ==切記實體類與資料庫相互對應== 3.創建一個dao ==這裡 ...


今天重新返回來看自己的mybatis,總結了一些更好入門的辦法,下麵用最簡單的方法帶領大家入門。
此處先引入類包的關係圖片
在這裡插入圖片描述

1.構建一個==普通==maven項目

構建好之後向pom.xml添加一下依賴

          <!--打包方式-->
    <packaging>jar</packaging>

    <dependencies>
        <!--引入mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>

        <!--日誌-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--測試-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

2.創建資料庫,並創建好實體類


/**
*@author xiaoxie
*@date
*@return  mybaits 入門
*/
//實體類需要跟表明一致
public class User {
    private Integer id;

    private String username;

    private Date birthday;

    private String sex;

    private String address;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

==切記實體類與資料庫相互對應==

3.創建一個dao

==這裡我們先弄明白最簡單的查詢==

    /**
*@author xiaoxie
*@date
*@return
 * 用戶持久層介面
*/
public interface UserDao {

//    查詢所有
    @Select(select * from user)
    List<User> findAll();

}

4.在resources文件夾下麵建立一個與一個mybatis-Config.xml內容如下

    <?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">
<!--mybatis主配置文件-->
<configuration>
    <!--配置環境-->
    <environments default="mysql">
        <!--配置mysql的環境-->
        <environment id="mysql">
            <!--配置事務類型-->
            <transactionManager type="jdbc"></transactionManager>

            <!--配置數據源   連接池-->
            <dataSource type="POOLED">
                    <!--配置連接資料庫的基本信息-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test1?serverTimezone=GMT%2B8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--映射配置文件地址 映射配置文件是每個dao的配置文件-->
    <mappers>
        <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
    </mappers>
    
    <!--採用註解的方式  應該使用class屬性指定被註解的dao全限定類名-->
    <mappers>
        <mapper class="cn.com.scitc.dao.UserDao"></mapper>
    </mappers>
</configuration>

這裡講解一一下裡面的關係和作用

1.約束文件--可以直接從網上複製粘貼

<?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">
  1. mybatis主配置文件--相當於最外層的一個容器,所有的事務活動都在裡面
<configuration>
xxxxxx
</configuration>
  1. 配置環境 ---相當於啟動的準備
<environments default="mysql">
......xxxxx
</environments>

4.配置mysql的環境 --配置mysql的類型
==註意== environment 的id必須與environments的 defualt相同

<environment id="mysql">
xxxxx
</environment>

5.配置事務類型 --預設為jdbc

                <transactionManager type="jdbc"></transactionManager>

6.配置數據源

 <dataSource type="POOLED">
xxxx常用的url  username  passsword即可

</ <dataSource >

7.映射地址

 <!--映射配置文件地址 映射配置文件是每個dao的配置文件-->
    <mappers>
        <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
    </mappers>
    
    <!--採用註解的方式  應該使用class屬性指定被註解的dao全限定類名-->
    <mappers>
        <mapper class="cn.com.scitc.dao.UserDao"></mapper>
    </mappers>

註意:1.採用xml的格式需要用resources指定映射文件位置

 <mappers>
        <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>
    </mappers>

2.採用註解的方法則用class指定映射文件位置

 <mappers>
        <mapper class="cn.com.scitc.dao.UserDao"></mapper>
    </mappers>

4.在resources下麵創建與類相同的dao包,併在dao包下麵創建映射文件UserDaoMapper.xml

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace dao許可權類名===別名-->
<mapper namespace="cn.com.scitc.dao.UserDao">
    <!--配置查詢所有-->
    <select id="findAll" resultType="cn.com.scitc.domian.User" >
      select * from user
    </select>
</mapper>

註意:
1.約束文件--可以直接從網上複製粘貼
2.mapper文件都以mapper進行配置 namespaces是指定我們的dao層中的具體介面,有了它,就能夠識別是哪一個dao被調用。
3.接下來就是寫出語法
xml <select id="findAll" resultType="cn.com.scitc.domian.User" > select * from user </select>
警告:id是介面中定義的方法。
resultType是指定的實體類

測試



public class MybatisTest {

    public static void main(String[] args ){
//        1.讀取配置文件
        try {
            InputStream in = Resources.getResourceAsStream("mybatis-Config.xml");
//        2.創建SqlSessionFactory工廠
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            SqlSessionFactory factory = builder.build(in);
//        3.使用工廠產生SqlSession對象
            SqlSession sqlSession = factory.openSession();
//        4.使用SqlSession創建Dao介面代理對象
            UserDao userDao = sqlSession.getMapper(UserDao.class);
//        5.使用代理對象執行方法
            List<User> users = userDao.findAll();
            for (User user : users){
                System.out.println("對象有:"+user);
            }
//        6.釋放資源
            sqlSession.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


在這裡插入圖片描述


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

-Advertisement-
Play Games
更多相關文章
  • 整理一下昨天學習的泛型,有不對的地方歡迎指正: 定義一個類,這個類中某些欄位的類型不確定,這些類型可以在構造類時確定下來 2.泛型方法 泛型方法就是定義一個方法,這個方法的參數類型可以是不確定的,當調用這個方法時再去確定這個方法參數的類型。 T作為類型參數也是一個占位符在泛型中,例: 3.泛型解析: ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • WPF自定義控制項與樣式(3)-TextBox & RichTextBox & PasswordBox樣式、水印、Label標簽、功能擴展 原文:https://www.cnblogs.com/anding/p/4970845.html 一.前言.預覽 申明:WPF自定義控制項與樣式是一個系列文章,前後 ...
  • 在我嘗試wget下載一張圖片的時候,出現瞭如下錯誤: 解決方案: ...
  • 運行cockpit 服務時,我們指定運行此程式的用戶和組;cockpit-ws cockpit-ws 我們使用 sudo -u -g 命令來進行運行; 同理,執行其他程式時,也可以 以這種方式執行; 保持更新,更多內容請關註 cnblogs.com/xuyaowen ...
  • [20191011]通過bash計算sql語句的sql_id.txt--//當我知道如何通過bash計算sql語句的full_hash_value ,就很想通過bash編程計算sql_id.當時受限自己能力--//感覺不好實現.--//鏈接: http://blog.itpub.net/267265 ...
  • 慢系統調用,指的是可能永遠無法返回,從而使進程永遠阻塞的系統調用,比如無客戶連接時的accept、無輸入時的read都屬於慢速系統調用。 在Linux中,當阻塞於某個慢系統調用的進程捕獲一個信號,則該系統調用就會被中斷,轉而執行信號處理函數,這就是被中斷的系統調用。 然而,當信號處理函數返回時,有可 ...
  • [20191010]bash行計算器.txt--//寫一個bash行計算器,為了避免衝突,函數命名為2個=,1個=感覺不是很好(心裡上^_^)。--//使用bc計算器,裡面函數不能使用圓括弧,使用中括弧代替。== (){ local in="$(echo "$@" | sed -e 's/\[/(/ ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...