第一次用oracle
随便写了个测试程序:
import java.sql.*;public class OracleJdbc {
public static void main(String[] args) {
new OracleJdbc().launchJDBC();
} public void launchJDBC() {
String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
String DBURL = "jdbc:oracle:thin:@localhost:5560:ORCL";
String DBUSER = "scott";
String DBPASSWORD = "tiger";
Connection conn = null;
Statement stmt = null; try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
String sql = "CREATE TABLE test (name varchar(20))";
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}结果连接出错:
java.sql.SQLException: Io 异常: Bad packet type
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at OracleJdbc.launchJDBC(OracleJdbc.java:18)
at OracleJdbc.main(OracleJdbc.java:5)不知道是不用端口用错了
端口配置是
iSQL*Plus HTTP 端口号 =5560
Enterprise Manager Console HTTP 端口 (orcl) = 1158
Enterprise Manager 代理端口 (orcl) = 3938
应该用哪个?
不过3个好像都有问题

解决方案 »

  1.   

    String DBURL = "jdbc:oracle:thin:@localhost:1521:ORCL"; 
    你看的那个端口是进控制台用的
      

  2.   

    jdbc:oracle:thin:@localhost:5560:ORCL"; 改用IP试试
      

  3.   

    我是第一次用oracle
    配置文件里是:
    iSQL*Plus HTTP 端口号 =5560 
    Enterprise Manager Console HTTP 端口 (orcl) = 1158 
    Enterprise Manager 代理端口 (orcl) = 3938我没有改oracle10g的默认端口,不知道JDBC要连哪个端口