一、一般的配置方式

数据库连接配置在jdbc.properties文件中,这种方式有一个最大的缺点,数据库的配置信息对开发人员是完全可见的,十分方便程序员删库跑路。spring配置具体如下:

1、jdbc.properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test_table?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&
username=root
password=root

2、spring和druid配置:

    <!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
</bean>
<!-- JDBC Data Source. It is assumed you have MySQL running on localhost
port 3306 with username root and blank password. Change below if it's not
the case -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<!-- 基本属性 url、user、password -->
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/> <!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1"/>
<property name="minIdle" value="1"/>
<property name="maxActive" value="20"/> <!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000"/> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000"/> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000"/> <property name="validationQuery" value="SELECT 'x'"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="false"/>
<property name="maxPoolPreparedStatementPerConnectionSize" value="20"/> <!-- 配置监控统计拦截的filters -->
<property name="filters" value="stat"/>
</bean>

以上简单的配置就好了。

二、JNDI配置方式

JNDI需要配置spring和web容器(tomcat)相关配置文件(context.xml),这种配置的优点是spring配置中只包含jndi的名称,开发者看不到到具体数据库的账号和密码,为程序员删库跑路增加了难度。

1、Tomcat中context.xml配置如下:

    <Resource
name="jdbc/erp"
factory="com.alibaba.druid.pool.DruidDataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.7:3306/test_table?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull&amp;allowMultiQueries=true&amp;"
username="root"
password="root"
maxActive="50"
maxWait="10000"
removeabandoned="true"
removeabandonedtimeout="60"
logabandoned="false"
filters="stat"/>

2、除此之外在Tomcat中lib添加mysql和druid香瓜两个jar:

mysql-connector-java-5.1.38.jar
druid-1.0.18.jar

3、spring配置

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/erp"/>
</bean>

转载请注明出处

小结:推荐第二种JNDI的配置方式,对于第二种配置方式,开发者在本地Tomcat配置开发的数据库信息,生产环境Tomcat配置生产数据链接信息,生产数据对开发者不可见。

最新文章

  1. JS设置弹出小窗口。
  2. jQuery MiniUI开发系列之:创建组件对象
  3. 第三波假期干货——webstrom工具栏图标
  4. html+css+javascript实现列表循环滚动示例代码
  5. 【转】GitHub 中国区前 100 名到底是什么样的人?
  6. Struts2笔记——Action校验器
  7. ACM2027
  8. 关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
  9. 使用poi3.9的jar输出excel
  10. MVC 中使用 SignalR 实现推送功能
  11. 使用更清晰DebugLog开发和调试工具
  12. MySQL——数据类型
  13. 网络拓展知识 ACL NAT IPv6
  14. 69、django之Form组件
  15. 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告
  16. Sql Full-Text Filter
  17. win10优化开机进程
  18. 关于iwinfo的调试
  19. 20.0-uC/OS-III移植
  20. sparse_tensor feed_dict的时候十分不方便。

热门文章

  1. 图练习-BFS-从起点到目标点的最短步数(sdut 2830)邻接边表
  2. Word AddIn编译出现LINK2001 _main
  3. JavaScript加强
  4. Jmeter CSV Data Set Config参数化
  5. memset函数使用方法
  6. rabbitmq_坑
  7. webpack 3 &amp; React 的配置 。
  8. 使用点击二分图传导计算query-document的相关性
  9. 《算法C语言实现》————快速-查找算法(quick-find algorithm)
  10. Devenv 命令行开关