国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí)

這篇具有很好參考價(jià)值的文章主要介紹了SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí)

一、當(dāng)前的主流框架介紹(這就是后期我會(huì)發(fā)出來的框架學(xué)習(xí))

Spring框架

? Spring是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的,其主要優(yōu)勢(shì)之一就是分層架構(gòu)。Spring提供了更完善的開發(fā)環(huán)境,可以為POJO(Plain Ordinary Java Object,普通Java對(duì)象)對(duì)象提供企業(yè)級(jí)的服務(wù)。


Spring MVC框架

? Spring MVC是一個(gè)Web開發(fā)框架,可以將它理解為Servlet。在MVC模式中,Spring MVC作為控制器(Controller)用于實(shí)現(xiàn)模型與視圖的數(shù)據(jù)交互,是結(jié)構(gòu)最清晰的。

? Spring MVC框架采用松耦合、可插拔的組件結(jié)構(gòu),具有高度可配置性,與其他的MVC框架相比,具有更強(qiáng)的擴(kuò)展性和靈活性。


MyBatis框架

? MyBatis 是Apache的一個(gè)開源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由Apache Software Foundation遷移到了Google Code,并且改名為MyBatis ,2013年11月MyBatis又被遷移到Github。

? MyBatis是一個(gè)優(yōu)秀的持久層框架,它可以在實(shí)體類和SQL語句之間建立映射關(guān)系,是一種半自動(dòng)化的ORM(Object/Relation Mapping,即對(duì)象關(guān)系映射)實(shí)現(xiàn)。MyBatis封裝性要低于Hibernate,但它性能優(yōu)越、簡(jiǎn)單易學(xué),在互聯(lián)網(wǎng)應(yīng)用的開發(fā)中被廣泛使用。


Spring Boot 框架

? Spring Boot 框架是 Pivotal 團(tuán)隊(duì)基于 Spring 開發(fā)的全新框架,其設(shè)計(jì)初衷是為了簡(jiǎn)化 Spring 的配置,使用戶能夠構(gòu)建獨(dú)立運(yùn)行的程序,提高開發(fā)效率。

? Spring Boot 框架本身并不提供 Spring 框架的核心特性及擴(kuò)展功能,它只是用于快速、敏捷地開發(fā)新一代基于 Spring 框架的應(yīng)用,同時(shí)它還集成了大量的第三方類庫(如Jackson、JDBC、Redis 等),使用戶只需少量配置就能完成相應(yīng)功能。


Spring Cloud 框架

? Spring Cloud 是一系列框架的有序集合,為開發(fā)人員構(gòu)建微服務(wù)架構(gòu)提供了完整的解決方案,它利用Spring Boot 的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)的開發(fā)。例如,配置管理、服務(wù)發(fā)現(xiàn)、控制總線等操作,都可以使用 Spring Boot 做到一鍵啟動(dòng)和部署。可以說,Spring Cloud 將 Spring Boot 框架進(jìn)行了再封裝,屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,具有簡(jiǎn)單易懂、易部署和易維護(hù)等特點(diǎn)。


那么開始今天的主題MyBatis的學(xué)習(xí)

二、什么是MyBatis?

? MyBatis是一個(gè)支持普通SQL查詢、存儲(chǔ)過程以及高級(jí)映射的半自動(dòng)化持久層框架,它消除了幾乎所有的JDBC代碼和參數(shù)的手動(dòng)設(shè)置以及對(duì)結(jié)果集的檢索,使用簡(jiǎn)單的“XML”或“注解”進(jìn)行配置和原始“映射”,將接口和Java的POJO映射成數(shù)據(jù)庫中的記錄,使得Java開發(fā)人員可以使用面向?qū)ο蟮木幊趟枷雭聿僮鲾?shù)據(jù)庫。

