jdbc: 前端java, 后端Oracle 10g 快捷版

jdbc: front end java, back end Oracle 10g express edition

我想寻求帮助。我无法将 java 连接到 oracle 10g Express Edition。我已经尝试解决这个问题大约 3 天了。我已经将我的 javac 和 java 降级到 1.8,因为它是 youtube 上唯一可用的关于如何解决此问题的教程,但它仍然不起作用。我的程序确实编译了,当我尝试 运行 它时,我的终端显示“java.sql.SQLException: ORA-00911: invalid character”。我使用的是 java.swing 而不是 javafx。请帮助我,我是新手,谢谢!

import java.sql.*;  
class OracleCon{  
public static void main(String args[]){  
try{  

Class.forName("oracle.jdbc.driver.OracleDriver");  


Connection con=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:xe","customer","customer");  


Statement stmt=con.createStatement();  


ResultSet rs=stmt.executeQuery("select * from customer;");  
while(rs.next())  
System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  


con.close();  

}catch(Exception e){ System.out.println(e);}  

}  
}  

请删除 sql:

中的分号
select * from customer" instead of "select * from customer;"

你能试试这个吗

ResultSet rs=stmt.executeQuery("select * from customer");  
while(rs.next())  
System.out.println(rs.getInt(1)+"  "+rs.getString("2")+"  ");  
//1  I removed from your code `rs.getString(3)` and `rs.getString(2)`
//2  You can add string as rs.getString("3"), `rs.getString("2")` like this 
//3 my suggestion is you first remove rs.getString(3) , rs.getString("2") and run 

这种异常包含特殊字符时会抛出

Error java.sql.SQLException: ORA-00911: invalid character

这种错误会引起误解的最常见原因是列索引

Java.sql.SQLException: Invalid column index