我们在开发项目的时候,总要和数据库打交道,如何获取数据源,以什么样的方式来获取,成为了我们即简单又熟悉而且不得不注意的一个问题。

那么在这里我说三种获取数据源的常用方式:

一、通过配置文件来获取
  1. 首先在项目的classPath下面,建立一个配置文件,如jdbc.properties。
  2. 通过最原始的方式,解析这个配置文件,然后读取配置信息,再封装jdbc信息,从而得到数据源。
  3. 使用spring;通过spring去建立dataSource Bean。这个dataSource Bean里的信息同样来自己于你的配置文件。注意要在配置文件中加入:
<context:property-placeholder location="classpath:jdbc.properties" />

引入静态文件

4.Spring中的dataSource bean大致如下:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="maxWait" value="60000" />
<property name="maxIdle" value="20" />
<property name="minIdle" value="3" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="180" />
<property name="connectionProperties" value="clientEncoding=UTF-8" />
</bean>

dataSource bean

  5.配置文件的内容大致如下:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/springsecurity?allowMultiQueries=true
username=root
password=123456

jdbc配置文件

二、通过jndi来获取
  1. 说明:通过jndi的方式来获取,通常是在使用spring的情况下使用,当然也可以是其它方式。
  2. 首先,在tomcat的config目录下的context.xml文件中,加入如下语句:
<Resource driverClassName="com.mysql.jdbc.Driver" maxActive="120" maxWait="5000" maxldle="10" name="app" type="javax.sql.DataSource" url="jdbc:mysql://127.0.0.1:3306/goldApp?allowMultiQueries=true" username="root" password="123456"/>

jndi Resoure

  3.对于第”2”点的说明:name表示为jndi的名字, driverClassName是使用的驱动类,url当然就是连接相关信息,username是登录数据库的用户名,password是数据库密码。

  4.执行好第”2”步过后,要做的事情:在你的spring配置文件中,加入引入jndi的bean,如下:

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

jndi spring Bean

  5.对于第“4”点的说明:

    在value中java:comp/env/是前缀,app帮是content.xml中配置的jndi的名字。

三、在MATA-INFO 文件下加入Content.xml方式,让项目在部署时动态为tomcat加上jndi数据源

  1.首先,在MATA-INFO下建文件: Context.xml

  文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
driverClassName="com.mysql.jdbc.Driver"
maxActive="120"
maxWait="5000"
maxldle="10"
name="app"
type="javax.sql.DataSource"
url="jdbc:mysql://192.168.10.105:3306/springsecurity?allowMultiQueries=true"
username="root"
password="123456"
/>
</Context>

MATA-INFO Context内容

  2.说明:在mata-info下加入此文件后,然后在spring中采用使用jndi的方式引用数据库即可。这种的好处是。它在你发布项目的时候,会动态为你在tomcat的配置文件中加上数据源信息,所以就不用我们每次都手动到content.xml文件加入配置了。注意:动态加的数据源信息在servce.xml中。

为tomcat动态添加jndi数据源信息的更多相关文章

  1. Tomcat中配置JNDI数据源

    准备工作: Tomcat版本:tomcat6.0以上 下例中均使用MySQL数据库 将对应数据源的jar包和MySQL的驱动包拷贝至tomcat的lib文件夹下 一.全局数据源 1步骤一:配置 在to ...

  2. tomcat下配置jndi数据源c3p0

    Tomcat下通过JNDI配置数据源,使用c3p0连接池 首先在打开tomcat找到在conf文件下,找到server.xml 在server.xml文件中找到标签 在下面添加如下配置 <Res ...

  3. 【转】在Tomcat配置JNDI数据源的三种方式

    在我过去工作的过程中,开发用服务器一般都是Tomcat 数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean 然后在部署时再修改JNDI配置 我猜 ...

  4. 在Tomcat配置JNDI数据源的三种方式

    最近使用到了在tomcat下配置数据源的内容,在这里转载一篇文章记录下 转载自: http://blog.csdn.net/dyllove98/article/details/7706218 在我过去 ...

  5. SpringBoot运行时动态添加数据源

    此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!! 一.多数据源应用场景: 1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行 ...

  6. 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】

    一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self ...

  7. Tomcat 6 JNDI数据源详解

    数据库连接池这个概念应该都不陌生,在Java中连接池也就是数据库的连接池,它是一种采用连接复用的思想避免多次连接造成资源的浪费机制. 最常见的连接池就是DBCP和C30P了,在tomcat中默认使用的 ...

  8. JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源

    com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...

  9. JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

    一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar

随机推荐

  1. Python 模块chardet安装 setup.py

    http://pypi.python.org/pypi/chardet#downloads 下载chardet-2.*.*.tar.gz:解压到site-package文件夹, Python及其一些模 ...

  2. mysql数据库性能篇

    慢查询:超过设定时间的SQL语句会被记录到指定文件内 1.观察mysql慢查询默认的时间(默认10秒) show variables like 'long%'; 2.修改慢查询设定时间 set lon ...

  3. BHP Net Tool

    #导入需要用到的包 import sys import getopt import threading import socket import subprocess #定义全局变量 listen = ...

  4. 注册noip.com动态域名的步骤

    1.先打开这个网址 http://www.noip.com/ 2.点击页面右上绿色的Sing Up,进行注册 3.会出现这个页面,把这些填上 Create my hostname later这一项不打 ...

  5. Linux-磁盘及网络IO工作方式解析

    PIO与DMA 有必要简单地说说慢速I/O设备和内存之间的数据传输方式. PIO我们拿磁盘来说,很早以前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说如果我们读取磁盘文件到内存中,数据要经过C ...

  6. Golang里面使用protobuf(proto3)

    参考文章:https://developers.google.com/protocol-buffers/docs/gotutorial 1.执行指令: go envgo get github.com/ ...

  7. 【转】IE8浏览器无法保存Cookie的解决方法

    转自:http://blog.csdn.net/sjsm2007/article/details/17958145 使用IE8浏览器经常出现了无法保存Cookie的故障.每次打开网站需要重新登录,登录 ...

  8. Android应用开发-数据存储和界面展现(一)(重制版)

    常见布局 相对布局(RelativeLayout) 相对布局下控件默认位置都是左上角(左对齐.顶部对齐父元素),控件之间可以重叠 可以相对于父元素上下左右对齐,相对于父元素水平居中.竖直居中.水平竖直 ...

  9. 入侵本地Mac OS X的详细过程 转自https://yq.aliyun.com/articles/22459?spm=5176.100239.blogcont24250.10.CfBYE9

    摘要: 本文从提升权限漏洞的一系列巧妙的方法来绕过受保护的Mac OS X.有些已经被处于底层控制,但由于它们存在着更多的认证和修补程序,我们不妨让这些提供出来,以便需要的人学习它们.虽然我不只是要利 ...

  10. Beta版本冲刺——day7

    No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 站立式会议 今日计划表 人员 工作 ...