第一章 MyBatis基本概念

1. 什么是框架

是一套規(guī)范,可以理解成半成品軟件,開發(fā)者在它基礎(chǔ)上進(jìn)行使用。

2. 框架的作用

封裝了一些冗余重用率低的代碼,使用反射與動(dòng)態(tài)代理機(jī)制實(shí)現(xiàn)代碼的通用性。

3. 常見的框架

  • 表現(xiàn)層
a. Struts2
b. Spring MVC
  • 持久層
a. Hibernate
b. Spring JDBC
c. Mybatis
  • 全棧
a. Spring

4. Mybatis

4.1 出現(xiàn)背景

4.1.1 傳統(tǒng)的JDBC操作

    @Override
    public User userLogin(User user) {
        //創(chuàng)建QueryRunner的對象
        QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
        //創(chuàng)建sql語句查詢表中是否存在該用戶
        String sql = "select *from `lagou_user` where name=? and password=?";
        User   resultuser=new User();
        try {
            resultuser = qr.query(sql, new BeanHandler<User>(User.class), user.getName(),user.getPassword());
            if (resultuser==null){
                return  null;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return resultuser;
    }

可能出現(xiàn)的問題

  • a. 數(shù)據(jù)庫頻繁的創(chuàng)建連接、關(guān)閉連接,造成系統(tǒng)資源浪費(fèi)
  • b. 在進(jìn)行curd操作中有許多sql語句硬編碼問題,sql語句的改變需要重新部署項(xiàng)目
  • c. 查詢得出的結(jié)果需要手動(dòng)封裝到相對應(yīng)的Java Bean對象

4.1.2 解決的方案

針對上述的問題,提出一些解決思路

  • a. 針對硬編碼的sql語句抽取到xml配置文件中
  • b. 采用配置文件配置數(shù)據(jù)庫,使用數(shù)據(jù)庫連接池進(jìn)行連接資源
  • c. 使用反射、內(nèi)省等底層技術(shù),自動(dòng)將實(shí)體類和表中的屬性字段互相映射起來

4.2 Mybatis簡介

是一個(gè)基于ORM的半自動(dòng)輕量型的持久層框架,對使用JDBC操作數(shù)據(jù)庫進(jìn)一步封裝,讓開發(fā)人員只關(guān)注SQL語句本身;
主要完成了驅(qū)動(dòng)注冊、創(chuàng)建連接、創(chuàng)建curd聲明、手動(dòng)設(shè)置參數(shù)、結(jié)果檢索等繁雜的代碼編程。

半自動(dòng)與全自動(dòng)

本質(zhì)區(qū)別:需不需要編寫SQL語句,全自動(dòng)的話就是框架可以自動(dòng)生成SQL語句,例如Hibernate

缺點(diǎn):全自動(dòng)由于自動(dòng)生成SQL語句,無法進(jìn)行SQL語句的優(yōu)化,數(shù)據(jù)量大的時(shí)候容易出現(xiàn)慢查詢

輕量型

本質(zhì):啟動(dòng)加載消耗系統(tǒng)資源的多少。

4.3 ORM思想

全稱 Object Relational Mapping,對象關(guān)系映射

  • Object:實(shí)體對象,就是程序中的一個(gè)Java Bean
  • Relational:關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫中的一張表
  • Mapping:映射,通過XML或者注解將實(shí)體對象與表中的結(jié)果對應(yīng)起來

4.3.1 作用

將實(shí)體變化轉(zhuǎn)為SQL腳本,通過執(zhí)行腳本繼而改變數(shù)據(jù)表,從而達(dá)到映射的作用

4.4 Mybatis作用

Mybatis就是采用ORM的思想,對JDBC進(jìn)行封裝,屏蔽了JDBC API底層訪問的實(shí)現(xiàn)細(xì)節(jié),使得開發(fā)人員不需要和JDBC API進(jìn)行打交道,就可以完成數(shù)據(jù)庫的持久化操作。

第二章 MyBatis快速入門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容