MybatisElse-利用Java持久層框架管理數據庫數據

一、Mybatis介紹

Mybatis是一種基於Java編程語言的開源框架,可用於實現將SQL語句與Java程序相分離。Mybatis並不包含數據源或數據庫連接池,它僅負責管理SQL語句和結果集。Mybatis常用於使用傳統JDBC編程時所需要完成的大量準備工作,而且使用Mybatis開發的程序具有高度的靈活性和性能。

二、Mybatis的使用

Mybatis的使用可分為以下幾步:

第一步:在pom.xml文件中,添加Mybatis相應的依賴。


<dependencies>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
  </dependency>
</dependencies>

第二步:配置Mybatis的映射文件,指定每一個映射文件與其對應的Java接口。


<mapper resource="org/mybatis/example/BlogMapper.xml" />

第三步:編寫Java接口,該接口中包含需要執行的SQL語句。


public interface UserMapper {
  @Select("SELECT * FROM users WHERE id = #{userId}")
  User getUser(@Param("userId") String userId);
}

第四步:編寫調用Mybatis的Java程序。


String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

try (SqlSession session = sqlSessionFactory.openSession()) {
  UserMapper mapper = session.getMapper(UserMapper.class);
  User user = mapper.getUser("123");
}

三、Mybatis中的一些特性

1、mybatis-config.xml

Mybatis的配置文件mybatis-config.xml是整個框架中最重要的一個文件,它包含了Mybatis全局配置參數、類型別名和映射文件的配置信息。在實際應用中,mybatis-config.xml的作用類似於Hibernate中的hibernate.cfg.xml文件。

以下是一個簡單的mybatis-config.xml文件示例:


<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
  <typeAliases>
    <typeAlias type="com.example.domain.User" alias="User"/>
  </typeAliases>

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="mysql"/>
        <property name="password" value="mysql"/>
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <mapper resource="mappers/user.xml"/>
  </mappers>
</configuration>

2、映射文件

在Mybatis中,映射文件的作用是定義了一個或多個SQL語句和結果元映射。以user.xml為例,如下:


<mapper namespace="com.example.mapper.userMapper">
  <resultMap id="userResultMap" type="com.example.domain.User">
    <result property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="email" column="email"/>
    <result property="phone" column="phone"/>
  </resultMap>

  <select id="getUserById" resultMap="userResultMap" parameterType="java.lang.String">
    SELECT * FROM user WHERE id = #{id}
  </select>
</mapper>

映射文件中,定義了Namespace(命名空間)和一個或多個CRUD類型的方法等,具體可以參照Mybatis官方文檔進行理解。

3、動態SQL

動態SQL是Mybatis的一個非常實用的功能,它可以讓用戶編寫出靈活且功能強大的SQL語句。以下是一個例子:


<select id="getUserExt">
  SELECT * FROM user WHERE
  <if test="name != null">
    name = #{name},
  </if>
  <if test="phone != null">
    phone = #{phone},
  </if>
  <if test="email != null">
    email = #{email},
  </if>
</select>

如果用戶調用getUserExt方法時同時提供了name和phone參數,那麼生成的SQL語句如下:


SELECT * FROM user WHERE name = 'xxxx' and phone = 'xxxx';

四、Mybatis與Spring的整合

Spring是Java企業級開發中很具有代表性的開源框架,提供了全面的企業級應用程序支持,其中包括對Mybatis的支持。

Spring整合Mybatis的步驟如下:

第一步:在pom.xml文件中,添加Spring和Mybatis的依賴。

第二步:在Spring 的配置文件applicationContext.xml中,將所有屬性設置好,並且將DataSource、SqlSessionFactory和MapperScannerConfigurer註冊到Spring中。


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${dataSource.driver}"/>
  <property name="url" value="${dataSource.url}"/>
  <property name="username" value="${dataSource.username}"/>
  <property name="password" value="${dataSource.password}"/>
  <property name="initialSize" value="${dataSource.initialSize}"/>
  <property name="maxActive" value="${dataSource.maxActive}"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.example.mapper" />
</bean>

五、小結

Mybatis是一個優秀的Java持久層框架,提供了很多實用的功能。它的靈活性和高性能讓它成為了Java企業級開發的首選之一。通過以上的介紹和演示,相信大家已經對如何使用Mybatis以及Mybatis與Spring的整合有了一定的了解,希望這篇文章能夠對大家有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293562.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:14
下一篇 2024-12-26 13:14

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • agavi開發框架

    Agavi是一個基於MVC模式的Web應用程序開發框架,以REST和面向資源的設計為核心思想。本文章將從Agavi的概念、優點、使用方法和實例等方面進行詳細介紹。 一、概念 Aga…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29

發表回復

登錄後才能評論