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

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

一、通过配置文件来获取
  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. 今天第一次接触到typescript,看了第一个知识点就是变量的声明,来回忆回忆,做做笔记

    以前只用过JavaScript原生写网站特效,今天还是第一次听说typescript的,然后看了一下它的基本知识,感觉很像Java,真的太像了,但是又有不同点.很让我惊奇看到的第一个知识点就和以前不同 ...

  2. 实现AJAX的异步交互的步骤

    <input type="button" value="异步请求"id="btn"> <script> 实现ajax ...

  3. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

    有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextV ...

  4. toUnsignedString详解

    /** * All possible chars for representing a number as a String */ final static char[] digits = { '0' ...

  5. 转:StrictMode使用

    最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...

  6. urlencode

    urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%.urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原 ...

  7. js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)

    原生javascript方法: var a = document.getElementById("dom"); del_space(a); //清理空格 var b = a.chi ...

  8. 10天学会phpWeChat——第七天:创建一个自适应PC网站+H5移动端的模块

    本教程基于phpWeChat核心框架1.1.0+版本.下载地址:http://s.phpwechat.com/app_38026ed22fc1a91d92b5d2ef93540f20 通过前面六讲的系 ...

  9. Eclipse关联源码

    Eclipse关联源码 1.通常查看jdk的源码 1.悬浮在jdk的某class,右击点击Open Declaration 或F3,则调整其源码.如果没有关联源码,则会弹出: 2.点击“Attach ...

  10. css3 em rem等单位的区别

    px:绝对单位,页面按精确像素展示 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值. rem:相对 ...