真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MyBatis是怎么來的

這篇文章主要介紹“MyBatis是怎么來的”,在日常操作中,相信很多人在MyBatis是怎么來的問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MyBatis是怎么來的”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

站在用戶的角度思考問題,與客戶深入溝通,找到于洪網(wǎng)站設(shè)計與于洪網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋于洪地區(qū)。

JDBC原生操作

在早期開發(fā)還沒有ORM框架時我們要操作數(shù)據(jù)庫都是通過JDBC來操作。

JDBC測試代碼:

/**
 * 原生操作JDBC方式
 * @Author: maomao
 * @Date: 2021-04-07 10:59
 */
public class JdbcTest {

    public static final String URL = "jdbc:MySQL://127.0.0.1:3306/data_test?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
    public static final String USER_NAME = "root";
    public static final String PASSWORD = "123456";

    @Test
    public void testJdbc(){
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {
            //打開連接
            connection = DriverManager.getConnection(URL,USER_NAME,PASSWORD);

            //執(zhí)行SQL
            statement = connection.createStatement();
            String sql = "select * from user_department where id = 1";
            resultSet = statement.executeQuery(sql);

            //獲取結(jié)果集,并封裝到j(luò)ava對象中
            while (resultSet.next()){
                User user = new User();
                user.setId(resultSet.getLong("id"));
                user.setName(resultSet.getString("name"));
                user.setAge(resultSet.getInt("age"));
                System.out.println(user);
            }
            //后續(xù)使用邏輯。。。。

        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            //關(guān)閉資源
            try {
                if (resultSet != null) resultSet.close();
            } catch (SQLException se2) {
            }
            try {
                if (statement != null) statement.close();
            } catch (SQLException se2) {
            }
            try {
                if (connection != null) connection.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}

主要分為以下幾步:

  1. 注冊數(shù)據(jù)庫驅(qū)動

  2. 獲取一個Connection連接

  3. 創(chuàng)建一個Statement對象

  4. 執(zhí)行execute()方法執(zhí)行sql,獲得ResultSet結(jié)果集

  5. 通過ResultSet獲取數(shù)據(jù),給POJO賦值,轉(zhuǎn)為java對象

  6. 最后關(guān)閉數(shù)據(jù)庫相關(guān)資源,包括ResultSet、Statement、Connection

如果你 有幸接觸過一些早期的老項目,可能會在項目Dao層看到很多這樣的操作。

好一點的會將數(shù)據(jù)庫這些操作做一個工具封裝,不好的你會看到每個查詢方法中就會有類似以上測試代碼一樣的內(nèi)容。

你可以想象一下現(xiàn)在每個常規(guī)的數(shù)據(jù)庫操作,比如byId()、save()、update()等等這些方法在以前都包裝在類似上邊測試代碼中的樣子(瑟瑟發(fā)抖)。

ORM框架

ORM(Object Relational Mapping)也就是對象與關(guān)系映射

MyBatis是怎么來的

在早期誕生的比較主流的一個ORM框架是Hibernate,在2001年時誕生了第一個版本。

它幫我們解決了JDBC時期復(fù)雜的對象關(guān)系映射問題,簡化了數(shù)據(jù)庫開發(fā)操作。讓開發(fā)人員無需再關(guān)注數(shù)據(jù)庫連接、對象與數(shù)據(jù)庫表的映射關(guān)系轉(zhuǎn)換問題。所以早期主流開發(fā)J2EE是從SSH(struts + spring + hibernate)開始的。

hibernate本身功能非常強大,有自己的查詢語法HQL可以通過操作對象關(guān)系來生成對應(yīng)的SQL語句,也可以根據(jù)數(shù)據(jù)庫方言生成兼容各數(shù)據(jù)庫場景的SQL,所以移植性好。自動管理連接資源,還提供了緩存機制。

所以hibernate毫無疑問成為了當(dāng)時J2EE開發(fā)時的主流ORM框架。

但Hibernate在業(yè)務(wù)復(fù)雜的項目中也存在一些問題:

  1. 需要學(xué)習(xí)新的HQL語法

  2. 自動生成SQL的方式,如果需要基于SQL去做一些優(yōu)化的話,非常困難,導(dǎo)致性能優(yōu)化是一個問題。

  3. 不支持動態(tài)SQL,無法根據(jù)條件自動生成SQL

基于以上問題,我們需要一個更加靈活的框架。此時就誕生了MyBatis(早期叫iBatis)。

MyBatis

MyBatis官網(wǎng)地址

”半自動化“的ORM框架MyBatis就解決了上邊幾個問題。”半自動化“是相當(dāng)于Hibernate全自動化來說的。它的封裝程度沒有Hibernate那么高,不會自動生成全部的SQL語句,主要解決的是SQL和對象的映射問題。

在MyBatis里,sql和代碼是分離的,所以會寫SQL基本上就會用MyBatis,沒有額外的學(xué)習(xí)成本。

所以J2EE又迎來了幾次架構(gòu)變更

  • SSI (Struts2 + Spring + iBatis)

  • SSM(Spring MVC + Spring + MyBatis)

MyBatis憑借小巧、簡單易學(xué)、靈活、sql與代碼解耦等特點慢慢取代了Hibernate成為主流ORM框架直到現(xiàn)在。

MyBatis是怎么來的

到此,關(guān)于“MyBatis是怎么來的”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
標(biāo)題名稱:MyBatis是怎么來的
網(wǎng)站鏈接:http://weahome.cn/article/jgsdoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部