项目中遇到的ibaits简单配置

主要是在xml文件中配置:

applicationContext.xml

jdbc.properties

1. applicationContext.xml中获取jdbc所需参数:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>jdbc.properties</value>
		</property>
	</bean>

2. 装配数据库连接,如有多个库源可写多个:

<!-- 数据源配置 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${driver}"/>
		<property name="url" value="${url}"/>
		<property name="username" value="${username}"/>
		<property name="password" value="${password}"/>      
        <!--initialSize: 初始化连接-->  
		<property name="initialSize" value="15"/>  
		<!--maxIdle: 最大空闲连接-->  
		<property name="maxIdle" value="10"/>  
		<!--minIdle: 最小空闲连接-->  
		<property name="minIdle" value="8"/>  
		<!--maxActive: 最大连接数量-->  
		<property name="maxActive" value="100"/>  
		<!--removeAbandoned: 是否自动回收超时连接-->  
		<property name="removeAbandoned" value="true"/>
		<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->  
		<property name="removeAbandonedTimeout" value="180"/>  
		<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->  
		<property name="maxWait" value="60000"/>  
		<property name="poolPreparedStatements" value="false"/>
        <property name="defaultAutoCommit" value="true"/>
	</bean>
	
	<!-- 卡口数据源配置 -->
	<bean id="dataSourceKK" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${driverKK}"/>
		<property name="url" value="${urlKK}"/>
		<property name="username" value="${usernameKK}"/>
		<property name="password" value="${passwordKK}"/>      
        <!--initialSize: 初始化连接-->  
		<property name="initialSize" value="15"/>  
		<!--maxIdle: 最大空闲连接-->  
		<property name="maxIdle" value="10"/>  
		<!--minIdle: 最小空闲连接-->  
		<property name="minIdle" value="8"/>  
		<!--maxActive: 最大连接数量-->  
		<property name="maxActive" value="100"/>  
		<!--removeAbandoned: 是否自动回收超时连接-->  
		<property name="removeAbandoned" value="true"/>
		<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->  
		<property name="removeAbandonedTimeout" value="180"/>  
		<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->  
		<property name="maxWait" value="60000"/>  
		<property name="poolPreparedStatements" value="false"/>
        <property name="defaultAutoCommit" value="true"/>
	</bean>

3. 配置数据源映射到指定xml(xml中包含多个sql xml文件地址)

此处配置了两个库

<!-- 配置数据源-->
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="configLocation">
			<value>config/ibatis/SqlMapConfig.xml</value>
		</property>	
	</bean>
	
    <!-- 配置卡口数据源 -->
	<bean id="sqlMapClientKK" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSourceKK"/>
		<property name="configLocation">
			<value>config/ibatis/SqlMapConfig.xml</value>
		</property>	
	</bean>

4. 添加处理工具对象,程序中使用此对象工具来调用运行sql语句:

<!-- MYSQL数据库处理工具类-->
	<bean id="dbHandler" class="com.cqjk.dbhandler.DBHandler">
		<property name="sqlMapClient" ref="sqlMapClient"></property>
	</bean>
	
	<!-- ORACLE数据库处理工具类-->
	<bean id="oracledbHandler" class="com.cqjk.dbhandler.OracleDBHandler">
		<property name="sqlMapClient" ref="sqlMapClientKK"></property>
	</bean>


5. SqlMapConfig.xml 中指定需要用到的sql集合的xml文件:

<sqlMapConfig>
	        <sqlMap resource="config/ibatis/flow_and_speed.xml"/>
		<sqlMap resource="config/ibatis/syn_bayone.xml"/>
</sqlMapConfig>

flow_and_speed.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>
	<!-- 实时流量 -->
	<typeAlias alias="TrafficReal" type="com.cqjk.bean.TrafficReal"/>
	<!-- 车辆实时流量 -->
	<typeAlias alias="CarRealModel" type="com.cqjk.bean.CarRealModel"/>
	<!-- 更新流量 -->
	<update id="updateRealFlow" parameterClass="TrafficReal">
		update trrd_traffic_real set 
		  real_time = #real_time#,
		  zh = #zh#,
		  dl = #dl#,
		  xkc = #xkc#,
		  dxc = #dxc#,
		  hc = #hc#,
		  qtc = #qtc#,
		  speed = #speed#  
		  where begin_toll_code = #begin_toll_code# and end_toll_code = #end_toll_code# and derection = #derection#
	</update>
	
	<!-- 删除过期数据 -->
	<select id="flowList" parameterClass="TrafficReal" resultClass="java.lang.Integer">
		
			select count(*) from trrd_traffic_real  where real_time < #beginTime#
		
	</select>
	
	 <!-- 小时流量入库 -->
	 <insert id="insertTollStationHourFlow" parameterClass="TrafficReal">
		insert into trrd_traffic_real_hour(real_time,begin_toll_code,end_toll_code,zh,dl,xkc,dxc,hc,qtc,speed,trafficflow_congestion_lvl,sjly,avg_congestion_lvl,compre_congestion_lvl) 
		values(#real_time#,#begin_toll_code#,#end_toll_code#,#zh#,#dl#,#xkc#,#dxc#,#hc#,#qtc#,#speed#,#trafficflow_congestion_lvl#,#sjly#,#avg_congestion_lvl#,#compre_congestion_lvl#)
	 </insert>
	 
</sqlMap>

调用执行sql:

        /**
	 * ORACLE
	 */
	private OracleDBHandler oracleDbHandler;
	
    
    /**
     * MYSQL
     */
    private DBHandler dbHandler;
	
	{
           //获取对象
	    oracleDbHandler = (OracleDBHandler) SpringInit.ctx.getBean("oracledbHandler");
	    
	    dbHandler = (DBHandler) SpringInit.ctx.getBean("dbHandler");
	}
//调用 Integer dataCount = (Integer) oracleDbHandler.queryObject("flowList", null);
public class OracleDBHandler
{

    private SqlMapClient sqlMapClient;

    /**
     * 数据查询
     * 
     * @param sqlID ibatis中配置的SQL ID
     * @param param 查询条件参数对象
     * @return 数据结果
     */
    public Object queryObject(String sqlID, Object param) throws CustomException
    {
        Object object = null;
        
        try
        {
            object = sqlMapClient.queryForObject(sqlID, param);
        }
        catch (SQLException e)
        {
            throw new CustomException("DBHandler | queryObject Exception:", e);
        }
        return object;
    }}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值