JNDI 与 JDBC “战争”

版权声明: https://blog.csdn.net/weixin_39966065/article/details/89961107

目录

 

引言

一:JNDI是什么

二:JDBC是什么

三:JNDI与JDBC的差别(代码层面)

四:JNDI与JDBC的使用场景分析


引言

相信大家在公司开发业务时,总会碰到数据库的连接问题
测试,生产环境一般采用JNDI方式
本地Tomcat运行,一般采用JDBC方式
大家是否对比产生过疑问呢?让我们代码问题,一探JNDI和JDBC

一:JNDI是什么

Java 命名与目录接口(Java Naming and Directory Interface)
 配置方式:
 (1)在在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称
 (2)在程序中,通过数据源名称引用数据源从而访问后台数据库

二:JDBC是什么

全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API)
作用:通过它可访问各类关系数据库。JDBC也是java核心类库的一部分
配置方式:
(1)Java程序首先使用JDBC API来与JDBC Driver Manager交互
(2)由JDBC Driver Manager载入指定的JDBC drivers
 (3)以后就可以通过JDBC API来存取数据库

三:JNDI与JDBC的差别(代码层面)

//jndi连接
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/webtest");
conn = ds.getConnection();
//jdbc连接
Class.forName("com.mysql.jdbc.Driver",true,Thread.currentThread().getContextClassLoader());
conn = DriverManager.getConnection("jdbc:mysql://localhost/mismain?user=root&autoReconnect=true");
管理的统一与分化

四:JNDI与JDBC的使用场景分析

(1)在生产中:主要是方便管理 
1 你肯定要链接数据库 
2 那么你肯定要用户名和密码 
3 正式的数据库和应用服务器应该是单独的人员管理,而不是开发人员 
4 密码会定期修改 
5 如果链接数据库是各自书写代码和配置,则运行环境的密码修改将会是一个噩梦,一不小心就忘记一个 
6 所以,大家全部到一个数据源那里获取连接。管理员只需要修改数据源的配置,而无需修改应用的配置 
7 如果数据库的地址变更,则同样不会影响到应用,也只是修改数据源 
8 开发人员无需知道正式数据库的密码

(2)在测试中:模仿生产环境,做好上线准备

(3)在开发中:一般开发单一的功能,配置更透明,单一,方便修改

猜你喜欢

转载自blog.csdn.net/weixin_39966065/article/details/89961107