急急急,表或视图不存在,怎么回事?

starive_giant 2011-04-10 05:55:18
这是我的java代码:
public List queryUsers(String type,String value ) throws Exception {
System.out.println("我在org.UserData.queryUsers中 1"); List allUsers = new ArrayList();
System.out.println("我在org.UserData.queryUsers中 2"); User user = null;
String sql = "select userid,uname,upassword,usex,uroleid,uemail,question,answers,webaddress,weblog,gallery,urank,birthday,newmessage,totalposts,umoney,experience,ufaceurl,regip,actip,to_char(regtime,'yyyy-mm-dd hh24:mi:ss'),to_char(posttime,'yyyy-mm-dd hh24:mi:ss'),to_char(lastacttime,'yyyy-mm-dd hh24:mi:ss'),realname,work,address,qq,interests,utitle,actday,usign,uinfo from td_users where "+type+" = ?";

PreparedStatement pstm = null;
System.out.println("我在org.UserData.queryUsers中 3"); try {
pstm = DbConn.getConn().prepareStatement(sql);
pstm.setString(1, value);
System.out.println("我在org.UserData.queryUsers中 4"); ResultSet rs = pstm.executeQuery();
System.out.println("我在org.UserData.queryUsers中 4-1"); if (rs.next()) {
System.out.println("我在org.UserData.queryUsers中 4-2"); user = new User();
user.setUserid(rs.getInt(1));

显示错误如下:

我在org.UserData.queryUsers中 1
我在org.UserData.queryUsers中 2
我在org.UserData.queryUsers中 3
conn is:jdbc:oracle:thin:@localhost:1521:tdbbs, UserName=ADMIN, Oracle JDBC driver
数据库连接成功!!
我在org.UserData.queryUsers中 4
java.sql.SQLException: ORA-00942: 表或视图不存在
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:622)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:180)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:419)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:895)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:451)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:985)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2887)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2928)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.UserData.queryUsers(UserData.java:93)
at org.apache.jsp.graduate.src.tiandao.WebRoot.logincheck_jsp._jspService(logincheck_jsp.java:115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

请教高手,这是什么原因啊???
但是在oracle中:
SQL> select count(*) from td_users;

COUNT(*)
----------
2

明明有td_users表,而且表中还有两行数据了,为什么说我表或视图不存在???

请高手解答!!!!
...全文
861 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
304的的哥 2011-04-11
[Quote=引用 8 楼 ggxxkkll 的回复:]

引用或者你连接的用户(ADMIN)下没有这张(td_users).
或者ADMIN没有select表tb_users的权限.
重建,commit,再次连接数据库,看看...

BOBO12082119,你好!
下面是我的最开始的步骤步骤(第一种方法):

sqlplus/nolog
conn system/orcl

create tablespace td_bbsp
……
[/Quote]
没有提交所致......
回复
starive_giant 2011-04-11
[Quote]或者你连接的用户(ADMIN)下没有这张(td_users).
或者ADMIN没有select表tb_users的权限.
重建,commit,再次连接数据库,看看...[/Quote]

BOBO12082119,你好!
下面是我的最开始的步骤步骤(第一种方法):

sqlplus/nolog
conn system/orcl

create tablespace td_bbsp
datafile 'C:\tomcat\webapps\jsp15\graduate\td_bbsdf1.dbf' size 50m
uniform size 128k;

--创建用户
create user admin identified by admin default tablespace td_bbsp;

--授予用户权限
grant dba,connect,resource to admin;

--利用创建用户登陆数据库
connect admin/admin@"" as sysdba;

---创建所有的表并插入数据
。。。。。。。。
。。。。。。。。此处省略很多行
。。。。。。。。

之后就不能连接数据库了,出现:java.sql.SQLException: ORA-00942: 表或视图不存在


我根据各位高手帮助,改进后的做法
sqlplus/nolog
conn admin/admin

create tablespace td_bbsp
datafile 'C:\tomcat\webapps\jsp15\graduate\td_bbsdf1.dbf' size 50m
uniform size 128k;

--授予用户权限
grant dba,connect,resource to admin;


---创建所有的表并插入数据
。。。。。。。。
。。。。。。。。此处省略很多行
。。。。。。。。

commit;


最后,我就成功了。
请教各位,原来我用第一中方法没成功的原因是什么?
第一中方法:
虽然我先是用system登录的,但是接着我用admin:
connect admin/admin@"" as sysdba;
然后创建表了,不也是先用admin登录,在创建所有的表的吗,怎么就没有权限了??
难道是没有 commit??

请高手指点!!!
回复
304的的哥 2011-04-11
[Quote=引用楼主 ggxxkkll 的回复:]
显示错误如下:
我在org.UserData.queryUsers中 1
我在org.UserData.queryUsers中 2
我在org.UserData.queryUsers中 3
conn is:jdbc:oracle:thin:@localhost:1521:tdbbs, UserName=ADMIN, Oracle JDBC driver
数据库连接成功!!
我在org.UserData.queryUsers中 4
java.sql.SQLException: ORA-00942: 表或视图不存在
[/Quote]
或者你连接的用户(ADMIN)下没有这张(td_users).
或者ADMIN没有select表tb_users的权限.
重建,commit,再次连接数据库,看看...
回复
li1229363 2011-04-11
权限问题,可能是你的表的权限在使用Java连接的时候,并没有权限去访问,你检查线连接用的用户名的权限吧
回复
ruihuahan 2011-04-11
UserName=ADMIN

用户admin 没有相应表的权限所致
回复
starive_giant 2011-04-11
谢谢各位,结贴给分
回复
Laughing 2011-04-10
确保你的表是否属于数据库连接所使用的用户,如果是的话应该不会出现这个错误。
回复
虫洞 2011-04-10
select count(*) from admin.td_users;
回复
starive_giant 2011-04-10
[Quote]代码里加上表名的用户名。。。。[/Quote]

请问zftang,具体怎么加用户名,怎么修改代码???

你可以指教一二吗?
回复
秋雨飘落 2011-04-10
代码里加上表名的用户名。。。。

回复
starive_giant 2011-04-10
上面青颜色的代码,都是 测试跟踪代码,没有其他用途。

求高手指点。
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2011-04-10 05:55
社区公告
暂无公告