主要分为三步:
1、引入properties配置文件
2、配置数据源
3、配置jdbc模板
下面是实例:
1、spring与jdbc
<!--自动扫描包--> <context:component-scan base-package="cn.com.sise.dao"/> <!-- 0、引入dbc.properties属性文件 --> <context:property-placeholder location="classpath:jdbc/jdbc.properties"/> <!-- 1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 2配置Jdbc模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 默认必须使用数据源 --> <property name="dataSource" ref="dataSource"/> </bean>
2、spring与dbcp
<!-- 1 扫描包--> <context:component-scan base-package="cn.com.sise"/> <!-- 2 引入数据库配置文件--> <context:property-placeholder location="classpath:dbcp/dbcp.properties"/> <!-- 3 配置数据源--> <bean id="dataSource2" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 4 配置dbcp模板--> <bean id="jdbcTemplate2" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource2"/> </bean>
3、spring与c3p0
<!-- 1 扫描包--> <context:component-scan base-package="cn.com.sise"/> <!-- 2 引入数据库配置文件--> <context:property-placeholder location="classpath:c3p0/c3p0.properties"/> <!-- 3 配置数据源--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 4 配置dbcp模板--> <bean id="jdbcTemplate2" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>
4、spring与druid 通常应用在javaweb,
介绍:(我也是刚刚接触)
Druid是阿里巴巴开发的号称为监控而生的数据库连接池,目前最好的数据库连接池。
特点:
1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
如图:
一、xml配置四个步:
1、引入properties配置文件
2、配置数据源
3、配置jdbc模板
4、配置SQL监控
二、详细:
1、引入druid的依赖
2、xml配置
<context:component-scan base-package="cn.com.sise"/> <!-- 1、数据源配置 --> <context:property-placeholder location="classpath:druid.properties"/> <!--2、配置数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass --> <property name="driverClassName" value="${jdbc.driver}" /> <!-- 基本属性 url、user、password --> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- 初始化连接大小 --> <property name="initialSize" value="1"/> <!-- 连接池最大使用连接数量 --> <property name="maxActive" value="10"/> <!-- 连接池最小空闲 --> <property name="minIdle" value="1"/> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="10000"/> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --> <property name="filters" value="stat" /> <!--监控SQL语句--> <property name="proxyFilters"> <list> <ref bean="stat-filter"/> </list> </property> </bean> <!--3、配置SQL监控--> <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter"> <!--慢SQL记录 缺省值为3000,也就是3秒--> <property name="slowSqlMillis" value="5000"/> <property name="logSlowSql" value="true"/> <!--SQL合并配置--> <property name="mergeSql" value="true"/> </bean> <!-- 4、配置Jdbc模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 默认必须使用数据源 --> <property name="dataSource" ref="dataSource"/> </bean>
3、配置web.xml
<!-- 1、监控SQL情况 --> <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <!--允许用户清统计数据--> <init-param> <param-name>resetEnable</param-name> <param-value>false</param-value> </init-param> <!--用户名--> <init-param> <param-name>loginUsername</param-name> <param-value>admin</param-value> </init-param> <!--密码--> <init-param> <param-name>loginPassword</param-name> <param-value>admin</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping> <!--2、连接池启用Web监控统计功能start --> <filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value> </init-param> </filter> <filter-mapping> <filter-name>DruidWebStatFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--3、初始化参数--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:DruidBean.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <!--4、配置首页--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
**********************************************************************************************************************************************************************************************************************************
了解:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>contextConfigLocationValue></param-value> </context-param>
作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。
param-name 设定上下文的参数名称。必须是唯一名称
param-value 设定的参数名称的值
由上面的初始化过程可知容器对于web.xml的加载过程是context-param >> listener >> fileter >> servlet