MyBatista入門到入土——開發項目的具體步驟

Mybatis從入門到入土——開發項目的具體步驟

Mybatis開發項目的具體步驟

項目中映入mybatis maven配置

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis.version}</version>
</dependency>

​ 可以根據最新的mybatis版本來進行開發

創建mybatis配置文件

​ mybatis的配置文件爲xml格式的,可以放在resource目錄下,具體內容:

<?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>
    <properties>
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/zhonghubatis?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=GMT"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/user.xml"/>
    </mappers>
</configuration>

​ 該文件主要是對mybatis進行全局配置,比如數據源、事務的配置,如datasource元素就是來配置數據源的,其中數據源就需要指定數據庫的一些配置信息;這裏不做過多闡述,後面會逐步說明

創建mapper.xml文件

​ 我們需要對錶所有操作sql就卸載這個文件裏。然後在mybatis的配置文件中引入這個mapper文件。

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

​ mappers元素可以有多個mapper文件,然後需要在mappers中進行引入然後mybatis才能使用到

創建Mapper接口

​ 開發者通過Mapper接口來和mapper.xml建立映射,當我們調用Mapper接口中的方法的時候,會間接調用到mapper.xml中的各種數據的sql操作。

​ Mapper接口通過如下的代碼和Mapper.xml建立關聯

<mapper namespace="com.zhonghu.mybatis.UserMapper">

​ user.xml中有很多db操作,這些操作會和UserMapper接口中的方法通過java動態代理建立映射關係,當調用UserMapper中的方法的時候,會間接的調用到user.xml中對應的操作。

Mybatis核心對象介紹

SqlSessionFactoryBuilder

​ 是一個用來構建SqlSessionFactory對象的構造器。其可用通過讀取mybatis的配置文件,然後構造一個SqlSessionFactory對象。

  • 創建SqlSessionFactory有兩種方式:
    • 一種是讀取Mybatis配置文件的方式
    • 一種是硬編碼的方式(Springboot)。

​ 其次將mybatis配置文件、mapper.xml文件、mapper.xml文件和Mapper接口的映射關係都事前解析好,然後放在java對象中。這樣就不用每次去重新解析xml了。

SqlSessionFactory

​ 是一個重量級的對象,用來創建SqlSession的工程。其創建比較耗時,所以一個db一般會創建一個對象,然後在系統運行過程中會一直存在。

​ SqlSessionFactory是一個接口,此接口有兩個實現:DefaultSqlSessionFactory和SqlSessionManager。一般是通過SqlSessionFactoryBuilder來創建的

SqlSession

​ 我們通過jdbc操作數據庫需要先要回去一個Connection的連接,然後拿着這個連接去db進行操作。

​ Mybatis中SqlSession就類似於jdbc中的Connection連接對象,在nybatis中叫做Sql會話對象,一般我們一個db操作使用一個SqlSession對象,所以這個對象一般是方法級別的,方法結束後對象就銷燬了,此對象可以用sqlSessionFactory.openSession方法來進行獲取

​ 我們可以直接通過SqlSession對象來調用mapper.xml中各種db操作,需要指定具體的操作的id,id格式爲namespace.操作的id

Mapper接口

​ Mapper接口中的方法和mapper.xml文件中的各種db操作建立了映射,是通過Mapper接口完整名稱+方法名稱和mapper.xml中的namespace+具體操作的id來進行關聯的,然後我們直接調用Mapper接口中的方法就可以間接的操作db了。

​ Mapper接口需要通過SqlSession獲取,傳入Mapper接口對應的Class對象,然後會返回這個接口的實例,如

UserMapper mapper = sqlSession.getMapper(UserMapper.class)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章