方法 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);
}
}