PS:(名詞解釋)

  1. XML(可擴(kuò)展標(biāo)記語言): XML 是一種標(biāo)記語言,用于描述數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。它被廣泛用于數(shù)據(jù)的存儲(chǔ)、交換和表示。XML 使用標(biāo)簽來標(biāo)識(shí)數(shù)據(jù)的不同部分,并使用元素、屬性和文本來組織數(shù)據(jù)。XML 具有可擴(kuò)展性,允許用戶定義自己的標(biāo)簽和數(shù)據(jù)結(jié)構(gòu)。由于其通用性和可擴(kuò)展性,XML 在 Web 開發(fā)、數(shù)據(jù)傳輸、配置文件等領(lǐng)域都有廣泛應(yīng)用。
  2. 注解(Annotation): 注解是一種元數(shù)據(jù)(metadata),可以應(yīng)用于代碼中的類、方法、字段等元素。**它們不會(huì)直接影響程序的執(zhí)行,但可以提供額外的信息給編譯器、解釋器、工具和其他程序。在 Java 中,注解是以 @ 符號(hào)為前綴的特殊標(biāo)記。**注解可以用于提供編譯時(shí)的指示、運(yùn)行時(shí)的處理、文檔生成等。常見的 Java 注解包括 @Override表明是方法重寫、@FunctionalInterface函數(shù)式接口、@Nullable表明元素可以為null、@Autowired 用于標(biāo)記字段、構(gòu)造器或方法,表示自動(dòng)裝配(自動(dòng)注入)該組件 等(后面我會(huì)發(fā)一個(gè)常見注解的說明)
  3. 映射(Mapping):在編程中,映射通常指的是將一個(gè)數(shù)據(jù)或?qū)ο箨P(guān)聯(lián)到另一個(gè)數(shù)據(jù)或?qū)ο蟮倪^程。這可以是不同數(shù)據(jù)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,比如數(shù)據(jù)庫表的列與對(duì)象屬性的對(duì)應(yīng)關(guān)系,或者是 URL 路徑與控制器方法的對(duì)應(yīng)關(guān)系。在數(shù)據(jù)庫中,對(duì)象-關(guān)系映射(ORM)指的是將數(shù)據(jù)庫表映射到面向?qū)ο蟮念惖倪^程。在 Web 開發(fā)中,URL 路由映射指的是將請(qǐng)求的 URL 映射到相應(yīng)的處理程序或方法上。

? MyBatis框架是一個(gè)ORM(Object/Relation Mapping,即對(duì)象關(guān)系映射)框架。所謂的ORM就是一種為了解決面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)類型不匹配的技術(shù),它通過描述Java對(duì)象與數(shù)據(jù)庫表之間的映射關(guān)系,自動(dòng)將Java應(yīng)用程序中的對(duì)象持久化到關(guān)系型數(shù)據(jù)庫的表中。ORM框架的工作原理可以通過一張圖來展示。SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

(這段加粗文字如果簡(jiǎn)單理解的話,那就是可以把Java中的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換識(shí)別成數(shù)據(jù)庫的數(shù)據(jù)類型

當(dāng)使用ORM框架將Java中的基本數(shù)據(jù)類型映射到數(shù)據(jù)庫時(shí),通常的映射規(guī)則如下:
  1. byte --> TINYINT
  2. short --> SMALLINT
  3. int --> INT
  4. long --> BIGINT
  5. float --> FLOAT
  6. double --> DOUBLE
  7. boolean --> BIT(對(duì)于MySQL和SQL Server等數(shù)據(jù)庫),BOOLEAN(對(duì)于PostgreSQL等數(shù)據(jù)庫)
  8. char --> CHAR(通常用于存儲(chǔ)單個(gè)字符) String --> VARCHAR(通常用于存儲(chǔ)字符串)

? 不同的數(shù)據(jù)庫系統(tǒng)可能有不同的數(shù)據(jù)類型名稱,因此在特定的數(shù)據(jù)庫中可能會(huì)略有差異。此外,ORM框架也允許進(jìn)行自定義配置,以適應(yīng)不同的數(shù)據(jù)庫需求。

此外,還有一些其他特殊類型,例如日期和時(shí)間類型,也可以在ORM中進(jìn)行映射,比如:

  • java.util.Date 或 java.time.LocalDate --> DATE
  • java.util.Time 或 java.time.LocalTime --> TIME
  • java.util.Date 或 java.time.LocalDateTime --> DATETIME 或 TIMESTAMP

? 上面這些就是我們學(xué)習(xí)Java常見的8種基本數(shù)據(jù)類型在數(shù)據(jù)庫中的通用映射規(guī)則。但具體的映射規(guī)則可能會(huì)因不同的ORM框架或數(shù)據(jù)庫而有所區(qū)別,因此在實(shí)際開發(fā)中,還是得根據(jù)實(shí)際情況和需求進(jìn)行相應(yīng)的配置和調(diào)整。

? 了解完MyBatis的基本概念之后,我們就該到了如何使用MyBatis?想要使用首先就得引入,簡(jiǎn)單來說就是搭建MyBatis的開發(fā)環(huán)境。


三、如何搭建MyBatis的開發(fā)環(huán)境?

搭建環(huán)境的步驟如下:
  1. 創(chuàng)建工程后引入相關(guān)依賴。(本地lib導(dǎo)入jar包或者Pom.xml寫入依賴信息,Maven方式導(dǎo)入)

  2. 數(shù)據(jù)庫準(zhǔn)備(就是指創(chuàng)建好準(zhǔn)備鏈接的數(shù)據(jù)庫) 。 比如:MySQL Oracle PostgreSQL

  3. 編寫數(shù)據(jù)庫連接信息配置文件(db.properties 、database.properties、dbconfig.properties

    、jdbc.properties都是指同一個(gè)文件,也就是數(shù)據(jù)庫連接信息配置文件)

  4. 編寫核心配置文件和映射文件。

? 一般來說都不會(huì)自己去寫,只有少部分會(huì)需要我們?nèi)憽4蟛糠值亩际强梢匀ゾW(wǎng)上下載模板然后自己修改一下基本信息就可以用了。

引入依賴(Maven方式引入需要聯(lián)網(wǎng))?編寫配置文件(數(shù)據(jù)庫連接信息配置文件、MyBatis核心配置文件)?

這里簡(jiǎn)單講解一下吧,方便理解。

①引入相關(guān)依賴的代碼

<!--Pom文件編寫依賴引入 只展示了其中一個(gè)依賴-- >
<dependencies>
    <!-- MySQL Connector Java 引入java鏈接MySQL的依賴 -->
    <dependency>
        <groupId>mysql</groupId> <!-- 依賴名 -->
        <artifactId>mysql-connector-java</artifactId> <!-- 組件名 ID -->
        <version>8.0.11</version> <!-- 版本號(hào) -->
    </dependency>
    <!-- 其他依賴項(xiàng) -->
    ...<!--嘗試模仿并寫出其他項(xiàng)依賴引入,寫不出也可以去我資源找對(duì)應(yīng)的文件下載,都是敲好的-->
</dependencies>

③db.properties文件

//db.properties文件

# MySQL數(shù)據(jù)庫驅(qū)動(dòng)程序類名
mysql.driver=com.mysql.cj.jdbc.Driver

# MySQL數(shù)據(jù)庫連接URL,指定主機(jī)、端口、數(shù)據(jù)庫名稱和其他參數(shù)
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

# MySQL數(shù)據(jù)庫用戶名
mysql.username=root

# MySQL數(shù)據(jù)庫密碼
mysql.password=root

④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">
<configuration>
    <!-- 加載 db.properties 文件 -->
    <properties resource="db.properties"/>

    <environments default="development">
        <!-- 設(shè)置開發(fā)環(huán)境 -->
        <environment id="development">
            <!-- 使用 JDBC 事務(wù)管理器 -->
            <transactionManager type="JDBC"/>
            
            <!-- 使用 POOLED 數(shù)據(jù)源 -->
            <dataSource type="POOLED">
                <!-- 指定數(shù)據(jù)庫驅(qū)動(dòng)程序 -->
                <property name="driver" value="${mysql.driver}" />
                <!-- 指定數(shù)據(jù)庫連接 URL -->
                <property name="url" value="${mysql.url}" />
                <!-- 指定數(shù)據(jù)庫用戶名 -->
                <property name="username" value="${mysql.username}" />
                <!-- 指定數(shù)據(jù)庫密碼 -->
                <property name="password" value="${mysql.password}" />
            </dataSource>
        </environment>
    </environments>
</configuration>

? 使用POOLED數(shù)據(jù)源的意思是:它表示使用連接池?cái)?shù)據(jù)源,“POOLED” 是Maven配置文件中 <dataSource> 配置項(xiàng)的一個(gè)屬性值

? 連接池是一組預(yù)先創(chuàng)建并管理的數(shù)據(jù)庫連接。當(dāng)應(yīng)用程序需要與數(shù)據(jù)庫進(jìn)行交互時(shí),它可以從連接池中獲取一個(gè)可用的數(shù)據(jù)庫連接,執(zhí)行操作完成后再將連接放回連接池,而不是每次都創(chuàng)建和關(guān)閉連接。這種方式可以提高性能和效率,避免了頻繁創(chuàng)建和銷毀數(shù)據(jù)庫連接的開銷。

