今天在看一个JavaWeb项目资料时,里面讲到了配置数据源的方法,在此,和大家分享一下。
1. 在Tomcat安装目录下conf目录下server.xml中最后的“</Host>”标记之前添加
如下配置:
<Context path="/mycart" docBase="mycart"
debug="5" reloadable="true" crossContext="true" workDir="">
<Resource name="jdbc/cartds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password=""
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost/test"/>
</Context>
<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。
2. 在本应用的WEB-INF目录下web.xml文件中添加配置
Java Web应用中要使用JNDI资源,必须在web.xml中配置对该JNDI资源的引用<resource-ref>元素。内容如下:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/cartds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>元素的子元素说明:
description:对所引用JNDI资源的描述;
res-ref-name:引用的JNDI资源的名称,与上面<Resource>元素中的name属性一致;
res-type:引用的JNDI资源的类名称,与上面<Resource>元素中的type属性一致;
res-auth:引用资源的管理者,上面<Resource>元素中的auth属性一致;
Context initial = new InitialContext();
//其中mysql为数据源jndi名称
DataSource ds = (DataSource)initial.lookup("java:comp/env/jdbc/cartds");
Connection con=ds.getConnection();
我在网上搜到一篇 JavaWeb配置数据源连接数据库详解(概念详解+多种情况源代码范例+易出错类型)讲得很详细,感兴趣可以看一下。
1. 在Tomcat安装目录下conf目录下server.xml中最后的“</Host>”标记之前添加
如下配置:
<Context path="/mycart" docBase="mycart"
debug="5" reloadable="true" crossContext="true" workDir="">
<Resource name="jdbc/cartds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password=""
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost/test"/>
</Context>
<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。
2. 在本应用的WEB-INF目录下web.xml文件中添加配置
Java Web应用中要使用JNDI资源,必须在web.xml中配置对该JNDI资源的引用<resource-ref>元素。内容如下:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/cartds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>元素的子元素说明:
description:对所引用JNDI资源的描述;
res-ref-name:引用的JNDI资源的名称,与上面<Resource>元素中的name属性一致;
res-type:引用的JNDI资源的类名称,与上面<Resource>元素中的type属性一致;
res-auth:引用资源的管理者,上面<Resource>元素中的auth属性一致;
3. 在JSP或Servlet或JavaBean中用如下Java代码获得数据库连接
//其中mysql为数据源jndi名称
DataSource ds = (DataSource)initial.lookup("java:comp/env/jdbc/cartds");
Connection con=ds.getConnection();
我在网上搜到一篇 JavaWeb配置数据源连接数据库详解(概念详解+多种情况源代码范例+易出错类型)讲得很详细,感兴趣可以看一下。