JDBC Driver与JNDI DataSource的区别如下:
jdbc是数据库中间代理商为了是java连接数据库而定的一个协议或者说是方法,通过jdbc-odbc的方法进行数据库连接,是连接一次创建一次的做法
1、由数据库驱动和协议组成连接数据的方法,调用中间商提供的类包,进行创建连接
2、再由连接去调用3种状态.
3、由状态来提供对数据库的操作
jndi是一种命名树的方式,把需要的类都列成目录的样式,需要哪个只要根据命名直接去 调用,是一种比较快洁的思想和行为. 当你要操作数据库的用jdbc 操作命名服务用jndi Java Database Connectivity (JDBC)是一个标准的Java API,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句 JNDI(Java Name Directory Interface),可不仅仅是进行数据库定位的, 它是给当前应用服务器所管理的所有资源一个唯一的标识,包括数据库,网页,文件, 连接池等等。
JDBC -最基本的连接数据库的方式, 每次对数据库打交道的时候 ,连接数据库是需要实例下你实现连接数据库的方法或者类。
JNDI DataSource 英文全称是:Java Naming and Directory Interface java 命明接口,当服务启动时 事先把连接数据库的已经连好多条,具体多少条你可以设置,存放在tomcat容器里,用的时候可以直接使用, 不用再实例化得到连接, 相对与jdbc效率要快点 ----我的通俗理解
JNDI与JDBC:
JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个纪录,同时返回数据库连接建立所必须的信息。
代码示例:
try{
Context cntxt = new InitialContext();
DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt");
}
catch(NamingException ne){
...
}
/**补充*/
还有用odbc 数据源连接 数据库
连接数据库的方法还不止这几种
主要看你们公司的项目的需求与框架设计
如果你在一个比较成熟的公司,这些你都不用去管,连接数据库这些底层的东西别人早就搭好平台。你只是需要问“如何调用”就ok了
jdbc 是最基本的连接
JNDI 一般是hibernate中使用比较多
jdbc是java提供的链接数据库的方式。
JNDI DataSource是指创建了DataSource后,利用java命名服务器,将Datasource放到JNDI范围内。JNDI一般是要依赖容器的。比如tomcat。说简单点,就是将一个DataSource放到tomcat的容器中。用的时候,只需要从这个容器中取就可以了