JDBC——PreparedStatement执行SQL的对象
时间:2021-07-01 10:21:17
帮助过:19人阅读
cn.itcast.jdbc;
import cn.itcast.util.JDBCUtils;
import java.sql.*
;
import java.util.Scanner;
public class JdbcDemo11 {
public static void main(String[] args) {
//1.键盘录入,接收用户名和密码
Scanner sc =
new Scanner(System.in);
System.out.println("请输入用户名"
);
String username =
sc.nextLine();
System.out.println("请输入密码"
);
String password =
sc.nextLine();
//2.调用方法login,因为不是静态方法,所以要创建对象
boolean flag =
new JdbcDemo11().login2(username, password);
//3.判断结果,输出同语句
if (flag){
System.out.println("登录成功"
);
}else {
System.out.println("登录失败,用户名或密码错误"
);
}
}
/**
* 登录方法,PreparedStatement实现
*/
public boolean login2(String username, String password) {
if (username ==
null || password ==
null) {
//如果有一个为空就不用去连接数据库,做操作
return false;
}
//连接数据库是否判断成功
Connection conn =
null;
PreparedStatement pstmt =
null;
ResultSet rs =
null;
try {
//1.获取数据库连接
conn =
JDBCUtils.getConnection();
//2.定义SQL
String sql = "select * from user where username= ? and password = ?;"
;
//3.获取执行SQL的对象
pstmt =
conn.prepareStatement(sql);
//给?赋值
pstmt.setString(1
,username);
pstmt.setString(2
,password);
//4.执行查询,不需要传参数
rs =
pstmt.executeQuery();
//5.判断
/* if (rs.next()){//不用这样写rs.next()返回的就是true,false
return true;
}else {
return false;
}*/
return rs.next();
//如果有下一行返回true
} catch (SQLException e) {
e.printStackTrace();
} finally {
//释放资源
JDBCUtils.close(rs, pstmt, conn);
}
return false;
}
}
JDBC——PreparedStatement执行SQL的对象
标签:没有 子类 预编译 oid connect red 获取 步骤 cep