sql语句(100分)

  • 主题发起人 主题发起人 saisi
  • 开始时间 开始时间
S

saisi

Unregistered / Unconfirmed
GUEST, unregistred user!
我在jsp中执行sql语句:
String sql="select * from tablA group by year(recDate),month(recDate)";
Connection con=ConnectionManger.getConnection();
PreparedStatement pstmt=con.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
out.print("test");
}
后台数据库:MySQL
但是没有任何输出(事实是有一条记录)
 
while(rs.next())//??
while(not rs.isempty())吧, 不知道有没有这个函数,反正就是表不空的意思
你的next下一条了当然是空的了
 
不好意思这是JAVA,是这样的
 
if( rs != null ){
while( rs.next() ){
out.println("你的用户名字是:/t" + sqlRst.getString("userid")+"<br>");
out.println("你的密码是:/t" + sqlRst.getString("userpass")+"<br>");
}
}
rs.close();
 
to lnboy:
这种判断是没必要的,而且对解决问题一点帮助也没有的。
 
你把得到的sql在"查询分析器上"执行,看有没有结果.
来分析是sql语句错了,还是程序写错了.
group by 是不是要和sum,avg,来一起用呀?
我没用过mysql.
对了,好象不能executeQuery.而是openQuery()
 
对了,好象不能executeQuery.而是openQuery()
to li_cj:
java中是这样调用的
可以在数据库中加几个记录,看是什么情况
 
if(rs.next())
{
rs.last();
recordCount=rs.getRow();
}
System.out.println("The RecordCount is : "+recordCount);
先把你程序里的While那一段注释掉,加上这一段,先看看有没有从数据库中取出记录,如果
没有就是你的Sql语句有问题了
 
加上rs.beforefirst();
 
Mysql没有用过,你在数据库中执行sql没有问题吗?
 
你先把sql语句改一个能出来数据的试试,比如select * from tablA,如果有数据的话,那说明你写的这个sql有问题,group by后面能否加函数这个好像没试过,不过前面不能用*,像这样写是正确的
select recdate,count(1) from tablA group by recdate;
按照recdate来分组,估计是你这句sql有问题
 
检查一下你的SQL语句是否正确!
 
为何要这样分组?
 
Connection设置数据库,setCatalog
不用PrepareStatement,改用CreateStatement
 
select * from tablA group by year(recDate),month(recDate)
这样写你的表中只能有recDate一个字段
还是先检查一下SQL,在mysql中执行一下:
select * from tablA group by year(recDate),month(recDate);
看有没有输出
 
1. 检查在mysql执行后能否得到你想要的结果
2. 你只是查询,没必要PreparedStatement
我这么写:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch (ClassNotFoundException e) {
System.err.println("DB init error(no such class): " + e.getMessage());
}
catch (Exception e) {
System.err.println("DB init error(other exception): " + e.getMessage());
}
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/yourdbname?user=dbusername&amp;password=dbpassword");
}
catch (SQLException e) {
System.err.println("DB connect failed: " + e.getMessage());
}
String sql="select * from tablA group by year(recDate),month(recDate)";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
//...do
something ...
}
 
后退
顶部