? 具體到這個(gè)配置文件中,<dataSource type="POOLED"> 指定了使用 POOLED 數(shù)據(jù)源類型。通過這個(gè)配置,Maven將會(huì)根據(jù)數(shù)據(jù)庫連接信息和連接池配置參數(shù),創(chuàng)建一個(gè)連接池?cái)?shù)據(jù)源供應(yīng)用程序使用。這樣,在應(yīng)用程序需要進(jìn)行數(shù)據(jù)庫操作時(shí),它可以從這個(gè)連接池中獲取連接,而不是每次都重新創(chuàng)建新的連接,從而提高性能和效率。

? 到這里環(huán)境就已經(jīng)搭建好了。


四、編寫MyBatis入門程序

? ①:數(shù)據(jù)庫準(zhǔn)備?②:pojo類編寫?③:mapper文件(sql語句)編寫?④:mybatis-config文件中添加mapper文件resources的地址?⑤:編寫測(cè)試類。


? 首先要準(zhǔn)備好一個(gè)要鏈接的數(shù)據(jù)庫,編寫好數(shù)據(jù)設(shè)計(jì)語句,設(shè)計(jì)表的同時(shí)呢,插入倆條語句進(jìn)去,這樣方便我們后續(xù)測(cè)試。記得若是鏈接的數(shù)據(jù)庫有改變,那么我們前面的數(shù)據(jù)庫鏈接信息配置文件也需要修改,就是db.properties。

? 首先我們要新建實(shí)體類上面也有提到的pojo包(普通JAVA對(duì)象),這里的話就要與數(shù)據(jù)庫的表字段一一對(duì)應(yīng),這樣才能映射過去。一般來說一個(gè)表對(duì)應(yīng)一個(gè)類,也就是一個(gè)對(duì)象。

? 如下圖:我們采用的PasswordMS表中的結(jié)構(gòu)如下:

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

那么我們的pojo包下的成員變量應(yīng)該是這樣子定義的:

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

? 字段名和變量名一一對(duì)應(yīng)。不要忘了生成Getter和Setter方法,因?yàn)槲覀兊脑L問修飾符是private私有的,那么如果不開放公共的方法來設(shè)置或獲取變量的值,這樣的話會(huì)導(dǎo)致只有在類的內(nèi)部能夠訪問到,所以不能忘記嗷,這也是面向?qū)ο蟮脑O(shè)計(jì)原則之一,也是封裝的基本特征,合理開放,合理暴露。

? 編寫一下Mapper.xml,里面編寫sql語句,動(dòng)態(tài)sql語句,這里我們要針對(duì)一下數(shù)據(jù)庫表的關(guān)系,然后去對(duì)java對(duì)象進(jìn)行一個(gè)映射,關(guān)系有一對(duì)一、一對(duì)多等。越復(fù)雜的sql編寫,需要注意的點(diǎn)就越多。

? 編寫mapper,需要在標(biāo)簽對(duì)里面

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

編寫mapping文件路徑配置,在mybatis-config.xml中下。這樣mybatis才能夠識(shí)別我們的mapper文件,才能夠使用映射語句,不會(huì)導(dǎo)致出錯(cuò)。

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

因?yàn)槲覀兦懊嬉肓薐unit測(cè)試依賴,那么就簡(jiǎn)單編寫一下測(cè)試類吧,看看我們編寫的Mapper接口能不能正常映射到數(shù)據(jù)庫。

//PasswordMSTest.java
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 org.apache.log4j.Logger;
import pojo.PasswordMS;

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


class PasswordMSTest {
    private Logger logger= Logger.getLogger(PasswordMSTest.class);
    @org.junit.jupiter.api.Test
    void getUid() {
        //讀取文件名:
        String resources="mybatis-config.xml";

        //創(chuàng)建流
        Reader reader = null;
        try{
            reader = Resources.getResourceAsReader(resources);
        }catch (IOException e){
            e.printStackTrace();
        }
        //初始化mybatis數(shù)據(jù)庫,創(chuàng)建SqlSessionFactory類的實(shí)例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //創(chuàng)建SqlSession實(shí)例

        SqlSession session = sqlSessionFactory.openSession();
        
        //傳入?yún)?shù)查詢,返回結(jié)果
        PasswordMS passwordMS = session.selectOne("findById",1);
        logger.info("姓名:"+passwordMS.getAccount()+",密碼:"+passwordMS.getPassword()+",網(wǎng)站:"+passwordMS.getWebsiteName());
        //關(guān)閉session
        session.close();
    }

