最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java的MyBatis快速入門和實戰(zhàn)詳解

 更新時間:2023年05月01日 09:54:43   作者:橙 子_  
這篇文章主要介紹了Java的MyBatis快速入門和實戰(zhàn)詳解,MyBatis是一款優(yōu)秀的持久層框架,用于簡化JDBC開發(fā),是一套可重用的,通用的,軟件基礎代碼模型,需要的朋友可以參考下

1.什么是MyBatis?

在這里插入圖片描述

簡單來說,MyBatis是一款優(yōu)秀的持久層框架,用于簡化JDBC開發(fā)。MyBatis本身是Apache的一個開源項目,期初叫做iBatis,2010年這個項目前移到google code,并改名為MyBatista。在2013年該項目遷移到GitHub。

概念中的持久層怎么理解?指將數(shù)據(jù)保存到數(shù)據(jù)庫的那一層代碼。在海量的代碼中,為了保證每一塊代碼的職責單一,把同數(shù)據(jù)庫操作的代碼叫做持久層。同時,JavaEE三層架構中,表現(xiàn)層負責頁面的展示,業(yè)務層負責邏輯的處理,而持久層就是負責將數(shù)據(jù)存儲到數(shù)據(jù)庫中。

什么是框架?框架是指一個半成品的軟件,是一套可重用的,通用的,軟件基礎代碼模型,同時,在框架基礎之上進行開發(fā)大量的節(jié)省了成本,而且更加的規(guī)范,通用且擴展性較強。

2. JDBC存在的缺點

既然我們使用MyBatis來簡化JDBC開發(fā),那么JDBC究竟存在什么缺點呢?

硬編碼

首先在注冊驅動,獲取鏈接的時候,字符串信息如果發(fā)生變動,例如密碼,此時需要手動修改。其次,在定義sql語句時候,使用字符串同樣使得代碼的維護性變差。

操作繁瑣

當我們手動設置參數(shù)和手動設置結果集時,存在著操作繁瑣的問題。

下面JDBC使用的一段代碼做展示:

在這里插入圖片描述

3.Mybatis簡化JDBC開發(fā)

既然JDBC開發(fā)存在硬編碼,操作繁瑣的缺點,那么怎么解決這些問題呢?首先我們把字符串寫到單獨的配置文件中,解決JDBC硬編碼的問題,其次,可以采用一種方法來自動完成JDBC操作繁瑣的代碼。于是,我們使用MyBatis來簡化JDBC開發(fā)。MyBatis免除了幾乎所有的JDBC代碼以及設置參數(shù)和獲取結果集的工作。

例如:在配置文件中寫入?yún)?shù)信息,將來使用時直接讀取,解決硬編碼的問題

<environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--數(shù)據(jù)庫連接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>

市面上的持久層框架有很多的選擇,但是MyBatis在國內市場有很大的使用占比。

4.MyBatis快速入門|實戰(zhàn)項目詳解

我們通過實踐操作快速查詢user表中所有的數(shù)據(jù)來入門MyBatis,即查詢user表中的數(shù)據(jù),放到user對象里,在分別把對方放入集合中完成操作。通過以下步驟來完成操作:

  1. 創(chuàng)建user表,添加數(shù)據(jù)
  2. 創(chuàng)建模塊,導入坐標
  3. 編寫MyBatis 核心配置文件,替換連接信息來解決硬編碼的問題
  4. 編寫SQL映射文件,統(tǒng)一管理sql語句,解決編碼問題
  5. 編寫代碼

在編寫代碼是使用以下步驟:

  1. 定義POJO類
  2. 加載核心配置文件,獲取sqlSessionFactory對象
  3. 獲取sqlSession對象,執(zhí)行sql語句
  4. 釋放資源

整體的項目結構展示:

在這里插入圖片描述

下面演示通過詳細的演示,快速入門MyBatis: 

創(chuàng)建user表,添加數(shù)據(jù):

create database mybatis;
use mybatis;
drop table if exists tb_user;
create table tb_user(
	id int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	gender char(1),
	addr varchar(30)
);
INSERT INTO tb_user VALUES (1, '小張', 'abc', '男', '北京');
INSERT INTO tb_user VALUES (2, '小李', '123', '女', '天津');
INSERT INTO tb_user VALUES (3, '小美', '456', '女', '上海');

在這里插入圖片描述

這里使用的是MySQL數(shù)據(jù)庫,使用navicat作為數(shù)據(jù)庫的可視化工具。

在idea中創(chuàng)建模塊,導入坐標:

在idea中點擊新建項目,構建系統(tǒng)選擇Maven,輸入項目名稱(這里使用MyBatis-demo),設置組ID和工件ID,點擊創(chuàng)建。接下來導入的依賴,將下面的依賴代碼置于 pom.xml 文件中:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

接下來導入mysql依賴,junit坐標和logback坐標,把logback.xml配置文件粘貼到resources中:

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>
        <!-- 添加logback-classic依賴 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- 添加logback-core依賴 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>

編寫MyBatis 核心配置文件:

在MyBatis-demo/src/main/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">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--數(shù)據(jù)庫連接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="abc123"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加載sql的映射文件-->
        <mapper resource="UerMapper.xml"/>
    </mappers>
