Java中JNDI的配置

方案一步骤:
1配置Tomcat/conf/context.xml添加 <Resource>
 <Resource name="jdbc/books" auth="Container"
  type="javax.sql.DataSource" maxActive="100" maxIdle="30"
  maxWait="10000" username="sa" password=""
  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
  url="jdbc:sqlserver://localhost:1433;DatabaseName=books" />

 name  指定Resource的JNDI名称
 auth  指定管理Resource的Manager(Container:由容器创建和管理|Application:由Web应用创建和管理)
 type  指定Resource所属的Java类
 maxActive 指定连接池中处于活动状态的数据库连接的最大数目
 maxIdle  指定连接池中处于空闲状态的数据库连接的最大数目
 maxWait  指定连接池中的连接处于空闲的最长时间,超过这个时间会抛出异常,取值为-1,表示可以无限期等待


2、拷贝相应的jar包到Tomcat/common/lib中
 /server/lib目录下的jar文件只能被Tomcat服务器访问
 /shared/lib目录下的jar文件可以被所有的web应用程序访问,但不能被Tomcat服务器访问
 /common/lib目录下的jar文件可以被Tomcat服务器和所有的web应用程序访问。
   

3、配置web项目中的web.xml添加 <resourc-ref>
    <resource-ref>
        <res-ref-name>jdbc/books</res-ref-name>   指定JNDI的名字,与<Resource>元素中的name一致
        <res-type>javax.sql.DataSource</res-type> 指定引用资源的类名,与<Resource>元素中的type一致
        <res-auth>Container</res-auth>            指定管理所引用资源的Manager与<Resource>元素中的auth一致
    </resource-ref> 

4、java代码
 import javax.sql.DataSource;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;

 //获取Context对象
 Context ctx= new InitialContext();
 //获取DataSource对象:java:comp/env/数据源名称  固定的
 DataSource source = (DataSource) ctx.lookup("java:comp/env/jdbc/books");
 //获取Connection对象
 Connection con = source.getConnection();

方案二:

 启动Tomcat

 1.打开IE输入:http://localhost:8080/admin/地址

 点击左侧 Resources ->  Data Sources  选择右侧下拉框中的 Create New Data Source
    输入相关信息 点击 《保存》  点击 《保存你的更改》
   上面操作将修改了server.xml
   在server.xml的GlobalNamingResources 标签中添加了Resource


 2.修改 conf/context.xml 添加
   <ResourceLink   name="jdbc/sqlserver"   global="jdbc/sqlserver"   type="javax.sql.DataSource"/>


 java代码中在获取数据源是必须分两步执行
 Context envContext = (Context) ctx.lookup("java:comp/env");
 DataSource ds = (DataSource) envContext.lookup("jdbc/sqlserver");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值