    @org.junit.jupiter.api.Test
    void getAllItem() {
        //讀取文件名:
        String resources="mybatis-config.xml";

        //創(chuàng)建流
        Reader reader = null;
        try{
            reader = Resources.getResourceAsReader(resources);
        }catch (IOException e){
            e.printStackTrace();
        }
        //初始化mybatis數(shù)據(jù)庫,創(chuàng)建SqlSessionFactory類的實(shí)例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //創(chuàng)建SqlSession實(shí)例

        SqlSession session = sqlSessionFactory.openSession();
        //傳入?yún)?shù)查詢,返回結(jié)果
        List<PasswordMS> passwordMS = session.selectList("findAll");
        for(PasswordMS s:passwordMS){
        logger.info("id:"+s.getId()+",賬號(hào):"+s.getAccount()+",密碼:"+s.getPassword()+",網(wǎng)站名:"+s.getWebsiteName()+",網(wǎng)站網(wǎng)址:"+s.getWebsiteURL()+",網(wǎng)站縮略圖:"+s.getWebsiteImage()+",賬號(hào)描述:"+s.getAccountDescription());
        //關(guān)閉session
            // }
        session.close();
    }
}
}

這里的代碼邏輯用講么?如果是有學(xué)過java基礎(chǔ)和java高級(jí)編程的,應(yīng)該代碼邏輯都是能看懂得。

這里可以推薦看看我發(fā)的學(xué)習(xí)記錄,基本上有看完,都是可以理解的。

輸出結(jié)果如下圖:

SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

與數(shù)據(jù)庫中寫入的完全一致,若是出現(xiàn)NUll值,可能就是pojo類編寫不正確,沒有字段名和變量名一直,其次可能是映射類型不對(duì)等,認(rèn)真往上翻看看嗷。

PS:關(guān)于findAll的sql映射語句需要自己在PasswordMSMapper.xml中編寫完成嗷


Mybatis的工作原理:

*SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí),SSM框架的學(xué)習(xí),JAVA企業(yè)級(jí)應(yīng)用開發(fā)必學(xué)框架,學(xué)習(xí),spring,mvc

? MyBatis框架在操作數(shù)據(jù)庫時(shí),大體經(jīng)過了8個(gè)步驟。下面結(jié)合MyBatis工作原理圖對(duì)每一步流程進(jìn)行詳細(xì)講解,具體如下。

(1)MyBatis讀取核心配置文件mybatis-config.xml:mybatis-config.xml核心配置文件主要配置了MyBatis的運(yùn)行環(huán)境等信息。

(2)加載映射文件Mapper.xml:Mapper.xml文件即SQL映射文件,該文件配置了操作數(shù)據(jù)庫的SQL語句,需要在mybatis-config.xml中加載才能執(zhí)行。

(3)構(gòu)造會(huì)話工廠:通過MyBatis的環(huán)境等配置信息構(gòu)建會(huì)話工廠SqlSessionFactory,用于創(chuàng)建SqlSession。

(4)創(chuàng)建會(huì)話對(duì)象:由會(huì)話工廠SqlSessionFactory創(chuàng)建SqlSession對(duì)象,該對(duì)象中包含了執(zhí)行SQL語句的所有方法。

(5)創(chuàng)建執(zhí)行器:會(huì)話對(duì)象本身不能直接操作數(shù)據(jù)庫,MyBatis底層定義了一個(gè)Executor接口用于操作數(shù)據(jù)庫,執(zhí)行器會(huì)根據(jù)SqlSession傳遞的參數(shù)動(dòng)態(tài)的生成需要執(zhí)行的SQL語句,同時(shí)負(fù)責(zé)查詢緩存地維護(hù)。

(6)封裝SQL信息:SqlSession內(nèi)部通過執(zhí)行器Executor操作數(shù)據(jù)庫,執(zhí)行器將待處理的SQL信息封裝到MappedStatement對(duì)象中。

