| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1814 人关注过本帖
标题:select count(*) from products 得出结果令我郁闷,
只看楼主 加入收藏
zbs
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-30
收藏
 问题点数:0 回复次数:11 
select count(*) from products 得出结果令我郁闷,

我在booklist.jsp中调用这个一个ID为book_list的javabean的一个
函数book_search(request)
这个函数一部份是这样的
public boolean book_search(HttpServletRequest res) throws Exception {
DataBase db = new DataBase();
db.connect();
stmt = (db.conn).createStatement ();

ResultSet rs2 =stmt.executeQuery("select count(*) from products");
while (rs2.next()){

System.out.println("number="+rs2.getInt(1));//这个地方他等于0,,为什么?


}
rs2.close()

。。。。。。。。


其中这个bean extends DataBase

DataBase 基本代码如下:


public class DataBase {
public Connection conn;
public Statement stmt;
public ResultSet rs=null;
//public Init
public boolean connect(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url ="jdbc:microsoft:sqlserver://localhost:1433;DababaseName=BookShop";
conn = DriverManager.getConnection(url,"sa","");
//stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

}
catch(Exception e){
System.out.println("connect database error");
return false;
}
return true;
}


我的问题是: 通过上面的方法 为什么得出number=0呢!
后来,我做了一个实验 做两个java,一个类extends别一个类
结果是对的

搜索更多相关主题的帖子: count products select 结果 
2007-05-01 11:48
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
数据表和数据库有没有错 !

我的网站 http://www.
2007-05-01 11:59
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 
你把
while (rs2.next()){
System.out.println("number="+rs2.getInt(1))
}
改一下
SQL语句改成select count(columnName) from products
int i=0;
while(rs2.next())
{
i++;
}
System.out.println("number="+i);
试试!

2007-05-01 12:01
zbs
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-30
收藏
得分:0 


先谢谢的回复
如果按照你的方法,number的值等于1

所以我得出的结论是 这个语句肯定是进行了查询了,但是返回的是没有值
所以 也能执行到
while(rs2.next())
{
i++;

}
所以你的方法number=1;
我在的方法number=0
换句话说,数据库是进行了查询,返回的是没有值(我在数据库和表都正确并且有值)

2007-05-01 13:24
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 
我终于明白你的意思了!我想可能和你的查询操作有关!你的SQL查询语句查询列返回的是一个数,而你下面要查的是一个列里的值!这样是查不出什么值的!如果你把SQL语句改成select * from products因该就可以了!我那个也写得乱七八糟的!呵呵 误导误导!

2007-05-01 15:42
zbs
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-30
收藏
得分:0 

楼上的没误导我啊,大家 多多讨论,多多学习啊

我的本意是想计算出数据库中 表的记录数有总共多少条,但是让我很郁闷的是他总是等于0 ,select count(*) from products好像是求总录数吧


ResultSet rs2 =stmt.executeQuery("select count(*) from products");
while (rs2.next()){

System.out.println("number="+rs2.getInt(1));//这个地方他等于0,,


}
2007-05-01 16:53
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 
不知道了!我自己建了个数据库用了那几种方法都能得到正确的结果!程序运行时有没有异常?

2007-05-01 22:05
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 
我把我的代码贴出来你比较一下吧!
import java.sql.*;

public class MySQLTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:MySQL://localhost:3306/mydatabase";
String user = "root";
String password = "";
Connection con;

try
{
Class.forName(driver);
con = DriverManager.getConnection(url,user,password);
String insert = "insert friends(id,name) values(?,?)";
PreparedStatement ps = con.prepareStatement(insert);
String names = "Rachel";
ps.setInt(1, 1);
ps.setString(2, names);
ps.execute();
String query = "select count(*) from friends";
ResultSet rs = ps.executeQuery(query);
while(rs.next())
{
System.out.println(rs.getInt(1));
}
}
catch(Exception e)
{
e.printStackTrace();
}
数据库就2个字段 一个Id 一个name!

2007-05-01 22:22
zbs
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-30
收藏
得分:0 

我今天 搞了一天
在本工程里面 我怎么改都是 一个 为0
后来 我建立一个 工程,做实验,发现 结果都是对的


于是我,,我把刚开始错的工程中的这个str=dbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookShop
这个重写了一次,发现结果都是对的
我比较刚才的str发现 两个str是一模一样 的,但是在我机子结果不一样,


就是下面这两个: 有兴趣你们可以试试(有时侯上网考下面的东西用不了),
我不知道是不是机子问题?

jdbc:microsoft:sqlserver://localhost:1433;DababaseName=BookShop
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookShop(正常)

2007-05-01 23:41
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 
晕 LZ这个可能是不是和RP有关啊!呵呵

2007-05-02 20:12
快速回复:select count(*) from products 得出结果令我郁闷,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015530 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved