java SQL select 语句 获取不到查询结果
//装载JDBC驱动程序Class.forName("org.gjt.mm.mysql.Driver").newInstance();//连接数据库sqlCon=java...
//装载JDBC驱动程序
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//连接数据库
sqlCon = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/libiary","root","102686");
//创建语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//执行SQL语句并获取结果集
java.sql.PreparedStatement preparedStmt=null; //语句对象
String str="0";
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
//执行Sql语句
sqlRst=preparedStmt.executeQuery ();
int intRowCount = sqlRst.getRow();
out.println(intRowCount);
/* if(intRowCount>0){
from = sqlRst.getString(2);
to=sqlRst.getString(3);
subject= sqlRst.getString(4);
content=sqlRst.getString(5);
sqlRst.next();
intRowCount--;
}*/
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
sqlCon.close(); 展开
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//连接数据库
sqlCon = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/libiary","root","102686");
//创建语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//执行SQL语句并获取结果集
java.sql.PreparedStatement preparedStmt=null; //语句对象
String str="0";
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
//执行Sql语句
sqlRst=preparedStmt.executeQuery ();
int intRowCount = sqlRst.getRow();
out.println(intRowCount);
/* if(intRowCount>0){
from = sqlRst.getString(2);
to=sqlRst.getString(3);
subject= sqlRst.getString(4);
content=sqlRst.getString(5);
sqlRst.next();
intRowCount--;
}*/
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
sqlCon.close(); 展开
5个回答
展开全部
程序本身没有问题。但是,你先把这个SQL语句拿到数据库里面去查询一下,看看有没有查询记录呢!
String str="0";
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
即select state,come,des,subject,content from yymail where state like '0'
我估计是你SQL语句有问题。
如果SQL语句没有问题了,你再照楼上康熙的方法去解决其它相关问题。
String str="0";
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
即select state,come,des,subject,content from yymail where state like '0'
我估计是你SQL语句有问题。
如果SQL语句没有问题了,你再照楼上康熙的方法去解决其它相关问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
PreparedStatement 是传入参数应该是问号形式 like的用法类似
这种写法 String expr = "select * from table where url like ?";
pstmt = con.prepareStatement(expr);
String a="a";
pstmt.setString(1, "%"+a+"%");
pstmt.execute();
这种写法 String expr = "select * from table where url like ?";
pstmt = con.prepareStatement(expr);
String a="a";
pstmt.setString(1, "%"+a+"%");
pstmt.execute();
更多追问追答
追问
那个问题按照这种方法解决了,但是在下面的updata语句又出现问题了
if( sqlRst.next() ){
subject= sqlRst.getString(4);
String SQL="update yymail "+"set state=sended"+"where subject="+subject;//在这里获取符合查询条件的结果集,同时改变属性state的值 sqlStmt.execute(SQL);
}
追答
statement这个应该用executeUpdate去执行update语句
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
"有问题, like 的通配符用法问题,你把 '"+str+"'"改成 '%str%'试试
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
"有问题, like 的通配符用法问题,你把 '"+str+"'"改成 '%str%'试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '%"+str+"%'");
from yymail where state like '%"+str+"%'");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
据说,直接用RowCount不行的。
改成这样判断
if( sqlRst.next() ){
………………
}
if改成for,也是这样判断的好。
改成这样判断
if( sqlRst.next() ){
………………
}
if改成for,也是这样判断的好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询