spring 中整合ibatis

1、概念表述

    iBatis2是一个轻量级的数据持久化框架,它是一个半自动化的ORMapping工具,数据库的操作依赖程序员自己书写的SQL,因此可以最大限度发挥JDBC的性能。据测试,它的性能和JDBC是一个级别的,但代码比JDBC简单的多,据说相对JDBC节省了60%的代码量。

    缺点是映射不灵活,有时候感觉很别扭。当领域对象关系复杂的时候,关联基本上行不通。

 

2、需要ibatis*.jar

 

3、在spring容器中整合ibatis

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=utf-8</value>
        </property>
        <property name="username">
            <value>test</value>
        </property>
        <property name="password">
            <value>test</value>
        </property>
    </bean>   
	
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    	<property name="configLocation">
    		<value>classpath:SqlMapConfig.xml</value> 
   		</property>
    	<property name="dataSource">
    		<ref local="dataSource"/>
    	</property> 
	</bean> 
	
	<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
		<property name="sqlMapClient">
			<ref bean="sqlMapClient" />
		</property>
	</bean>
    
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    	<property name="dataSource">
    		<ref local="dataSource"/>
    	</property> 
    </bean>

 

4、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>
	<settings
		cacheModelsEnabled="true"
		enhancementEnabled="true"
		lazyLoadingEnabled="true"
		errorTracingEnabled="true"
		maxRequests="32"
		maxSessions="10"
		maxTransactions="5"
		useStatementNamespaces="false"
	/>
	<sqlMap resource="com/test/bean/User.xml"/>
</sqlMapConfig>

 

说明:<settings>用于优化SqlMapClient实例的各选项。

 

5、User.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="User">
	<typeAlias alias="user" type="com.test.bean.User"/>
<resultMap id="userResult" class="user">
		<result property="userId" column="user_id" />
		<result property="loginName" column="user_login_name" />
		<result property="userName" column="user_name" />
		<result property="userPassword" column="user_password" />
		</resultMap>

<select id="getUserById" parameterClass="java.lang.String" resultMap="userResult">
		<![CDATA[
			select 
				*
			from user
			where userId = #userId#
		]]>
	</select>
</sqlMap>

 

 

说明:typeAlias 定义了本映射文件中的别名

         resultMap是结果集的映射

         <select> 为查询语句

 

 

 

 

你可能感兴趣的:(spring,sql,bean,jdbc,ibatis)