日期:2014-05-16  浏览次数:20380 次

小白请教jsp中myaql的条件查询怎么设置?
数据库设置了id、 password、 name
  admin admin admin
  visitor visitor visitor


查询语句没有WHERE条件时,能打印出东西
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%

Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
String url="jdbc:mysql://localhost:3306/tuser?user=root&password=admin&useUnicode=true&characterEncoding=GB2312";
Connection conn = null;
conn = DriverManager.getConnection(url); 

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
 
String sql = "select * from person"; 

ResultSet rs = stmt.executeQuery(sql); 
 
while(rs.next()) {
%> 

您的第一个字段内容为:<%= rs.getString(1) %> 

您的第二个字段内容为:<%= rs.getString(2) %> 

<%
}
rs.close(); 
stmt.close(); 
conn.close();
%> 
</body> 
</html>

把sql语句换成有WHERE条件的语句,比如String sql = "select * from person"; 这样一句就报错。
这是什么原因啊?正确的又该怎么写啊?
如果上一个页面传递了两个参数过来,在数据库中查找有没有与这两个参数相等的,又该怎么写啊?

------解决方案--------------------
Java code

String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();