在使用JAVA框架前要配置其環境,比如使用Hibernate、Struts等都需要對其環境進行配置,當然使用iBatis開發之前,也需要配置iBatis環境。
一、iBatis環境的配置只需三步
1.引入jar包
2.配置sqlMapConfig.xml文件
3.配置SqlMap.xml文件
二、概覽iBatis環境所需文件
三、配置iBatis環境具體操作如下
1.引入iBatis環境所需jar包
引jar方式見博客《Eclipse下導入外部jar包的3種方式》
iBatis環境所需jar包如下:
- iBatis核心包: ibatis-2.3.4.726.jar
- 單元測試工具包: junit-3.8.1.jar
- 2個日誌文件(信息打印到控制檯): commons-logging.jar和log4j-1.2.11.jar
- 數據庫驅動包(here MySql): mysql-connector-java-5.1.5-bin.jar
引入jar包後,添加日誌文件log4j.properties(爲了使執行的sql語句打印在控制檯上,此文件直接拷貝下面代碼即可)
# SqlMap logging configuration...
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
#log4j
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} - %p - %m%n
log4j.rootLogger=INFO, console
然後在MySql數據庫中創建A_User表,作爲測試使用,建表語句如下:
mysql> CREATE TABLE A_User (
ID INT NOT NULL auto_increment,
FIRST_NAME VARCHAR(50),
LAST_NAME VARCHAR(50),
EMAIL VARCHAR(50),
PRIMARY KEY (id)
);
2.添加並配置sqlMapConfig.xml文件
sqlMapConfig.xml文件是使用iBatis的起點,負責把所有的sql映射文件組合在一起,用於配置文件中告訴iBatis如何連接數據庫,以及獲取哪些sql映射文件
jar包引入完畢,添加sqlMapConfig.xml文件,配置此文件時需要考慮以下幾點:
-
我們將使用JDBC來訪問MySql數據庫,如ibatis_user
-
MySql的JDBC驅動程序是"com.mysql.jdbc.Driver"
-
連接URL是"jdbc:mysql://localhost:3309/ibatis_user" (我的MySql端口爲3309)
-
使用的用戶名和密碼是“root”和“123456”
-
SQL語句映射的所有操作將被描述在“SqlMap.xml”
-
下面對sqlMapConfig.xml文件進行配置,已將數據庫連接文件抽取出來:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="db.properties"/>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<!-- 事務管理器 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${user}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/wh/sql/SqlMap.xml"/> <!-- 對各SqlMap 文件的引用 -->
<!--<sqlMap resource="com/wh/sql/SqlMap1.xml"/>
<sqlMap resource="com/wh/sql/SqlMap2.xml"/>
<sqlMap resource="com/wh/sql/SqlMap3.xml"/>-->
</sqlMapConfig>
提取的數據庫連接文件db.properties,連接MySql數據庫(ibatis_user)的內容如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3309/ibatis_user
user=root
password=123456
連接Oracle的語法爲:
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:ibatis_user
user=root
password=123456
3.配置SqlMap.xml文件
SqlMap.xml文件包含了我們將要運行的sql語句。SqlMap是整個iBatis的核心價值所在。通過使用SqlMap可以顯著的節約數據庫操作的代碼量。
SqlMap是使用一個簡單的xml文件來實現從javabean到sql statements的映射,跟其他的框架或者對象映射工具相比,sqlmaps最大的優勢是簡單。
SqlMap.xml文件配置如下:
?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="User">
<!-- 使用別名可以避免每次都輸入類路徑全稱 -->
<typeAlias alias="User" type="com.wh.test.User"/>
<resultMap id="UserResult" class="User" >
<result property="id" column="ID"/>
<result property="firstName" column="FIRST_NAME"/>
<result property="lastName" column="LAST_NAME"/>
<result property="email" column="EMAIL"/>
</resultMap>
<!-- 根據id查詢用戶信息 -->
<select id="selectUserById" parameterClass="java.lang.String" resultMap="UserResult">
SELECT * FROM A_USER WHERE ID=#id#
</select>
</sqlMap>
至此iBatis的環境就簡單的配置完了,接下來繼續我們的iBatis之旅吧!