java.sql.SQLException: ORA-00942: 表或视图不存在 30
用jdbc链接oracle10g数据库,可以链接上,但是读取时就出现这个错误,请教高手!进行用户登陆验证,表:usersdb,publicbooleanverifyUse...
用jdbc链接oracle 10g 数据库,可以链接上,但是读取时就出现这个错误,请教高手!
进行用户登陆验证,表:usersdb,
public boolean verifyUser(String username, String password) {
PreparedStatement pstmt = null;
ResultSet rs = null;
String sqlStr = "select * from scott.usersdb where username=? and pwd=?";
try {
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()){
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.sql.SQLException: ORA-00942: 表或视图不存在
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:831)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2496)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2840)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:536)
at com.book.DAO.UserDao.verifyUser(UserDao.java:30)
谢谢
我用的是win7系统 oracle 10g
表 是在scott用户下创建的,scott.usersdb 去掉scott也不行,字段也没有写错。用scott登陆,在数据库运行sql语句是没问题的,可以查到记录。还请大家帮忙看看,非常感谢!
create table usersDB(
username varchar2(20) primary key,
pwd varchar2(20) not null,
sex varchar2(10) not null,
age number(5,2),
hobby varchar2(20),
email varchar2(20)
); 展开
进行用户登陆验证,表:usersdb,
public boolean verifyUser(String username, String password) {
PreparedStatement pstmt = null;
ResultSet rs = null;
String sqlStr = "select * from scott.usersdb where username=? and pwd=?";
try {
pstmt = conn.prepareStatement(sqlStr);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()){
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.sql.SQLException: ORA-00942: 表或视图不存在
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:831)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2496)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2840)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:536)
at com.book.DAO.UserDao.verifyUser(UserDao.java:30)
谢谢
我用的是win7系统 oracle 10g
表 是在scott用户下创建的,scott.usersdb 去掉scott也不行,字段也没有写错。用scott登陆,在数据库运行sql语句是没问题的,可以查到记录。还请大家帮忙看看,非常感谢!
create table usersDB(
username varchar2(20) primary key,
pwd varchar2(20) not null,
sex varchar2(10) not null,
age number(5,2),
hobby varchar2(20),
email varchar2(20)
); 展开
7个回答
展开全部
看一下你配置数据库信息的时候有没有写错信息啊,我刚刚遇到过这个问题,是自己粗心写错信息了。给你看一下这段代码,是可以运行的:
Class.forName("oracle.jdbc.driver.OracleDriver") ;
//Driver oracle = new oracle.jdbc.driver.OracleDriver() ;
String url = "jdbc:oracle:thin:@211.87.224.234:1521:sbmTele";
Connection c = DriverManager.getConnection(url,"scott","sduasp") ;
Statement stmt = c.createStatement() ;
Date sendTime = new Date();
String sql = "insert into MAIL_LOG values('"+serviceMailAddress+"','"+to
+"','"+sendTime+"','"+subject+"','"+content+"','"+type+"','"+addition+"','"+fileStr+"','"+dir+"')" ;
int rs = stmt.executeUpdate(sql) ;
if(rs<1){
System.out.println("插入失败");
}
stmt.close() ;
c.close() ;
Class.forName("oracle.jdbc.driver.OracleDriver") ;
//Driver oracle = new oracle.jdbc.driver.OracleDriver() ;
String url = "jdbc:oracle:thin:@211.87.224.234:1521:sbmTele";
Connection c = DriverManager.getConnection(url,"scott","sduasp") ;
Statement stmt = c.createStatement() ;
Date sendTime = new Date();
String sql = "insert into MAIL_LOG values('"+serviceMailAddress+"','"+to
+"','"+sendTime+"','"+subject+"','"+content+"','"+type+"','"+addition+"','"+fileStr+"','"+dir+"')" ;
int rs = stmt.executeUpdate(sql) ;
if(rs<1){
System.out.println("插入失败");
}
stmt.close() ;
c.close() ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scott.usersdb 表不存在,先检查下你连接的数据库是不是正确的,建议先在数据库里面执行一下。
另:表名前一名不用加用户名,你连接数据库的时候,就已经指定了是哪个用户了
另:表名前一名不用加用户名,你连接数据库的时候,就已经指定了是哪个用户了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你查询的表不存在。或者是你在数据库连接的时候用户名的权限太小,你可以先在数据库里用一个用户名进去,用sql查询,如果查到了,再用那个用户名在程序里的url中写上,你写的程序没什么问题,只不过找不到你要查的表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的sql语句有问题,要么是你的表不存在,或者是你的scott表没有解锁,你可以把你的sql语句复制到数据库运行一下看可以不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from user_objects where object_name ='usersDB'
看看有没有这个对象,这个对象是不是一张表
看看有没有这个对象,这个对象是不是一张表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询