(1)数据源配置

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@192.168.0.153:1521:OANET"></property>
<property name="username"><value>gd_base</value></property>
<property name="password"><value>11</value></property>
<property name="maxActive"><value>80</value></property>
<property name="minIdle"><value>5</value></property>
<property name="initialSize"><value>10</value></property>
<property name="maxWait"><value>60000</value></property>
<property name="poolPreparedStatements"><value>true</value></property>
<property name="maxOpenPreparedStatements"><value>20</value></property>
<property name="validationQuery"><value>select 1 from dual</value></property>
<property name="testWhileIdle"><value>true</value></property>
<property name="testOnBorrow"><value>false</value></property>
<property name="testOnReturn"><value>false</value></property>
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property>
<property name="minEvictableIdleTimeMillis"><value>300000</value></property>
<property name="filters"><value>stat,wall</value></property>
<!-- 打开 removeAbandoned 功能 -->
<property name = "removeAbandoned" value = "true" />
<!-- 1800 秒,也就是 30 分钟 -->
<property name = "removeAbandonedTimeout" value ="1800" />
<!-- 关闭 abanded 连接时输出错误日志 -->
<property name = "logAbandoned" value = "true" />
</bean>

配置参数的解释:

配置参数 参数含义
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">

destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.(数据库连接关闭)
class="com.alibaba.druid.pool.DruidDataSource"
DRUID连接池,DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,
可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池.和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource

<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>

使用的JDBC驱动的完整有效的java 类名
连接数据库要加载驱动,oracle.jdbc.driver.OracleDriver 可以认为是驱动类的名字,前面oracle.jdbc.driver是包名,类名是OracleDriver

<property name="url" value="jdbc:oracle:thin:@192.168.0.153:1521:OANET"></property>

传递给JDBC驱动的用于建立连接的URL
jdbc:oracle:thin:@192.168.0.153:1521:OANET
jdbc:表示采用jdbc方式连接数据库
oracle:表示连接的是oracle数据库
thin:表示连接时采用thin模式(oracle中有两种模式,分别是oci和thin)
jdbc:oralce:thin:是一个jni方式的命名
@192.168.0.153表示地址
1521和orcl表示端口和数据库名

oracle的jdbc连接方式:oci和thin
oci和thin是Oracle提供的两套Java访问Oracle数据库方式。
thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。
oci是一种胖客户端的连接方式,即采用这种连接方式需要安装oracle客户端。oci是Oracle Call Interface的首字母缩写,是ORACLE公司提供了访问接口,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度快,但是需要安装和配置数据库。

<property name="username"><value>gd_base</value></property> 传递给JDBC驱动的用于建立连接的用户名
<property name="password"><value>11</value></property> 传递给JDBC驱动的用于建立连接的密码
<property name="maxActive"><value>80</value></property> 最大连接数量
<property name="minIdle"><value>5</value></property> 最小空闲连接数量
<property name="initialSize"><value>10</value></property> 初始化连接数量
<property name="maxWait"><value>60000</value></property> 超时等待时间以毫秒为单位
<property name="poolPreparedStatements"><value>true</value></property> 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
<property name="maxOpenPreparedStatements"><value>20</value></property> statement池能够同时分配的打开的statements的最大数量, 如果设置为0表示不限制
<property name="validationQuery"><value>select 1 from dual</value></property>

用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。
如果是MySql的话就用<property name="validationQuery"><value>select *</value></property>

<property name="testWhileIdle"><value>true</value></property> 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
<property name="testOnBorrow"><value>false</value></property> 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
<property name="testOnReturn"><value>false</value></property> 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property> 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位
<property name="minEvictableIdleTimeMillis"><value>300000</value></property> 连接在池中保持空闲而不被空闲连接回收器线程
<property name="filters"><value>stat,wall</value></property> 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall
<property name = "removeAbandoned" value = "true" />  removeAbandoned: 是否自动回收超时连接
<property name = "removeAbandonedTimeout" value ="1800" /> removeAbandonedTimeout: 超时时间(以秒数为单位)
<property name = "logAbandoned" value = "true" />  连接被泄露时是否打印 

