我想了解与DataSource Object
和JNDI API
建立数据库连接。在IntelliJ中使用DataSource,JNDI API
我正在使用Intellij UE,并且有一个本地Tomcat-8
和Postgres-Server
正在运行。
我继续为在Oracle Java文档中提到:
创建的
DataSource Class
实例并设置其属性org.postgresql.ds.PGSimpleDataSource dataSource = new org.postgresql.ds.PGSimpleDataSource(); dataSource.setServerName("localhost"); dataSource.setDatabaseName("db01"); dataSource.setUser("jwi"); dataSource.setPassword("password");
与命名服务使用
JNDI API
Context ctx = null; try { ctx = new InitialContext(); ctx.bind("jdbc/localDB", dataSource); } catch (NamingException e) { e.printStackTrace(); }
注册
DataSource Object
Oracle文档说:
随着设置的属性,系统管理员可以注册一个JNDI(Java命名和目录接口)命名服务的BasicDataSource对象。
所以我的第一个问题是:什么意思是注册DataSource
?我的代码是否已经注册DataSource Object
至JNDI
?
使用部署
DataSource Object
try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("jdbc/localDB"); dbCon = ds.getConnection(); ...
在此代码切割的IntelliJ总是要求,即它不能解析该方法getConnection()
。
Oracle文档说:
一个基本的DataSource实现由系统管理员部署后,它已经准备好程序员使用。
所以我的第二个问题是:在这种情况下究竟意味着什么?创建一个DataSource Instance
并执行注册JDNI
?还是部署意味着Tomcat
context.xml
和web.xml
配置(Tomcat 8 JNDI How-To)?
如果有人对这个问题有一个很好的一步一步的指导,我真的很感激,事实上,Oracle文档并没有真正清楚一些点imho。
在上一篇教程中,我终于理解了用'JNDI'处理db连接。谢谢你,干杯! – jwi