寫在前面
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