我是oracle数据库的新手。 我在我的机器上安装了OracleXE 11g。我从oracle默认数据库(XE)创建了一个单独的测试数据库[SID:testDB],引用此video。我在下面创建了一些东西:
为这个新数据库创建用户/模式后,我可以从sql developer和java / jdbc程序连接到网络上的其他机器。
我很惊讶我没有在tnsnames.ora中为这个数据库创建任何TNS监听器或TNS条目,但我仍然可以在本地和远程连接这个数据库。 我期待以下问题的答案:
java / jdbc代码:
import java.sql.Connection;
import java.sql.DriverManager;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:testDB";
// Database credentials
static final String USER = "testDBUser";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
try {
// STEP 2: Register JDBC driver
Class.forName(JDBC_DRIVER);
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected.");
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
tnsnames.ora用于开启者(应用程序/工具),具体取决于使用的驱动程序和somtimes连接设置; Java驱动程序可以处理大多数没有 tnsnames的情况,请参阅http://docs.oracle.com/cd/E11882_01/java.112/e16548/urls.htm#JJDBC08200并注意" TNSnames别名"只是几种选择中的一种。
侦听器在ORAHOME / network / admin / listener.ora 中配置,通常默认值不需要任何更改。在Windows上,侦听器作为服务运行(Windows服务,不要与Oracle服务名称混淆!)并自动启动。在Unix和Windows上,即使您有多个数据库实例/ SID,也有一个侦听器。