谢谢楼上的朋友。 我明白了。我一会再试试。另外可不可以再问个问题:首先说明一下:我在JSP文件中建立了一个这样的方法:(其中什么包什么的我都引上来了,另外还有JAVABEAN我也建立了。同样也引过来了。) 方法如下:public List<Users> getAllUsers() throws Exception // List<User>是数组 { Connection conn = null; PreparedStatement prep = null; ResultSet rs = null; // java.sql中的结果集 List<Users> result = new ArrayList<Users>(); try { conn = new DBConnection().getConnection(); String sql = "select * from users"; System.out.println("sql:" + sql); prep = conn.prepareStatement(sql); rs = prep.executeQuery(); while (rs.next()) { Users user = new Users(); user.setLoginName(rs.getString("loginName")); user.setPassword(rs.getString("password")); user.setBirthday(rs.getDate("birthday")); user.setEmail(rs.getString("email")); user.setScore(rs.getInt("score")); user.setSex(rs.getInt("sex")); user.setLevelId(rs.getInt("levelId")); user.setCreateTime(rs.getDate("createTime")); user.setPasswordQuestion(rs.getString("passwordQuestion")); user.setAnswer(rs.getString("answer")); user.setIsWarm(rs.getInt("isWarm")); result.add(user); } } finally { if (rs != null) { rs.close(); } if (prep != null) { prep.close(); } if (conn != null) { conn.close(); } } return result; }我是用这个测试函数来测试的: public static void main(String args[]) throws Exception {
List<Users> user = new Dao().getAllUsers(); for (int i = 0; i < user.size(); i++) { Users user1 = (Users) user.get(i); System.out.println("姓名" + user1.getLoginName()); System.out.println("密码" + user1.getPassword()); } } 数据库名为eshop,密码是sa,数据库连接也是成功的。没有错误。为什么就是不成功呢,总是出现这样的错误:sql:select * from users Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'users' 无效。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source) at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source) at eshop.util.Dao.getAllUsers(Dao.java:30) at eshop.util.Dao.main(Dao.java:92) 一般出现我样的错误的都是数据库名和程序名不对照,但是这次,我感觉不是。我也检查了好几遍了。不知道问题出在哪里了。望朋友走过。帮帮忙。!!真诚的-----谢谢
从异常上看好像是无法访问表users,如果连接url指向的是正确数据库的话,可能是因为你连接使用的用户并非users表的所有者。把sql语句改为"select * from [所有者].users"试一下。
我放上面去了啊!
这个问题我搞了一下午,终于弄出来了。原来在“查看”菜单中有“查看原代码”就可以解决的问题。
在它上面可以看到如下的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><frameset rows="*" cols="156,*" framespacing="2" frameborder="NO" border="2" bordercolor="#0000FF">
<frame src="nav.html" name="leftFrame" scrolling="NO" noresize>
<frame src="file:///C|/Program%20Files/Macromedia/Dreamweaver%20MX%202004/Untitled-2" name="mainFrame">
</frameset>
<noframes><body>
</body></noframes>
</html>
原来弄的和他的一样,就是第一句代码改成:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
弄成JSP文件格式的头文件。
就是把那个框架搞一下就好了。也就是那个frameset,以后再也不会为这么小的问题发愁了。!谢谢楼上的朋友的观注!!真的很感谢。!!!
如果只是在一个页面导入另一个页面使用jstl的c:import就能实现
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><c:import url="xxx.jsp"></c:import>
方法如下:public List<Users> getAllUsers() throws Exception // List<User>是数组
{
Connection conn = null;
PreparedStatement prep = null;
ResultSet rs = null; // java.sql中的结果集
List<Users> result = new ArrayList<Users>();
try {
conn = new DBConnection().getConnection(); String sql = "select * from users";
System.out.println("sql:" + sql);
prep = conn.prepareStatement(sql);
rs = prep.executeQuery();
while (rs.next()) {
Users user = new Users();
user.setLoginName(rs.getString("loginName"));
user.setPassword(rs.getString("password"));
user.setBirthday(rs.getDate("birthday"));
user.setEmail(rs.getString("email"));
user.setScore(rs.getInt("score"));
user.setSex(rs.getInt("sex"));
user.setLevelId(rs.getInt("levelId"));
user.setCreateTime(rs.getDate("createTime"));
user.setPasswordQuestion(rs.getString("passwordQuestion"));
user.setAnswer(rs.getString("answer"));
user.setIsWarm(rs.getInt("isWarm")); result.add(user);
}
} finally {
if (rs != null) {
rs.close();
}
if (prep != null) {
prep.close();
}
if (conn != null) {
conn.close();
}
}
return result;
}我是用这个测试函数来测试的:
public static void main(String args[]) throws Exception {
List<Users> user = new Dao().getAllUsers();
for (int i = 0; i < user.size(); i++) {
Users user1 = (Users) user.get(i);
System.out.println("姓名" + user1.getLoginName());
System.out.println("密码" + user1.getPassword());
}
}
数据库名为eshop,密码是sa,数据库连接也是成功的。没有错误。为什么就是不成功呢,总是出现这样的错误:sql:select * from users
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'users' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at eshop.util.Dao.getAllUsers(Dao.java:30)
at eshop.util.Dao.main(Dao.java:92)
一般出现我样的错误的都是数据库名和程序名不对照,但是这次,我感觉不是。我也检查了好几遍了。不知道问题出在哪里了。望朋友走过。帮帮忙。!!真诚的-----谢谢
我的那个错误码我揣测了一天,最后终于弄出来了。还是我找了个高手弄出来的。这个问题也是他第一次碰到的。嘿嘿其实程序我检查了好几遍,每个角落我都看过。都没有问题,就是在与数据库连接时出了问题,虽然说与数据库连接上来了,也就是说测试那个DBConnection时,显示了Connection ok!!但是由于数据库中的控制台根目录下有一个“安全性‘,里面有一个”登录“点击它,在右边会出现他的内容。也就是说所有的用户,其中有一个sa用户,也就是超级用户。右键单击他查看它的属性,会有一个对话框,在对话框中,在默认设置下指定登录的默认语言和数据库。应该反原始的那个master改为自己的数据库,在我这里,也就是我的数据库eshop,这样才解决上面的问题。真是轻松啊问题终于解决了。哎。!!
和上面的朋友,H.Y说的有点接近。谢谢了朋友。。