如何使用JNDI将java应用程序连接到数据库?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用JNDI将java应用程序连接到数据库?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1858字,纯文字阅读大概需要3分钟。
内容图文
我正在实现JNDI概念以获得与数据库的连接.我用谷歌搜索起点,但是没有得到它.
我想做的事情是有一个简单的java独立应用程序,它使用JNDI概念连接到数据库.
我的样本来源是:
DataSource dataSource = null;
Context context = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("database_connection");
}
catch (NamingException e) {
System.out.println("Got naming exception, details are -> " + e.getMessage());
}
现在,我们在哪里定义database_connection?是在xml文件中定义的,如果是这样,我们在哪里指定它以及它的格式是什么?
如果可以提供任何指针,那将是很好的.
谢谢
解决方法:
您的问题和示例之间的真正区别在于您使用的是独立的Java应用程序.几乎所有示例都假定您在Java EE应用程序容器中运行.在这种情况下,您定义与容器的数据库连接,使用JNDI获取DataSource,并从中获取连接.
当您执行JNDI查找以获取DataSource时,JNDI框架将查找初始上下文工厂(实现InitialContextFactory的类).在Java EE应用程序中,容器提供了该功能.在独立Java应用程序中,初始上下文为null,并且没有进一步的查找正确解析.
解决此问题的方法之一是创建自己的初始上下文工厂:
public class MyContextFactory implements InitialContextFactory
并在启动时将其注入JNDI:
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "mypackag.MyContextFactory");
然后从getInitialContext调用返回一个新的ObjectFactory,然后实现ObjectFactory从getConnection()调用返回一个DataSource(也可能是自定义).
这一切都会奏效,但这太过分了.使用普通的JDBC连接字符串方法直接在应用程序中获取连接而不是尝试使用DataSource会更容易.或者使用像Spring这样的框架为您注入它或者将数据库连接信息与代码分开(在这种情况下,您使用的是Spring配置文件,而不是直接使用JNDI).
我主张创建自定义上下文工厂和数据源方法的一个原因是,如果您有一个共同的JPA代码,您希望在Java EE应用程序内和独立应用程序中运行(在配置相同的代码时,这是非常重要的)做两件事).这听起来不像你的情况.
因此,由于您是独立的而不是Java EE容器,我认为您的真实答案是您的用例不适合DataSource(除非您转移到像Spring这样提供的框架).
内容总结
以上是互联网集市为您收集整理的如何使用JNDI将java应用程序连接到数据库?全部内容,希望文章能够帮你解决如何使用JNDI将java应用程序连接到数据库?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。