2012-08-14 98 views
1

我想使java代码只做到这一点:如何使用java代码登录Oracle 11g中的'xe'连接?

登录到Oracle 11g数据库中的'xe'连接。就这样。 怎么办?

编辑: 是的,我使用JDBC,但无法登录到该连接。我的网址是jdbc:oracle:thin:@//localhost:1521/xe,username = syspassword = 123456用于xe或sys连接。那么为什么我不能登录到该连接?

编辑:

我很抱歉,我忘了补充一点,我看到另一个错误,除了一日一个,即

SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 

其次是副

Exception in thread "main" java.lang.NullPointerException 
+1

are you fa熟悉jdbc,如果没有,我会建议你通过它的文档。 – Sikorski 2012-08-14 03:31:11

+0

请参阅添加到问题的编辑。你能告诉我如何从代码登录吗? – 2012-08-14 05:32:41

+0

总是得到这个错误 - ORA-01017:无效的用户名/密码;登录被拒绝 – 2012-08-14 05:56:46

回答

8

如果你想连接的SYS你必须使用sys as sysdba

所以在Java代码中尝试像下面的代码

String url = "jdbc:oracle:thin:@//localhost:1521:xe"; 
    String username = "sys as sysdba"; 
    String password = "123456"; 
Connection connection= DriverManager.getConnection(url, username, password); 

问候

+0

工作!我认为,因为连接'XE'的用户名是sys和密码是123456,设置我的用户名= SYS只在java代码将工作 顺便说一句,为什么“sys as sysdba”工作,而不是“sys”? – 2012-08-14 07:16:43

+1

因为sys是一个特权用户,因此我们需要使用sys作为sysdba。来自doc '要通过非安全连接以特权用户身份连接到Oracle数据库,您必须通过密码文件进行身份验证。使用密码文件身份验证时,数据库将使用密码文件跟踪已授予SYSDBA或SYSOPER系统特权的数据库用户名。这种认证形式在“使用密码文件认证”中讨论过。“ – user75ponic 2012-08-14 07:53:50

+1

不应该存在;在String password =“123456”之后? – 2014-09-11 10:36:08

0

不幸,你的回答有点太模糊。

  • 如果要通过Java登录数据库,请使用JDBC。
  • 如果您想自动登录外部程序,您的语言是错误的:)
  • 如果您想验证数据库已启动,请参阅第一点。

总的来说,看看JDBC。 Oracle的JDBC文档可以是found here

+0

For- 1-是的,请参考相关编辑。 012-2-为什么它错了? 3-没有。想要创建数据库/架构/用户/其他用户或任何不常见的名字甲骨文决定给它:( – 2012-08-14 05:36:22

0

你应该写下面的代码:

private String driver="oracle.jdbc.driver.OracleDriver"; 
private String dbURL="jdbc:oracle:thin:@localhost:1521:XE"; 
private String dbUserName="sys as sysdba"; 
private String dbPassword="123456"; 


try{ 
Class.forName(driver); 
con=DriverManager.getConnection(dbURL,dbUserName,dbPassword); 
-----//Rest of your Code//------- 
}catch(Exception e){ 
e.printStackTrace(); 
}