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();
展开
 我来答
splaybow
2011-12-11 · TA获得超过488个赞
知道小有建树答主
回答量:941
采纳率:0%
帮助的人:725万
展开全部
程序本身没有问题。但是,你先把这个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语句没有问题了,你再照楼上康熙的方法去解决其它相关问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
康熙转世
2011-12-11 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2948万
展开全部
PreparedStatement 是传入参数应该是问号形式 like的用法类似
这种写法 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语句
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有永远的诺言D9ff2
2011-12-11 · TA获得超过110个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:154万
展开全部
"
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '"+str+"'");
"有问题, like 的通配符用法问题,你把 '"+str+"'"改成 '%str%'试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuexiao45
2011-12-12 · TA获得超过2343个赞
知道小有建树答主
回答量:794
采纳率:0%
帮助的人:163万
展开全部
preparedStmt =sqlCon.prepareStatement("select state,come,des,subject,content
from yymail where state like '%"+str+"%'");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2011-12-11 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
据说,直接用RowCount不行的。
改成这样判断
if( sqlRst.next() ){
………………
}
if改成for,也是这样判断的好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式