(7)操作數(shù)據(jù)庫:根據(jù)動(dòng)態(tài)生成的SQL操作數(shù)據(jù)庫。

(8)輸出結(jié)果映射:執(zhí)行SQL語句之后,通過MappedStatement對(duì)象將輸出結(jié)果映射至Java對(duì)象中。


總結(jié)

? 這是第一天對(duì)SSM框架的學(xué)習(xí),先初識(shí)Mybatis,了解什么是半自動(dòng)化持久層框架、映射、pojo、連接池連接數(shù)據(jù)源等。想要跟著學(xué)習(xí)的可以去我的資源里面找對(duì)應(yīng)的文件下載,我的md文件也會(huì)發(fā)上去,項(xiàng)目文件會(huì)上傳可以自己跟著學(xué)習(xí)一下。上面的只是簡(jiǎn)單的倆個(gè)查詢的例子,可以自己完善一下增刪改查的實(shí)例。

作者:Stevedash

發(fā)表于:2023年8月20日 21點(diǎn)45分文章來源地址http://www.zghlxwxcb.cn/news/detail-661791.html

注:本文內(nèi)容基于個(gè)人學(xué)習(xí)理解,如有錯(cuò)誤或疏漏,歡迎指正。感謝閱讀!如果覺得有幫助,請(qǐng)點(diǎn)贊和分享。

