项目中基本都使用Spring框架,支持jndi还是很简单的,只需在spring配置文件中加入

  1. <!-- 使用jndi配置数据源 -->
  2. <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  3. <property name="jndiName">
  4. <value>java:comp/env/jndi数据源名称</value>
  5. </property>
  6. </bean>

在本地开发中,一般使用tomcat,不会启动weblogic,所以,要配置context.xml以支持jndi

路径  /WebContent/META-INF/context.xml

内容基本如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Context>
  3. <Resource
  4. name="jndi数据源名称"
  5. auth="Container"
  6. type="javax.sql.DataSource"
  7. username="xx"
  8. password="xx"
  9. url="jdbc:oracle:thin:@10.10.68.248:1521:orcl"
  10. driverClassName="oracle.jdbc.driver.OracleDriver"
  11. maxIdle="10"
  12. maxWait="1000"
  13. maxActive="20"
  14. />
  15. </Context>

web.xml可以配置

  1. <!--
  2. JNDI配置的资源引用:
  3. • res-ref-name:表示引用资源的名称
  4. • res-type:此资源对应的类型为javax.sql.DataSource
  5. • res-auth:容器授权管理
  6. -->
  7. <!--Oracle数据库JNDI数据源引用 -->
  8. <resource-ref>
  9. <description>Oracle DB Connection</description>
  10. <res-ref-name>jndi数据源名称</res-ref-name>
  11. <res-type>javax.sql.DataSource</res-type>
  12. <res-auth>Container</res-auth>
  13. </resource-ref>

项目中如果不使用spring框架,代码需要兼容驱动管理与jndi的连接的方式,以提高健壮性,部分伪代码

  1. public Connection getConnection()
  2. throws SQLException
  3. {
  4. if(isJndi)
  5. return getJndiConnection();
  6. else
  7. return getDriverConnection();
  8. }
  9.  
  10. private void initJndiConnection()
  11. throws NamingException
  12. {
  13. Context ctx = new InitialContext();
  14. ds = (DataSource)ctx.lookup(config.getJndi());
  15. }
  16.  
  17. public Connection getJndiConnection()
  18. throws SQLException
  19. {
  20. return ds.getConnection();
  21. }
  22.  
  23. private Connection getDriverConnection()
  24. throws SQLException
  25. {
  26. Connection conn = DriverManager.getConnection(config.getUrl(), config.getUserName(), getPassword(config));
  27. return conn;
  28. }

代码中jndi数据源的支持的更多相关文章

  1. jboss EAP 6.2+ 通过代码控制JNDI数据源

    通过Jboss提供的API,可以操控JBoss,效果跟在管理控制台手动操作完全一样,下面是示例代码: 一.pom.xml添加依赖项 <dependency> <groupId> ...

  2. tomcat下context.xml中JNDI数据源配置

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  3. JNDI数据源

    孤傲苍狼 只为成功找方法,不为失败找借口! JNDI学习总结(一)——JNDI数据源的配置 一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Cla ...

  4. Tomcat 6 JNDI数据源详解

    数据库连接池这个概念应该都不陌生,在Java中连接池也就是数据库的连接池,它是一种采用连接复用的思想避免多次连接造成资源的浪费机制. 最常见的连接池就是DBCP和C30P了,在tomcat中默认使用的 ...

  5. JNDI学习总结(一)——JNDI数据源的配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...

  6. JNDI数据源的配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)   ②连接数据库(Conn ...

  7. JNDI学习总结(一)——JNDI数据源的配置(转)

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)   ②连接数据库(Conn ...

  8. JNDI数据源配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...

  9. JNDI学习总结(2)——JNDI数据源的配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)    ②连接数据库(Con ...

随机推荐

  1. teamviewer连接不上的原因及解决方法有哪些

    teamviewer连接不上的原因及解决方法有哪些 一.总结 一句话总结:这里说的就是版本问题,高版本可以连接低版本,低版本无法连接高版本. 1.TeamViewer官方检测使用环境是否为商用的标准是 ...

  2. (错误记录)Vue: Unknown custom element

    错误: vue.js:634 [Vue warn]: Unknown custom element: <ve-pie> - did you register the component c ...

  3. datetime小练习

    题目: 1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多2,生日提醒,距离生日还有几天 # !/usr/bin/env python # -*- ...

  4. Javascript和jquery事件--鼠标右键事件,contextmenu

    右键点击触发是浏览器的默认菜单事件contextmenu,你可以选择阻止它,使用event.preventDefault();或者return false;. 想要定义右键点击事件,关注的是mouse ...

  5. (转)iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链

    转自:http://lesca.me/archives/iptables-examples.html 本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇ipt ...

  6. 前端项目课程7 banner设计注意事项

    前端项目课程7 banner设计注意事项 一.总结 一句话总结: 1.每个部分的里面的部分可以用相同的名字么,如何修改样式呢? 可以, 用模块名 + 比如上中下(top middle bottom) ...

  7. IOS手势事件

    一, iPhone中处理触摸事件的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式 - (void)touchesBegan:(NSSet *)touches withEve ...

  8. 关于Android中设置闹钟的相对比较完善的解决方案

    我当时说承诺为大家写一个,一直没空,直到最近又有人跟我要,我决定抽时间写一个吧.确实设置闹钟是一个比较麻烦的东西.我在这里写的这个demo抽出来了封装了一个类库,大家直接调用其中的设置闹钟和取消闹钟的 ...

  9. vue-cli3使用vue-svg-loader加载svg

    vue-svg-loader Documentation - FAQ webpack loader that lets you use SVG files as Vue components Micr ...

  10. C++开发人脸性别识别教程(10)——加入图片的人脸检測程序

    现在我们的MFC框架已经初具规模,能够读取并显示目录下的图片.在这篇博文中我们将向当中加入人脸检測的程序. 一.人脸检測算法 这里我们使用OpenCv封装的Adaboost方法来进行人脸检測,參见:C ...