Spring中使用JDBC连接数据库的配置
来源:互联网 发布:北京学唱歌 知乎 编辑:程序博客网 时间:2024/05/21 09:46
在spring 的applicationContext配置文件中,需要配置数据源:
用的是dbcp的连接池。
然后,spring提供了一个JDBC的DaoSupport可供我们使用,就像集成hibernate时提供的hibernate的DaoSupport一样。这里叫JdbcDaoSupport。假设我们有个叫我们像如下的方式使用:
因为完全是一个Demo,所以BaseDao这个接口里面只有一个名为get的方法。
然后,具体的业务dao都可以继承自ImplBaseDao
我惊叹spring的地方在于,对于这句话中,第二个参数new PassengerInfoMapper()来自于spring提供一个接口的实现:
可以看见,通过这样的方式,实现了bean与rs的一个转换,虽然很原始,但是这样做比我们完全靠自己去写还是要方便很多。
好了,说说spring集成jdbc的事务和配置和对dao的托管。
在applicationContext中
以上是对事务的配置,大同小异,不明白的可以参照相关spring事务配置说明的文档。
接下来是对dao service action等我们常见类型bean的托管。
其实很简单了,不写大家都会。
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <list>
- <value>classpath*:jdbc.properties</value>
- </list>
- </property>
- </bean>
- <!-- dbcp pool config -->
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="maxIdle" value="${jdbc.maxIdle}"></property>
- <property name="maxActive" value="${jdbc.maxActive}"></property>
- <property name="maxWait" value="${jdbc.maxWait}"></property>
- <property name="minIdle" value="${jdbc.minIdle}"></property>
- <property name="driverClassName"
- value="${jdbc.driverClassName}">
- </property>
- <property name="url" value="${jdbc.url}"></property>
- <property name="username" value="${jdbc.username}"></property>
- <property name="password" value="${jdbc.password}"></property>
- </bean>
用的是dbcp的连接池。
然后,spring提供了一个JDBC的DaoSupport可供我们使用,就像集成hibernate时提供的hibernate的DaoSupport一样。这里叫JdbcDaoSupport。假设我们有个叫我们像如下的方式使用:
- public class ImplBaseDao extends JdbcDaoSupport implements BaseDao {
- public List get(String ID) {
- return null;
- }
- }
因为完全是一个Demo,所以BaseDao这个接口里面只有一个名为get的方法。
- public interface BaseDao {
- public List get(String ID);
- }
然后,具体的业务dao都可以继承自ImplBaseDao
- public class PassengerInfoDao extends ImplBaseDao {
- public List<PassengerInfo> list = new ArrayList<PassengerInfo>();
- @SuppressWarnings("unchecked")
- public List<PassengerInfo> getPassengerInfo(String id) {
- String sql = "select * from passengerinfo where id="+id;
- return (List<PassengerInfo>) this.getJdbcTemplate().query(sql,
- new PassengerInfoMapper());
- }
- }
我惊叹spring的地方在于,对于
- this.getJdbcTemplate().query(sql,new PassengerInfoMapper());
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.springframework.jdbc.core.RowMapper;
- import com.travelsky.web.pojo.PassengerInfo;
- public class PassengerInfoMapper implements RowMapper {
- public Object mapRow(ResultSet rs, int index) throws SQLException {
- PassengerInfo passengerInfo = new PassengerInfo();
- passengerInfo.setId(rs.getInt("id"));
- passengerInfo.setPaName(rs.getString("paName"));
- return passengerInfo;
- }
- }
可以看见,通过这样的方式,实现了bean与rs的一个转换,虽然很原始,但是这样做比我们完全靠自己去写还是要方便很多。
好了,说说spring集成jdbc的事务和配置和对dao的托管。
在applicationContext中
- <!-- 事务管理 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- </bean>
- <bean id="transactionInterceptor"
- class="org.springframework.transaction.interceptor.TransactionInterceptor">
- <property name="transactionManager" ref="transactionManager" />
- <property name="transactionAttributes">
- <props>
- <!-- 定义规则 -->
- <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
- <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
- </props>
- </property>
- </bean>
- <bean id="transactionProxyCreator"
- class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
- <property name="beanNames">
- <value>*Service</value>
- </property>
- <property name="interceptorNames">
- <list>
- <value>transactionInterceptor</value>
- <!--
- 此处增加新的Interceptor
- -->
- </list>
- </property>
- </bean>
- <bean
- class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
- <property name="transactionInterceptor"
- ref="transactionInterceptor" />
- </bean>
以上是对事务的配置,大同小异,不明白的可以参照相关spring事务配置说明的文档。
接下来是对dao service action等我们常见类型bean的托管。
其实很简单了,不写大家都会。
- <!-- project实例配置 start -->
- <bean id="baseDao" class="com.travelsky.web.core.dao.ImplBaseDao">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- </bean>
- <bean id="JdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
- <property name="dataSource">
- <ref bean="dataSource"/>
- </property>
- </bean>
- <!-- 将所有的dao按顺序配置在这个地方 -->
- <bean id="passengerInfoDao"
- class="com.travelsky.web.dao.PassengerInfoDao">
- <property name="dataSource">
- <ref bean="dataSource"/>
- </property>
- <!-- 给其直接配置dataSource或者配置jdbcTemplate都可以实现与数据源的引用-->
- <!--
- <property name="jdbcTemplate">
- <ref bean="JdbcTemplate"/>
- </property>
- -->
- </bean>
- <!-- 将所有的service按顺序配置在这个地方 -->
- <bean id="passengerInfoService"
- class="com.travelsky.web.service.PassengerInfoService">
- <property name="passengerInfoDao">
- <ref bean="passengerInfoDao" />
- </property>
- </bean>
- <!-- 将所有的action配置在这个地方 -->
- <bean name="/painfo"
- class="com.travelsky.web.web.PassengerInfoAction">
- <property name="passengerInfoService">
- <ref bean="passengerInfoService" />
- </property>
- </bean>
- <!-- project实例配置 end -->
阅读全文
0 0
- Spring中使用JDBC连接数据库的配置
- Spring中使用纯JDBC连接数据库的配置
- 在Red5中使用Spring-JDBC配置MySql连接池
- spring(数据库)jdbc配置、spring与jdbc编程的结合和jdbc模板方式的使用
- java项目使用spring jdbc连接数据库
- 配置BEA WebLogic 8.1 JDBC连接--Oracle 8.1.7数据库使用的WebLogic 8.1 JDBC配置
- 配置BEA WebLogic 8.1 JDBC连接--Oracle 8.1.7数据库使用的WebLogic 8.1 JDBC配置
- spring-JDBC 连接配置
- JSP中使用JDBC连接MySQL数据库的详细步骤
- Java中使用JDBC连接数据库操作的步骤
- JSP中使用JDBC连接MySQL数据库的详细步骤
- JSP中使用JDBC连接MySQL数据库的详细步骤
- spring jdbc连接池的配置
- Java中使用jdbc连接数据库详解
- java中使用jdbc连接SQLite3数据库
- Java中使用JDBC连接oracle数据库
- Java中使用jdbc连接数据库
- Eclipse中使用JDBC连接MYSQL数据库
- Spring boot中使用springfox来生成Swagger Specification小结
- linux查端口占用
- 关于Android中aidl的关键词in,out,inout的探索
- jsp特殊符号集
- 编译mongo driver
- Spring中使用JDBC连接数据库的配置
- 省市县三级联动AJAX实现(附MySQL数据)
- java 语言 基础 总结【2】- 写在编程之前
- jq:prop()、attr()、data()异同
- C# 获取文件名和扩展名
- redis 与 spring整合 hash 增删改操作 list增删改操作
- Linux驱动获取进程PID和进程名字
- java生成一维码和二维码
- shiro讲解 之 Authorization (三)