(2)Spring为我们提供了SqlMapClientDaoSupportExtend支持类,所有DAO继承这个类,就会自动获得JdbcTemplate(前提是注入dataSource)

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>

JdbcTemplate主要提供下列方法:

  1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

  2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

  3、query方法及queryForXXX方法:用于执行查询相关语句;

  4、call方法:用于执行存储过程、函数相关语句。

Spring配置常识的更多相关文章

  1. Spring配置c3p0数据源时出错报:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

    今天在使用Spring配置c3p0数据源时,使用的数据库是mysql,服务器是tomcat,运行时报了一个 java.lang.NoClassDefFoundError: com/mchange/v2 ...

  2. Spring配置汇总

    现在主流的JavaWeb应用几乎都会用到Spring,以下是Spring的配置,以及结合Web的SpringMVC配置的汇总. jar包的引入 与Web项目集成 Spring配置文件 SpringMV ...

  3. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  4. 解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element

    解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element 'beans'.Referenced file conta ...

  5. spring配置详解

    1.前言 公司老项目的后台,均是基于spring框架搭建,其中还用到了log4j.jar等开源架包.在新项目中,则是spring和hibernate框架均有使用,利用了hibernate框架,来实现持 ...

  6. memcached 学习 1—— memcached+spring配置

    memcached 学习目录: memcached 学习 1—— memcached+spring配置 这几天自己搭建项目环境,解决问题如下: 有关常见的配置这里没有列出,中间遇到的搭建问题比较顺利g ...

  7. 解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException

    解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException这个问题出现的原因:一般在使用annotation的方式注入spring的bean 出现的,具体 ...

  8. spring配置中,properties文件以及xml文件配置问题

    spring方便我们的项目快速搭建,功能强大,自然也会是体系复杂! 这里说下配置文件properties管理的问题. 一些不涉及到代码逻辑,仅仅只是配置数据,可以放在xxxx.properties文件 ...

  9. IntelliJ IDEA通过Spring配置连接MySQL数据库

    先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示: 点击Database工具窗口左上角添加按钮"+",选择Import from sour ...

随机推荐

  1. final 关键字的作用及应用案例

    final关键字的作用如下: 1.可以修饰成员变量,但不能对该成员变量进行修改: 2.可以修饰局部变量,但不能地该局部变量进行修改: 3.可以修饰成员方法(继承),但不能对父类成员方法进行重写: 4. ...

  2. [bug] 验证selenium的显式和隐式等待而发现的一个低级错误

    隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步.按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它 ...

  3. 2080 特殊的质数肋骨 USACO (深度优先搜索)

    农民约翰的母牛总是产生最好的肋骨. 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个 ...

  4. 【转】mysql explain执行计划详解

      1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询.   2).select_type列常见的有: A:simp ...

  5. 通过set-context 控制namespace 进行隔离

    kubernetes RBAC  需要了解 rules  roles  subjects  rolebindings(role绑定) rules 是一组操作 verbs .资源 . api组. 如果只 ...

  6. ROS教程4 ROS自定义srv类型及使用

    创建srv文件 在上一节单独为自定义的消息和服务的包 test_msgs 里面 创建 srv文件夹 进入创建 testsrv.srv 文件 ,内容为: (srv文件和msg文件类似,唯一不同的是它包含 ...

  7. spring mvc 中web.xml配置信息解释

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  8. centos7搭建kibana

    上一节elasticsearch搭建地址 https://www.cnblogs.com/mutong1228/p/10181544.html 学习了上一篇的搭建,理解了命令的含义之后,本节就非常方便 ...

  9. C++ 指针常量和常量指针

    1.指针常量(*const):对应指针变量,即指针本身是常量,指针指向的内容可以被修改. 2.常量指针(const*):常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改.

  10. IntelliJ IDEA 常用设置 (二)

    一. 代码提示和补充功能有一个特性:区分大小写. 区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer IntelliJ IDEA 是不会帮我们提示或是代码补充的, ...