天天看點

深入淺出mybatis之入門使用

寫在前面

mybatis是一個持久層架構,可以支援SQL定制和存儲過程,實作資料庫記錄到Java POJO對象之間的映射。

是以說,mybatis是一個ORM架構。

這個ORM可以通過2種方式實作:xml配置,java注解。

使用mybatis可以大大提高資料庫應用程式的編寫效率,避免了幾乎所有的JDBC代碼和手動設定參數以及擷取結果集。

既然mybatis有這麼強大的功能,那麼如何使用它呢?以及mybatis具體有哪些核心元素和特性呢?

如何使用mybatis

mybatis主要是解決資料庫應用程式的中POJO對象與資料庫記錄之前的映射關系的。

也就是說,隻要是涉及關系型資料庫的應用程式設計,都可以使用mybatis作為持久層開發元件。

而多數與資料庫打交道的應用程式通常都是B/S架構,如Java Web應用程式;另外,Spring作為Java世界中非常流行的容器架構,是以通常mybatis存在2種應用場景:

其一:在Java Web應用中與Spring架構內建在一起使用,将mybatis中的相關元件交給Spring進行管理;

其二:在普通的資料庫應用程式中使用mybatis,此時mybatis的相應元件需要由程式員自己管理;

在使用mybatis之前,需要對其進行一些基礎配置,具體包括:

1.properties 屬性

2.settings 設定

3.typeAliases 類型别名

4.typeHandlers 類型處理器

5.objectFactory 對象工廠

6.plugins 插件

7.environments 環境

----environment 環境變量

--------transactionManager 事務管理器

--------dataSource

8.databaseIdProvider 資料庫廠商辨別

9.mappers 映射器

如上這些屬性,有些是必須明确配置的,有些可以不用配置,mybatis已經提供了預設值。

具體來講,environments和mappers是必須配置的,其他的可以不用明确配置。

舉個例子: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>
    <properties resource="jdbc.properties"></properties>

    <settings>
        <!-- 指定 MyBatis 所用日志的具體實作,未指定時将自動查找。 -->
        <setting name="logImpl" value="LOG4J" />
        <!-- 是否開啟自動駝峰命名規則(camel case)映射,即從經典資料庫列名 A_COLUMN 到經典 Java 屬性名 aColumn 
            的類似映射。 -->
        <setting name="mapUnderscoreToCamelCase" value="false" />
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            
            <!-- 使用自定義的事務管理器: 自動送出事務 -->
            <!-- <transactionManager type="org.chench.test.mybatis.transaction.MyJdbcTransactionFactory" /> -->
            <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>
        <!-- 将SQL語句寫在xml檔案中 -->
        <mapper resource="org/chench/test/mybatis/mapper/TestMapper.xml" />

        <!-- 将SQL語句寫在Java代碼中, 這裡有2種方式:  -->
        <!-- 方式一: 注冊每一個映射器接口,需要明确注冊每一個接口 -->
        <!-- 方式二: 指定映射器接口所在包,則該包下的所有映射器接口都會被注冊 -->
        <!-- <mapper class="org.chench.test.mybatis.mapper.impl.TestMapper" /> -->
        <package name="org.chench.test.mybatis.mapper.impl"/>
    </mappers>
</configuration>           

複制

詳細使用mybatis示例:https://gitee.com/cchanghui/test-mybatis.git

mybatis核心元件和特性

1.xml映射檔案

2.動态SQL

3.映射器注解:在mybatis3上才可用

4.SQL語句建構器

【參考】

http://www.mybatis.org/mybatis-3/zh/index.html