方法 executeUpdate() 可以执行增删改语句
executeQuery() l可以执行查语句
好处 PrepareStatement() 提前将SQL语句发送给数据库进行编译 提高效率 安全性高 没有sql 注入的隐患
提高了程序的可读性
PreparedStatement 步骤
1 编写sql 语句 未知内容使用? 占位符 :
Select * from user where name=? and password=?;
2 获得PreparedStatement对象
3 设置实际的参数 setxxx(占位符的位置,真实的值);
4 执行sql语句
5 关闭资源
package cn.linjun.demo;
import JdbcUtils.JdbcDemo2;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
/*
* 使用 PreparedStatement 接口完成登录
* **/
public class DemoLogin {
public static void main(String[] args) throws SQLException {
//从控制台输入用户密码
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名");
String name = sc.nextLine();
System.out.println("请输入密码");
String password = sc.nextLine();
//登录的方法
login(name,password);
}
public static void login(String name,String password) throws SQLException {
Connection connection = JdbcDemo2.getConnection();
//编写Sql语句 未知内容使用? 占位符
String sql="select * from user1 where uname=? and pas=?";
//获得PreparedStatement 对象
PreparedStatement ps = connection.prepareStatement(sql);
//设置实际参数 setXXX(占位符的位置,真是的值)
ps.setString(1,name);
ps.setString(2,password);
//执行sql语句
ResultSet rs = ps.executeQuery();
if (rs.next()){
System.out.println("登陆成功");
}else{
System.out.println("登录失败");
}
//关闭资源
JdbcDemo2.close(rs,ps,connection);
}
}