到了這里,關(guān)于SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄(第一天)Mybatis的學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (第十一天)初識(shí)SpringMVC SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄

    (第十一天)初識(shí)SpringMVC SSM框架的學(xué)習(xí)與應(yīng)用(Spring + Spring MVC + MyBatis)-Java EE企業(yè)級(jí)應(yīng)用開發(fā)學(xué)習(xí)記錄

    今天我們要來學(xué)習(xí)一下SSM框架的最后一個(gè)框架SpringMVC 一、初認(rèn)SpringMVC 基本概念: ? Spring MVC(Model-View-Controller)是一個(gè)用于構(gòu)建Java Web應(yīng)用程序的開源框架,它提供了一種基于MVC架構(gòu)的方式來開發(fā)Web應(yīng)用 。 ? SpringMVC是Spring Framework的一部分,它是一種基于模型-視圖-控制器(

    2024年02月07日
    瀏覽(54)
  • Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第10章

    Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第10章

    1.第九章的細(xì)節(jié)處理 1-1.mappers標(biāo)簽中的配置 1-2.jdbc屬性文件的配置 1-3.包的別名配置 2.Mybatis核心配置文件 2-1:settings標(biāo)簽(P145-146中的表10-1) 2-2.類型別名 3.Mybatis映射文件 3-1:insert、update、delete元素屬性 3-2:select元素 3-3:ResultMap詳解 ResultMap詳解 4.動(dòng)態(tài)SQL 4-1:if 注意模糊查詢

    2024年02月03日
    瀏覽(22)
  • Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第9章

    Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第9章

    1.MyBatis框架的特點(diǎn) 1-1.簡(jiǎn)單易學(xué) 1-2.靈活 1-3.提供映射標(biāo)簽 2.MyBatis核心類 2-1.Configuration 2-2.SqlSessionFactory 2-3.SqlSession 2-4.Exector 2-5.MappedStatement 3.MyBatis工作流程 4.Mybatis入門程序 4-0:導(dǎo)入jar包資源 4-1:編寫實(shí)體類 4-2:編寫mapper接口以及映射文件 4-3:編寫mybatis-config配置文件 4-4:編

    2024年02月04日
    瀏覽(17)
  • Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第6章

    Java EE企業(yè)級(jí)應(yīng)用開發(fā)(SSM)第6章

    1.Spring MVC的請(qǐng)求參數(shù) 項(xiàng)目的基礎(chǔ)配置 web.xml springmvc-config.xml jar包資源引入: 1-1:獲取默認(rèn)參數(shù) jsp頁面如下: Controller如下: 1-2:簡(jiǎn)單數(shù)據(jù)類型(獲取數(shù)據(jù)不同,只展示Controller) 1-3:注解配置參數(shù)名(RequestParam) 2.Spring MVC的請(qǐng)求響應(yīng) 2-1:響應(yīng)ModelAndView:返回?cái)?shù)據(jù)和頁面 2-2:響

    2023年04月18日
    瀏覽(26)
  • SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美結(jié)合!

    SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美結(jié)合!

    (1) 創(chuàng)建工程 創(chuàng)建一個(gè)Maven的web工程 pom.xml添加SSM需要的依賴jar包 編寫Web項(xiàng)目的入口配置類,實(shí)現(xiàn) AbstractAnnotationConfigDispatcherServletInitializer 重寫以下方法。 getRootConfigClasses() :返回Spring的配置類-需要 SpringConfig 配置類。 getServletConfigClasses() :返回SpringMVC的配置類-需要 SpringMvc

    2024年01月17日
    瀏覽(21)
  • 探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

    探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

    ??歡迎來到Java面試技巧專欄~探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:Java面試技巧 ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)

    2024年02月08日
    瀏覽(31)
  • Java語言開發(fā)在線小說推薦網(wǎng) 小說推薦系統(tǒng) 基于用戶、物品的協(xié)同過濾推薦算法 SSM(Spring+SpringMVC+Mybatis)開發(fā)框架 大數(shù)據(jù)、人工智能、機(jī)器學(xué)習(xí)開發(fā)

    Java語言開發(fā)在線小說推薦網(wǎng) 小說推薦系統(tǒng) 基于用戶、物品的協(xié)同過濾推薦算法 SSM(Spring+SpringMVC+Mybatis)開發(fā)框架 大數(shù)據(jù)、人工智能、機(jī)器學(xué)習(xí)開發(fā)

    1、開發(fā)工具和使用技術(shù) MyEclipse10/Eclipse/IDEA,jdk1.8,mysql5.5/mysql8,navicat數(shù)據(jù)庫管理工具,tomcat,SSM(spring+springmvc+mybatis)開發(fā)框架,jsp頁面,javascript腳本,jquery腳本,bootstrap前端框架(用戶端),layui前端框架(管理員端),layer彈窗組件等。 2、實(shí)現(xiàn)功能 前臺(tái)用戶包含:注

    2023年04月26日
    瀏覽(99)
  • Java EE 企業(yè)級(jí)應(yīng)用開發(fā)教程題庫(第二版)

    Java EE 企業(yè)級(jí)應(yīng)用開發(fā)教程題庫(第二版)

    ??Java EE這是一門偏向于實(shí)踐的課,奈何考試?yán)碚摼佣唷R粚W(xué)期想搞懂三個(gè)框架,嘿嘿,難哦!如果你是大一大二的同學(xué),認(rèn)認(rèn)真真學(xué)習(xí),真的有用。如果你是大三的同學(xué),像就業(yè)并且走這個(gè)方向的同學(xué),也認(rèn)真學(xué)習(xí)。如果你大三考研的同學(xué),自己安排時(shí)間。這里是我平時(shí)的

    2024年02月09日
    瀏覽(25)
  • 【Spring教程31】SSM框架整合實(shí)戰(zhàn):從零開始學(xué)習(xí)SSM整合配置,如何編寫Mybatis SpringMVC JDBC Spring配置類

    【Spring教程31】SSM框架整合實(shí)戰(zhàn):從零開始學(xué)習(xí)SSM整合配置,如何編寫Mybatis SpringMVC JDBC Spring配置類

    歡迎大家回到《Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實(shí)現(xiàn),如果您對(duì)Maven還很陌生,請(qǐng)移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《Rest風(fēng)格簡(jiǎn)介與RESTful入門》 前面我們已經(jīng)把Mybatis、Spring和SpringMVC三個(gè)框架

    2024年02月04日
    瀏覽(24)
  • 【Java EE】關(guān)于Spring MVC 響應(yīng)

    【Java EE】關(guān)于Spring MVC 響應(yīng)

    在博主前面寫的博客 【Java EE】Spring請(qǐng)求如何傳遞參數(shù)詳解 中我們已經(jīng)設(shè)置了響應(yīng)數(shù)據(jù),Http響應(yīng)結(jié)果可以是數(shù)據(jù),也可以是靜態(tài)??,也可以針對(duì)響應(yīng)設(shè)置狀態(tài)碼, Header信息等 首先我們像創(chuàng)建一個(gè)靜態(tài)界面,創(chuàng)建位置如下: 前端代碼如下: 不過這里的后端的代碼和以前的代碼

    2024年04月14日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包