java连接oracle出现问题 java.sql.SQLException: 违反协议

classes12.jar已经导入到lomboz程序如下importjava.sql.*;publicclassTestJDBC{publicstaticvoidmain... classes12.jar已经导入到lomboz
程序如下
import java.sql.*;

public class TestJDBC {

public static void main(String[] args) {
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//new oracle.jdbc.driver.OracleDriver();
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:YYS", "scott", "tiger");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while(rs.next()) {
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt("deptno"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}
程序应当没错,是尚学堂马士兵老师的。
出错信息如下:
java.sql.SQLException: 违反协议
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:944)
at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:521)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:262)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:307)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at TestJDBC.main(TestJDBC.java:12)

---------------------
包导入了,oracle数据库版本90 导入的是classes12.jar
展开
 我来答
zhang6610211
2009-09-24 · 超过30用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:89.6万
展开全部
package Test;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

public class db {
Connection conn=null;
static Statement st=null;
static ResultSet rs=null;
static String sql="SELECT * FROM infer ";

public static void main(String[] args) {

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
Connection conn = DriverManager.getConnection("jdbc:odbc:db02",null,null);
st=conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(1)+ " "+ rs.getString(2)+ " " +rs.getString(3)) ;
}
} catch (SQLException e) {

e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友30880d5
2009-09-22 · 超过29用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:72.1万
展开全部
java.sql.SQLException: 违反协议
一般都是jdbc的驱动出问题了,你重新下个驱动试下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cxzucc
2009-09-22 · TA获得超过1317个赞
知道小有建树答主
回答量:1735
采纳率:79%
帮助的人:574万
展开全部
哪句报错?感觉可能是非法字符引起的,查看你数据库的字符集和记录里的字符。
System.out.println(rs.getInt("deptno"));也可能是这里,你的deptno有的不能转换成int类型。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友faaf59f
2009-09-22 · TA获得超过536个赞
知道答主
回答量:145
采纳率:0%
帮助的人:82.5万
展开全部
贴报错信息,不然没法看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友035ac20
2009-09-22 · 超过24用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
你用的oracle数据库是什么版本的啊 ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式