ibatis+spring+dbcp 操作数据源
来源:互联网 发布:如何推广一个软件 编辑:程序博客网 时间:2024/06/15 19:15
简单的实现了功能,先做一下备份,以免日后忘记。
1、创建一个maven模块:mvn archetype:create -DgroupId=xxx -DartifactId=xxx
2、配置maven依赖:
dependencies> <dependency> <groupId>mysql</groupId> <artifactId> mysql-connector-java</artifactId> <version> 5.0.5</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-sqlmap</artifactId> <version>2.3.4.726</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.0.5.RELEASE</version> </dependency> </dependencies>3、配置数据源及ibatis客户端(用spring的org.springframework.orm.ibatis.SqlMapClientFactoryBean创建SqlMapClient、dbcp创建连接池):
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd" default-autowire="byName"> <bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://ip:port/database?characterEncoding=xx"/> <property name="username" value=""/> <property name="password" value=""/> <property name="initialSize" value="2"/> <property name="maxIdle" value="10"/> <property name="minIdle" value="2"/> <property name="maxWait" value="200"/> <property name="defaultTransactionIsolation" value="4"/> </bean> <bean id="mySqlSqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="classpath:com/study/dao/sqlMaps/config.xml"/> <property name="mappingLocations"> <value>classpath*:com/study/dao/sqlMaps/study.xml</value> </property> </bean> </beans>
4、配置ibatis配置文件和映射文件:
i配置文件
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="true" /> <!--<typeHandler jdbcType="VARCHAR" javaType="java.lang.String" callback="com.ibatis.sqlmap.engine.type.StringTypeHandler"/>--> <!--<sqlMap resource="com/my/dao/sqlMap/config/study.xml"/>--> <sqlMap resource="com/study/dao/sqlMaps/useless/useless.xml"/><!--此处必须包含一个sqlMap标签,并且要有实际存在的xml映射文件,映射文件只包含一个sqlMap标签好可,否则解析配置文件时会报错--></sqlMapConfig>ii映射文件:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="study"> <typeAlias alias="study" type="com.study.bean.Study"/> <resultMap id="studyResultMap" class="study"> <result property="id" column="id" />........ </resultMap> <select id="getCount" resultClass="int"> sql </select> <insert id="insert" parameterClass="study">sql </insert></sqlMap>
iii空的映射文件
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="study"></sqlMap>
5、配置dao:
dao继续org.springframework.orm.ibatis.support.SqlMapClientDaoSupport,并把第3步中配置的SqlMapClient和dataSource注给dao:
package com.study.dao.impl;import com.ibatis.sqlmap.client.SqlMapClient;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;import javax.sql.DataSource;public class BaseDao extends SqlMapClientDaoSupport{ public Object queryForObject(String s){ return super.getSqlMapClientTemplate().queryForObject(s); } public Object insert(String s,Object o){ return super.getSqlMapClientTemplate().insert(s,o); } private SqlMapClient baseSqlMapClient; private DataSource baseDataSource; public void setBaseSqlMapClient(SqlMapClient baseSqlMapClient) { super.getSqlMapClientTemplate().setSqlMapClient(baseSqlMapClient); } public void setBaseDataSource(DataSource baseDataSource) { super.getSqlMapClientTemplate().setDataSource(baseDataSource); }}然后把BaseDao交由spring管理:
<bean id="studyDao" class="com.study.dao.impl.StudyDaoImpl"> <property name="baseDataSource" ref="mysqlDataSource"/> <property name="baseSqlMapClient" ref="mySqlSqlMapClient"/> </bean>
6、junit单元测试
单元测试类继续org.springframework.test.AbstractDependencyInjectionSpringContextTests,并实现它的getConfigLocations()方法来返回spring配置文件,这个做可以通过setter方法去注入spring管理的bean
0 0
- ibatis+spring+dbcp 操作数据源
- Spring数据源C3P0,DBCP
- spring运用DBCP连接数据源
- Spring配置数据源(DBCP数据源、c3p0数据源)
- Spring+ibatis动态管理数据源
- 配置Spring数据源c3p0与dbcp
- 配置Spring数据源c3p0与dbcp
- 配置Spring数据源c3p0与dbcp
- 配置Spring数据源c3p0与dbcp
- (转)配置Spring数据源c3p0与dbcp
- 配置Spring数据源dbcp与c3p0
- 配置Spring数据源c3p0与dbcp
- Spring 配置数据源c3p0与dbcp
- 配置Spring数据源c3p0与dbcp
- Spring的数据源配置 DBCP、C3P0、JNDI
- Spring 数据库数据源 DBCP配置说明
- Mysql配置Spring数据源c3p0与dbcp
- 配置Spring数据源c3p0与dbcp
- Ubuntu12.04配置NVIDIA cuda5.5经验帖
- leetcode-Best Time to Buy and Sell Stock III
- css 选择器
- gem5中查看缓存信息cache_impl.hh
- 发现一个编程练习的地方
- ibatis+spring+dbcp 操作数据源
- oracle基础必备
- H_Dp
- 除了工作没有自己的爱好
- Java开发手册 Java学习手册教程(MtJava开发手册)
- sleep()和wait()有什么区别?
- zkCli.sh授命备忘
- POJ 3468 A Simple Problem with Integers (线段树成段更新) 解题报告
- 用vb.net做分页显示的功能