【发布时间】:2014-06-16 01:20:15
【问题描述】:
我在访问我的数据库所在的 Oracle 11g Express Workspace 时遇到了一些困难。
我可以通过Class.forName("jdbc.oracle.driver.OracleDriver") 注册我的JDBC Driver 并通过Connection con = DriverManager.getConnection("jdbc:oracle:thin:" + username + "/" + password + "@localhost:1521:xe") 成功连接,但无法进入包含我创建的数据库的工作区。
任何通过Statement smt = Connection.createStatement() 创建数据库的尝试都会产生java.lang.UnsupportedOperationException。
我什至不确定我是否连接到正确的地方。我知道当我查看 Oracle Database 11.2 XE 参数时,它会将db_name 列为xe,我可以通过sys as sysdba 并使用我为Oracle 11g Express 数据库建立的密码连接到它,但我不能当我创建一个数据库并使用ddl 和dml 语句填充它时进入工作区。
也许我现在根本不知道该怎么做,因为我是 JDBC 新手。我检查了我的 TNSNAMES.ORA 文件,确实有一个代表我的 Oracle 11g Express 的 XE 条目以及代表 Oracle 中数据库的其他条目。我想我在那里我只是不知道该怎么做才能访问我创建的XE 数据库。
我用来执行SQL语句的代码如下:
Statement smt = null;
try {
smt = connection.createStatement();
String command = "CREATE table x(y varchar(2))";
smt.executeLargeUpdate(command);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage() + e.getCause());
}
【问题讨论】:
-
从 oracle 9i 开始,该驱动程序已被弃用,您是否尝试过使用 Class.forName("oracle.jdbc.OracleDriver")?见以下链接:tomcat.apache.org/tomcat-5.5-doc/…
-
刚刚把驱动注册字符串改成
oracle.jdbc.OracleDriver就可以成功注册数据库驱动了。我仍然需要了解为什么我连接到我的数据库但无法执行 SQL。 -
你能贴出你用来执行 SQL 的代码吗?
-
@GoldenJam 发表在问题描述中。
-
嗯,好的,应该是
executeUpdate而不是executeLargeUpdate。我打算使用正确的行为,但对 Eclipse 的自动完成感到草率。但是,我仍然不知道如何进入我通过 Oracle 11g Express 创建的数据库。现在我刚刚连接到xe并且可以运行 SQL 命令。