preparedStatement = connect.prepareStatement("select * from mark where clsnum='"+t1.getText()+"'");
rs = preparedStatement.executeQuery(); // ResultSet
假设上面的SQL查询有效,即它找到了与搜索到的"clsnum"相对应的值。那么"rs"的值是多少?
假设我需要根据
'rs'
中的值显示一条消息。如果'rs'
包含一行,我需要显示一条消息'Number Found'
。如果'rs'
不包含任何值,则需要显示消息'Number Not Found'
。那么我该怎么做呢
示例1:
SELECT COUNT( clsnum ) AS match_count FROM MARK WHERE clsnum ?
如果match_count
比0
大,则显示消息'Number Found'
,否则为'Number Not Found'
。
示例2:
SELECT COUNT( clsnum ) > 0 AS match_found FROM MARK WHERE clsnum ?
如果match_found
是true
,则显示消息'Number Found'
,否则为'Number Not Found'
。
示例3:
SELECT IF( COUNT( clsnum ) > 0,
'Number Found',
'Number Not Found'
) AS message_to_display
FROM MARK
WHERE clsnum ?
如果您的要求只是显示消息,请阅读ResultSet
中的message_to_display
并显示。
而且,您并没有按应有的方式使用prepared语句。请为输入值使用占位符,并使用相关的setXXX
方法绑定它们。
示例4:
String query = "
SELECT IF( COUNT( clsnum ) > 0,
'Number Found',
'Number Not Found'
) AS message_to_display
FROM MARK
WHERE clsnum ?";
PreparedStatement pst = connect.prepareStatement( query );
pst.setString( 1, t1.getText() );
ResultSet rs = preparedStatement.executeQuery();
String messageToDisplay = "Number Not Found";
if( rs.next() ) {
messageToDisplay = rs.getString( message_to_display );
}
// procedure further with your other operations