Oracle10G -- 图文介绍JNDI环境的搭建

本文图文介绍了如何在Oracle数据库中使用JNDI进行配置,包括驱动程序的放置位置、context.xml中的资源注册方式及Web项目的搭建过程。通过具体步骤展示了如何通过JNDI连接Oracle数据库并查询数据。

      本文旨在图文介绍以Oracle为数据库的JNDI的实例

 

      准备事项

            1、Oracle的驱动程序(毋庸置疑) -- ojdbc14.jar

            2、保证启动2个服务 --  1、OracleServiceOrcl(如果安装时你没改数据库的名称)

                                              2、OracleOraDb10g_home1TNSListener(数据库监听服务)

  

         期间的问题解决: 参考Oracle10G -- 图文介绍JDBC环境的搭建,此处不再说明

 

      配置JNDI

            1、将驱动程序置于%TOMCAT_HOME%\lib,如图所示
                

 

            2、在%TOMCAT_HOME%\conf\context.xml 注册资源, 配置如下
               

 

                参数说明(配置文件用中文说明启动Tomcat会报错):
               
 
              

 

            3、打开MyEclipse,新建Web项目TestOracleJNDI。编辑web.xml,配置如下


            4、编辑index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql"  prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="java.sql.*"%>

<sql:query var="ds" dataSource="jdbc/myoracle">
	select * from userinfo
</sql:query>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Oracle Datasource example -- JNDI</title>
  </head>
  <body>
	<center>
	  <h2>Results</h2>
	  <table border="1">
	    <tr><td>Id</td><td>Username</td><td>Password</td><td>Age</td><td></td></tr> 
	
	<!-- core库的迭代标签 -->    
	<c:forEach var="row" items="${ds.rows}">
	     <tr><td>${row.id}</td><td>${row.username}</td><td>${row.password}</td><td>${row.age}</td></tr>  
	</c:forEach>
	</table>
	</center>
  </body>
</html>

 

            5、启动Tomcat,发布项目并访问。 如下图
                

 

       附注:初学者若依次执行以下行为,会有不小的发现哦

            1、启动Tomcat,并访问主页:http://localhost:8080/

            2、点“Home Page”

            3、 Documentation 选项下的 Tomcat 6.0(根据自己的版本选择)

            4、在“User Guide”下选择 JDBC DataSources

            5、下滑鼠标,可看到“Oracle 8i,9i & 10g”标题

### 使用 `spring-boot-starter-jndi` 启动器 在 Spring Boot 项目中,`spring-boot-starter-jndi` 是用于简化 JNDIJava Naming and Directory Interface)集成的一个启动器。它允许开发者通过简单的配置来访问外部资源,比如数据库连接池或其他企业级服务。 #### 添加依赖项 为了使用 `spring-boot-starter-jndi`,需要将其作为依赖项添加到项目的构建文件中。对于 Maven 和 Gradle 的配置如下: ##### Maven 配置 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jndi</artifactId> </dependency> ``` ##### Gradle 配置 ```gradle implementation 'org.springframework.boot:spring-boot-starter-jndi' ``` 以上代码片段展示了如何将 `spring-boot-starter-jndi` 添加到项目中的方式[^1]。 #### 配置 JNDI 数据源 Spring Boot 提供了一种自动化的机制来绑定 JNDI 资源。通常情况下,JNDI 数据源可以通过应用程序属性文件 (`application.properties`) 或环境变量进行定义。以下是常见的配置选项: ```properties spring.datasource.jndi-name=java:comp/env/jdbc/MyDataSource ``` 此配置指定了数据源的 JNDI 查找名称。当 Spring Boot 应用程序启动时,会尝试根据指定的 JNDI 名称加载相应的数据源实例[^3]。 如果使用的容器支持特定的 JNDI 实现,则可能还需要额外的配置步骤。例如,在 Tomcat 中可以这样声明全局上下文的数据源: ```xml <Resource name="jdbc/MyDataSource" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="dbuser" password="s3cret" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb"/> ``` 这段 XML 片段显示了如何在 Tomcat 容器中配置一个名为 `jdbc/MyDataSource` 的 JNDI 数据源[^2]。 #### 自定义 Bean 注入 除了自动化配置外,还可以手动注入 JNDI 对象。这可以通过编写自定义的配置类实现: ```java import javax.naming.InitialContext; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class DataSourceConfig { @Bean(destroyMethod="") public DataSource dataSource() throws Exception { InitialContext ctx = new InitialContext(); return (DataSource)ctx.lookup("java:comp/env/jdbc/MyDataSource"); } } ``` 在此示例中,我们创建了一个名为 `dataSource()` 的方法,并利用 `InitialContext` 来执行具体的 JNDI 查询操作[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值