</configuration>

編寫SQL映射文件:

在MyBatis-demo/src/main/resources中添加sql的映射文件UserMapper.xml。

<?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">
<mapper namespace="test">
    <select id="selectAll" resultType="com.example.pojo.User">
        select * from tb_user;
    </select>
</mapper>

修改MyBatis的核心配置文件,用于加載sql的映射文件。

  <mappers>
        <!--加載sql的映射文件-->
        <mapper resource="UserMapper.xml"/>
  </mappers>

完成以上操作就可以進行編碼了,首先要定義POJO類:

package com.example.pojo;
public class User {
    private Integer id;
    private String username;
    private String password;
    private String gender;
    private String addr;
    public Integer getId() {
        return id;
    }
    public String getUsername() {
        return username;
    }
    public String getPassword() {
        return password;
    }
    public String getGender() {
        return gender;
    }
    public String getAddr() {
        return addr;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", gender='" + gender + '\'' +
                ", addr='" + addr + '\'' +
                '}';
    }
}

加載核心配置文件,獲取sqlSessionFactory對象:

首先需要創(chuàng)建一個MyBatisDemo.java文件,添加一個主方法,編寫代碼。

public class MyBatisDemo {
    public static void main(String[] args) throws IOException {
    	//加載MyBatis核心配置文件
        String resource = "mybatis.config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
}

獲取sqlSession對象,執(zhí)行sql語句:

//獲取SqlSession對象,用它來執(zhí)行sql
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //執(zhí)行sql
        List<User> users = sqlSession.selectList("test.selectALL");
        System.out.println(users);
		//釋放資源
        sqlSession.close();

到這里我們就完成了整個項目的構建,接下來我們運行程序,可以看到,我們成功的查詢到tb_user中的數(shù)據(jù)!

在這里插入圖片描述

到此這篇關于Java的MyBatis快速入門和實戰(zhàn)詳解的文章就介紹到這了,更多相關MyBatis快速入門內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring中使用@Value注解注入屬性文件中的值詳解

    Spring中使用@Value注解注入屬性文件中的值詳解

    這篇文章主要介紹了Spring中使用@Value注解注入屬性文件中的值詳解,通過Spring的@Value注解可以將xml中關聯(lián)的屬性文件中的值注入變量中,這樣就不需要通過創(chuàng)建Properties然后根據(jù)屬性文件讀取屬性值了,需要的朋友可以參考下
    2023-12-12
  • java打印日志的幾種方式總結

    java打印日志的幾種方式總結

    這篇文章主要介紹了java打印日志的幾種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java后臺批量下載文件并壓縮成zip下載的方法

    java后臺批量下載文件并壓縮成zip下載的方法

    這篇文章主要為大家詳細介紹了java后臺批量下載文件并壓縮成zip下載的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • springboot讀取nacos配置文件的實現(xiàn)

    springboot讀取nacos配置文件的實現(xiàn)

    SpringBoot注冊服務到Nacos上,由Nacos來做服務的管理,本文主要介紹了springboot讀取nacos配置文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Centos中安裝jdk案例講解

    Centos中安裝jdk案例講解

    這篇文章主要介紹了Centos中安裝jdk案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Java之操作Redis案例講解

    Java之操作Redis案例講解

    這篇文章主要介紹了Java之操作Redis案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot使用H2嵌入式數(shù)據(jù)庫的實例代碼

    SpringBoot使用H2嵌入式數(shù)據(jù)庫的實例代碼

    本文通過實例代碼給大家介紹了SpringBoot使用H2嵌入式數(shù)據(jù)庫的相關知識,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-10-10
  • Java中的自動裝箱與自動拆箱的實現(xiàn)

    Java中的自動裝箱與自動拆箱的實現(xiàn)

    自動裝箱和自動拆箱使得我們在使用基本數(shù)據(jù)類型時更加方便,同時也提高了代碼的可讀性和健壯性,本文將詳細介紹Java中的自動裝箱和自動拆箱機制,感興趣的可以了解一下
    2023-08-08
  • java統(tǒng)計漢字字數(shù)的方法示例

    java統(tǒng)計漢字字數(shù)的方法示例

    這篇文章主要介紹了java統(tǒng)計漢字字數(shù)的方法,結合實例形式分析了java正則判定、字符串遍歷及統(tǒng)計相關操作技巧,需要的朋友可以參考下
    2017-05-05
  • Java 實現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù)

    Java 實現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù)

    這篇文章主要介紹了Java 實現(xiàn)多線程切換等待喚醒交替打印奇偶數(shù) ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論

左贡县| 扎兰屯市| 南华县| 西丰县| 邵阳县| 张家界市| 西乌珠穆沁旗| 鄱阳县| 平遥县| 澄江县| 十堰市| 肥乡县| 商南县| 五台县| 鄢陵县| 册亨县| 乐亭县| 逊克县| 章丘市| 高陵县| 图木舒克市| 海丰县| 婺源县| 广东省| 绵竹市| 红河县| 平江县| 慈利县| 柘城县| 贡觉县| 临城县| 广汉市| 秭归县| 霍邱县| 文水县| 武定县| 大田县| 开鲁县| 古蔺县| 专栏| 江津市|