当前位置:首页 » 数据仓库 » jndi数据库连接池
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

jndi数据库连接池

发布时间: 2022-05-18 06:24:47

1. jndi数据源配置,怎么使用数据库连接池

数据源的作用
JDBC操作的步骤:
1、 加载驱动程序
2、 连接数据库
3、 操作数据库
4、 关闭数据库,释放连接
也就是说,所有的用户都需要经过此四步进行操作,但是这四步之中有三步对所有人都是一样的,而所有人只有在操作上是不一样,那么这就造成了性能的损耗。
那么最好的做法是,准备出一个空间,此空间里专门保存着全部的数据库连接,以后用户用数据库操作的时候不用再重新加载驱动、连接数据库之类的,而直接从此空间中取走连接,关闭的时候直接把连接放回到此空间之中。

2. java中建立数据库连接池,有哪几个步骤

Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/"+projectName);这里的projectName指的是你的项目名称然后在tomcatde 的\conf\Catalina\localhost目录下配置一个和你项目名称相同的xml文件文件的配置方法可以去网络下很多的,这样就可以使用连接池了。

3. JNDI DBCP C3P0 JDBC ODBC 关系与区别 通俗易懂!

常用的数据库连接池有以下几种:

1.基于JNDI 、C3P0 、DBCP技术的数据连接池

(1)JNDI(Java Naming and Directory Interface ):是SUN公司提供的一种标准的Java命名系统接口,是一组在Java应用中访问命名和目录服务的API。命名服务是将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,它提供了应用编程接口(application
programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI
SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,不必操心JNDI
SPI。只需要确认要使用的每一个命名或目录服务都有服务提供者。

(2)C3P0:连接池作者是《星球大战》迷,C3P0就是其中的一个机器人,并且这个名称中包涵connection 和pool的单词字母。因此叫这个名字。

(3)DBCP(DataBase connection pool):是 apache 上的一个 java 连接池项目,也是 tomcat
使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar ,common-collections.jar
(4)JDBC(Java DataBase
Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准sql功能的通用低层的应用程序编程接口(API),它由Java
语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC
API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC
API可利用不同的驱动程序连接不同的数据库系统。
(5)ODBC(Open DataBase
Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和
ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:

区别和联系:
JDBC与ODBC都是基于X/Open的SQL调用级接口,
JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL
CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。
JDBC保持了ODBC的基本特性,也独立于特定数据库。

4. 如何获取weblogic配置的JNDI数据库连接池信息

将数据源交给容器管理,使用jndi的方式管理,可以很方便的管理数据库连接。将数据管理库交给容器,后面工程直接使用jndi的方式在容器中获取jndi地址。如果变更数据库地址,直接修改数据库连接池的地址即可,而各工程无需再一个个的修改数据库连接地址,简化了数据库的管理。今天我们看看WebLogic中数据源的配置启动WebLogic服务,进入WebLogic控制台点击左侧的服务->数据源

5. 普通的java类能使用JNDI连接池吗我配置了tomcat连接池,写的JSP文件使用正常,但是用普通类却无法使用

其实java类中也可以用的。
配置了tomcat的jndi数据库连接池,需要启动tomcat服务。而jsp运行正好需要启动tomcat,这样就可以初始化了tomcat的jndi数据库连接池。
而在java类的main主方法里面调用jndi数据库连接池肯定不行,因为main是静态的,当main运行时,jndi还没有初始化呢。所以你可以通过jsp向servlet请求,然后通过java类来调用jndi数据库连接池,这样在java类中也就可以调用jndi数据库连接池了!

6. JNDI方式配置数据池,问题是连不上远程回数据库,本地的是可以连接的!

数据库配置文件里设置的正确吗,连接不了要先检查数据库名,数据库密码以及远程数据库的ip是否填写正确,你可以看下把前面的这些信息改为远程数据库的信息后在试。

7. 使用JNDI连接数据库连接池问题,救命啊!!!!

最起码的是要在web根目录的meta-inf下建立context.xml文件让tomcat启动的时候读取,帮你建立jndi名称到数据源对象的映射啊,
比如说
<Context>

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="20"
maxIdel="10"
maxWait="1000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mldn">
</Resource>

</Context>

将上面文件放在web目录的meta-inf下面,还有你的测试代码要在同一个web容器下运行啊,不要随便写个main方法就测试,那是在不同的jvm下,怎么可能获取到jndi对象呢,
你在问问Google老师,应该能够解决,还有在tomcat下的lib下放置相关jar包,比如数据源,dbcp那个,还有驱动

8. 用连接池必须用jndi吗

可以的,jdbc也可以使用连接池。jdbc和jndi的使用都是为了得到连接对象而已,他们都可以从连接池中取得连接对象,两个都可以。只不过,jndi

9. jndi是什么

JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,是一组在Java应用中访问命名和目录服务的API,是SUN公司提供的一种标准的Java命名系统接口,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。