小白请教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();