使用PreparedStatement实现查询操作系列一-----用户登录操作
PreparedStatement是Statement的子接口,可以用于防止SQL注入。下面展示了如何使用PreparedStatement实现查询操作,并将其应用在“登录”操作上
在演示此程序之前,当然得需要在MySql可视化管理工具Navciat建立相应的数据库与数据库表。
另外,本程序在刚开始获取链接MySql的连接对象Connection时候采用了上一篇博客的代码:JDBC链接MySql
下面是是代码:
package jdbcPrograms;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import commonDBConnection.ConnectToDataBase;
public class JDBCQueryDataFromDataBase {
/*
* 查询数据:登录
*/
public static void main(String[] args) {
String userName="admin";
String userPwd="admin2";
PreparedStatement preparedStatement=null;
String sqlQueryLogin="SELECT * from tb_loginuser WHERE userName=? AND userPwd=?";
Connection connection=ConnectToDataBase.getDataBaseConnection();
try {
preparedStatement=connection.prepareStatement(sqlQueryLogin);
preparedStatement.setString(1, userName);
preparedStatement.setString(2, userPwd);
} catch (SQLException e) {
System.out.println("创建数据库语句异常: "+e.getMessage());
}
ResultSet rs=null;
try {
rs=preparedStatement.executeQuery();
} catch (SQLException e) {
System.out.println("查询数据库语句异常: "+e.getMessage());
}
try {
if (rs.next()) {
System.out.println("\n\n--用户名与密码都正确,登录......--\n\n");
}else{
System.out.println("\n\n--用户名与密码不错,请重新登录......--\n\n");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
preparedStatement.close();
} catch (SQLException e) {
System.out.println("关闭查询语句异常: "+e.getMessage());
}
try {
connection.close();
} catch (SQLException e) {
System.out.println("关闭数据库链接异常: "+e.getMessage());
}
}
}
}
上述代码中:
Connection connection=ConnectToDataBase.getDataBaseConnection();
即调用了上篇博客所写的链接MySql的封装代码。