Spring整合jdbc
首先web.xml文件跟往常一样,加载spring容器和加载org.springframework.web.context.ContextLoaderListener读取applicationContext.xml文件初进行始化。
使用spring整合jdbc工具步骤:
1.使用连接池com.mchange.v2.c3p0.ComboPooledDataSource等工具创建数据源。
2.把数据源交给LazyConnectionDataSourceProxy进行管理
3.把LazyConnectionDataSourceProxy管理的数据源注入到需要的JavaBean中
applicationContext.xml文件内容
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <!-- 读取jdbc的配置文件中的jdbc连接属性 (以下两种都可以)-->
<!-- <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
lazy-init="false">
<property name="locations">
<list>
<value>classpath*:jdbc.properties</value>
</list>
</property>
</bean> -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath*:jdbc.properties</value>
</property>
</bean>
<!-- 配置数据源 -->
<bean id="mainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>${db.driverClass}</value>
</property>
<property name="jdbcUrl">
<value>${db.url}</value>
</property>
<property name="user">
<value>${db.userName}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
<property name="minPoolSize">
<value>20</value>
</property>
<property name="maxPoolSize">
<value>100</value>
</property>
<property name="initialPoolSize">
<value>20</value>
</property>
<property name="maxIdleTime">
<value>7200</value>
</property>
<property name="acquireIncrement">
<value>10</value>
</property>
<property name="maxStatements">
<value>20</value>
</property>
<!-- 每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!-- 定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>100</value>
</property>
<property name="acquireRetryDelay">
<value>10</value>
</property>
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
<!-- 测试连接的有效性 消耗很大 -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
<!-- 测试连接的有效性 消耗很大 自动检测连接状况 -->
<property name="testConnectionOnCheckin">
<value>false</value>
</property>
<property name="preferredTestQuery">
<value>SELECT count(*) FROM linktest</value>
</property>
</bean>
<!-- 用LazyConnectionDataSourceProxy管理数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource">
<ref local="mainDataSource" />
</property>
</bean>
<!-- 配置jdbc模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean> <bean id="BaseDaoImpl" class="com.qm.frame.core.dao.BaseDaoImpl">
<property name="dataSource" ref="dataSource" />
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>
jdbc.properties文件
db.driverClass=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/inter_tv
db.userName=root
db.password=root
BaseDaoImpl.class
package com.qm.frame.core.dao; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementSetter; public class BaseDaoImpl implements IBaseDao{
//spring的模板工具
private JdbcTemplate jdbcTemplate;
//jdbc的数据源
private DataSource dataSource;public int update(){
System.out.println("hashCode " + jdbcTemplate.hashCode());
try {
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("select * from EIBS_BASE_TASKINFO");
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println("checkId " + resultSet.getLong(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
}
Spring整合jdbc的更多相关文章
- JAVAEE——spring03:spring整合JDBC和aop事务
一.spring整合JDBC 1.spring提供了很多模板整合Dao技术 2.spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术. JDBCTemplate => JDBC模 ...
- Spring整合JDBC及事务处理
1.Spring整合JDBC DAO是数据访问对象(data access object)的简写.接口是实现松耦合的关键,Spring也鼓励使用接口,但不是强制的. 捕获异常时希望能尝试从异常状态中恢 ...
- Spring整合JDBC以及AOP管理事务
本节内容: Spring整合JDBC Spring中的AOP管理事务 一.Spring整合JDBC Spring框架永远是一个容器,Spring整合JDBC其实就是Spring提供了一个对象,这个对象 ...
- Spring整合JDBC实现简单的增删改
Spring整合JDBC实现简单的增删改: 1.导入Spring的包和数据库的驱动包: 2.选择一个数据源(dbcp和C3P0) 3.导入数据源的包(这里我们使用dbcp) <span styl ...
- Spring知识点总结(五)Spring整合JDBC
1. 回顾JDBC a. java操作关系型数据的API.导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库. b. 实现JDBC的六个步骤 ...
- Spring整合JDBC(连接池、JDBC模板、Dao配置到Spring容器、配置文件的优化)
1.Spring整合JDBC (1)导包(共12个): c3p0连接池.JDBC驱动(4个) Spring-jdbc.Spring-tx事务(2个) (2)JDBC模板对象(JDBCTemplate) ...
- spring整合jdbc方法一
用了一段时间的spring这,闲来没事做一下spring整合jdbc 目录文件 导入jar包 由于spring的jar包是在myeclipse中自动导入的有些暂时用不到的也没有处理. Emp类 pac ...
- Spring学习笔记(五)—— Spring整合JDBC
一.Spring对JDBC的支持 Spring提供了很多模板整合Dao技术 与JDBC的整合中,Spring中提供了一个可以操作数据库的对象——JdbcTemplate,该对象封装了JDBC技术,与D ...
- Spring整合JDBC temple
一.Spring对Jdbc的支持 Spring为了提供对Jdbc的支持,在Jdbc API的基础上封装了一套实现,以此建立一个 JDBC 存取框架. 作为 Spring JDBC 框架的核心, JDB ...
随机推荐
- 第五届山东ACM大赛汇总
A.angry_birds_again_and_again 简单积分: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem& ...
- UNIX网络编程-非阻塞connect和非阻塞accept
1.非阻塞connect 在看了很多资料之后,我自己的理解是:在socket发起一次连接的时候,这个过程需要一段时间来将三次握手的过程走完,如果在网络状况不好或者是其他的一些情况下,这个过程需要比较长 ...
- 模拟下载的进度条ProgressBar
作者:堕落的天使 图片效果 activity_main.xml(代码) <RelativeLayout xmlns:android="http://schemas.android.co ...
- unity 读取文本与写入文本
void writeData(string str,string file) { string parth = Application.dataPath; Strea ...
- JAVA的界面(Swing)
现在的程序很多在java中运行,很多时候是Web;很多服务端还是有一个简单的日志文件比较好:或者配置: 今天在看java图形界面开发时,看见已经不怎么更新的库.没有办法,市场决定一切,很多好的东西没有 ...
- python 实现树结构的打印
class TreeNode: def __init__(self,value): self.children = [] self.value = value def add_child(self,* ...
- FTP地址格式如下:“ftp://用户名:密码@FTP服务器IP”
FTP地址格式如下:“ftp://用户名:密码@FTP服务器IP”
- Row_Number()显示行号
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee Row_Number ...
- APNS 服务推送通知
1. 将app注册notification里面, 并从APNS上获取测试机的deviceToken. - (BOOL)application:(UIApplication *)application ...
- (Hibernate进阶)Hibernate映射——一对一单向关联映射(五)
映射原理 两个实体对象之间是一对一的关联映射,即一个对象只能与另外唯一的一个对象相对应.例如:一个人(Person)只有一张身份证(IdCard).我们看一下这个例子的对象模型,如下图所示: 对象模型 ...