天天看點

PreparedStatement接口

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


    }
}