JNDI访问数据库的方式?

JNDI访问数据库的方式?,第1张

1、在tomcat6\conf\context.xml文件的Context节点中增加下面节点:

<Resource name="jdbc/eworkflow" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost:1433databaseName=eworkflow-javaintegratedSecurity=true" maxActive="100" maxIdle="30" maxWait="10000"/>

2、方成软件web-inf\fcconfig.xml文件中第一个ds节点配置如下:

<ds name="eworkflow" dbType="sqlserver" type="jndi" jndiName="jdbc/eworkflow" jndiPrefix="java:/comp/env" />

3、web-inf\web.xml文件中web-app节点中增加下面节点:

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/eworkflow</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

4、通过数据源访问数据库,由于数据源由tomcat创建并维护,所以必须把数据库连接驱动包复制到tomcat的lib目录下。

这里把jtds-1.2.jar复制到tomcat\lib目录中。

启动 tomcat6,在浏览器中输入:http://localhost:8080/ebiao,登录系统。

一 首先要配置Tomcat的server.xml文件,在对应的web应用的<Context>中加入<Resource>元素,比如:

<Context path="/Manager" reloadable="true">

<Resource

name="hello"

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver"

username="root"

password="123456"

maxIdle="4"

maxActive="4"

maxWait="5000"

url="jdbc:mysql://127.0.0.1/jspdev"

/>

</Context>

其中:

name:指定Resource的JNDI名字

type:指定Resource所属的Java类名

driverClassName:指定连接数据库的JDBC驱动程序

username:指定连接数据库的用户名

password:指定连接数据库的口令

maxIdle:指定数据库连接池中的最大空闲连接数目,0表示不受限制

maxActive:指定数据库连接池中的最大活动连接数目,0表示不受限制

maxWait:指定连接池中连接处于空闲状态的最长时间,超过会抛出异常,-1表示无限

url:指定连接数据库的URL

二 在Web应用中使用数据源:

javax.naming.Context提供了查找JNDI Resource的接口,可以通过三个步骤来使用数据源对象:

A.获得对数据源的引用:

Context ctx = new InitalContext()

DataSource ds =

(DataSource)ctx.lookup("java:comp/env/hello")

B.获得数据库连接对象:

Connection con = ds.getConnection()

C.返回数据库连接到连接池:

con.close()

在连接池中使用close()方法和在非连接池中使用close()方法的区别是:前者仅仅是把数据库连接对象返回到数据库连接池中,是连接对象又恢复到空闲状态,而非关闭数据库连接,而后者将直接关闭和数据库的连接。

三 如果通过数据源访问数据库,由于数据源由Servlet容器创建并维护,所以必须把JDBC驱动程序拷贝到Tomcat安装目录下的common/lib目录下,确保Servlet容器能够访问驱动程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6764037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存