JavaWeb:Tomcat下配置数据源连接数据库
2014-09-01 17:53
579 查看
习惯了以硬编码的形式在程序中建立数据库连接,用完就在finally语句块中close一下就结束了。对于重视数据库连接数的应用来说,这样子做会耗费大量的时间和数据库资源,而且硬编码的形式也不甚灵活。
在Tomcat这个Java Web容器下通过配置DataSource(数据源)对象可以解决上面所述的问题。JDBC中的javx.sql.DataSource接口负责建立于数据库的连接,程序中直接从数据源中获取数据库连接。DataSource对象由Servlet容器Tomcat进行管理,其实获取数据库连接是从连接池中选取空闲连接。它基于Java中的JNDI(Java 命名与目录接口)来实现。
配置数据源context.xml:
在Java Web应用的META-INF目录下新建一个context.xml配置文件,其中的<Resource>元素用于定义JNDI资源,内容如下:
<Resource>元素的属性说明:
Name:指定Resource资源的JNDI名称;
auth:可选填Container或Application,指定Resource的管理者;
type:指定Resource资源的Java类名;
maxActive:设置数据库连接池中活动状态连接的最大数目,为0则不受限制;
maxIdle:设置数据库连接池中空闲状态连接的最大数目,为0则不受限制;
maxWait:设置数据库连接池中空闲状态连接的最长等待时间,超时则抛出异常,为-1则可无限等待;
username:指定数据库的用户名;
password:指定连接数据库的密码;
driverClassName:指定数据库的JDBC驱动器的Driver实现类名字(这里为MySQL数据库连接);
url:连接数据库的url。
注:可在<CATALINA_HOME>/conf/server.xml 文件中的对应<Host>元素中如上配置<Resource>子元素以供Tomcat容器内的多个Web应用使用。
配置JNDI资源引用web.xml:
Java Web应用中要使用JNDI资源,必须在web.xml中配置对该JNDI资源的引用<resource-ref>元素。内容如下:
<resource-ref>元素的子元素说明:
description:对所引用JNDI资源的描述;
res-ref-name:引用的JNDI资源的名称,与上面<Resource>元素中的name属性一致;
res-type:引用的JNDI资源的类名称,与上面<Resource>元素中的type属性一致;
res-auth:引用资源的管理者,上面<Resource>元素中的auth属性一致;
Web应用中使用数据源:
使用DataSource连接数据库,不再用以下方式来建立到数据库的连接了。
而是使用相对简单些的JNDI资源访问方式lookup方法,如下:
注:使用DataSource方式连接数据库,当使用完数据库操作之后调用各种资源对象的close方法时,由Tomcat容器调回这些连接到连接池中进行管理,而不是直接与数据库断开连接。
本文出自 “蚂蚁” 博客,请务必保留此出处/article/4439307.html
在Tomcat这个Java Web容器下通过配置DataSource(数据源)对象可以解决上面所述的问题。JDBC中的javx.sql.DataSource接口负责建立于数据库的连接,程序中直接从数据源中获取数据库连接。DataSource对象由Servlet容器Tomcat进行管理,其实获取数据库连接是从连接池中选取空闲连接。它基于Java中的JNDI(Java 命名与目录接口)来实现。
配置数据源context.xml:
在Java Web应用的META-INF目录下新建一个context.xml配置文件,其中的<Resource>元素用于定义JNDI资源,内容如下:
<Context reloadable="true" > <Resource name="jdbc/ DBname " auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/ DBname?autoReconnect=true" /> </Context>
<Resource>元素的属性说明:
Name:指定Resource资源的JNDI名称;
auth:可选填Container或Application,指定Resource的管理者;
type:指定Resource资源的Java类名;
maxActive:设置数据库连接池中活动状态连接的最大数目,为0则不受限制;
maxIdle:设置数据库连接池中空闲状态连接的最大数目,为0则不受限制;
maxWait:设置数据库连接池中空闲状态连接的最长等待时间,超时则抛出异常,为-1则可无限等待;
username:指定数据库的用户名;
password:指定连接数据库的密码;
driverClassName:指定数据库的JDBC驱动器的Driver实现类名字(这里为MySQL数据库连接);
url:连接数据库的url。
注:可在<CATALINA_HOME>/conf/server.xml 文件中的对应<Host>元素中如上配置<Resource>子元素以供Tomcat容器内的多个Web应用使用。
配置JNDI资源引用web.xml:
Java Web应用中要使用JNDI资源,必须在web.xml中配置对该JNDI资源的引用<resource-ref>元素。内容如下:
<web-app> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/DBname </res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
<resource-ref>元素的子元素说明:
description:对所引用JNDI资源的描述;
res-ref-name:引用的JNDI资源的名称,与上面<Resource>元素中的name属性一致;
res-type:引用的JNDI资源的类名称,与上面<Resource>元素中的type属性一致;
res-auth:引用资源的管理者,上面<Resource>元素中的auth属性一致;
Web应用中使用数据源:
使用DataSource连接数据库,不再用以下方式来建立到数据库的连接了。
Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); String dbUrl = "jdbc:mysql://localhost:3306/DBname"; String dbUser = "root"; String dbPwd = "123"; conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
而是使用相对简单些的JNDI资源访问方式lookup方法,如下:
Context sourceCtx = new InitialContext(); DataSource ds = (DataSource) sourceCtx.lookup("java:comp/env/jdbc/ DBname "); conn = ds.getConnection();
注:使用DataSource方式连接数据库,当使用完数据库操作之后调用各种资源对象的close方法时,由Tomcat容器调回这些连接到连接池中进行管理,而不是直接与数据库断开连接。
本文出自 “蚂蚁” 博客,请务必保留此出处/article/4439307.html
相关文章推荐
- JavaWeb:Tomcat下配置数据源(JNDI)连接数据库
- JavaWeb:Tomcat下配置数据源连接数据库
- javaWeb——struct2 配置tomcat数据源方法连接数据库
- DataSource数据源连接数据库的配置及实例(Java)
- tomcat6部署web配置数据库连接
- SpringMVC配置双数据源,一个java项目同时连接两个数据库
- java web 用tomcat连接数据库问题
- JavaWeb:Tomcat下配置数据源连接数据库
- 在tomcat中用jndi配置数据源启动java web程序
- [JAVA web]tomcat 45s,navicat备份,C3P0配置JNDI数据源
- Java Tomcat中配置JNDI连接数据库简单示例
- 配置Tomcat数据源连接数据库
- 【转】Java程序数据库连接,数据源配置,数据库连接池
- 4.JavaWeb基础 page指令和Tomcat连接数据库
- java连接数据源-读取tomcat数据源配置
- Tomcat数据源连接多个数据库配置
- 阿里云服务器Linux配置数据库、jre、tomcat、部署javaweb
- java使用JNDI 获取weblogic配置的数据源 连接数据库
- Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法
- Tomcat数据源,Jsp/Java使用JDNI服务来实现数据库连接