Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การใช้ PreparedStatement สำหรับ SELECT Query ใน Java กับ MySQL

ใช้เมธอด executeQuery() สำหรับคำสั่ง SELECT ด้วย PreparedStatement

ไวยากรณ์

yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);
yourResultSetObject = yourPreparedStatementObject.executeQuery();

ตัวอย่างโค้ด Java เต็มรูปแบบ

สร้างตารางในฐานข้อมูล 'sample':

mysql> create table JavaPreparedStatement (
    -> Id int,
    -> Name varchar(10),
    -> Age int
    -> );
Query OK, 0 rows affected (0.89 sec)

เพิ่มข้อมูลทดสอบ:

mysql> insert into JavaPreparedStatement values(1,'Larry',23);
mysql> insert into JavaPreparedStatement values(2,'Sam',25);
mysql> insert into JavaPreparedStatement values(3,'Mike',26);

โค้ด Java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class PreparedStatementSelectQueryDemo {
    public static void main(String[] args) {
        String JdbcURL = "jdbc:mysql://localhost:3306/sample?useSSL=false";
        String Username = "root";
        String password = "123456";
        Connection con = null;
        PreparedStatement pstmt = null;
        ResultSet rst = null;
        String myQuery = "select Id,Name,Age from JavaPreparedStatement";
        try {
            con = DriverManager.getConnection(JdbcURL, Username, password);
            pstmt = con.prepareStatement(myQuery);
            rst = pstmt.executeQuery();
            System.out.println("Id\t\tName\t\tAge\n");
            while(rst.next()) {
                System.out.print(rst.getInt(1));
                System.out.print("\t\t" + rst.getString(2));
                System.out.print("\t\t" + rst.getInt(3));
                System.out.println();
            }
        } catch(Exception exec) {
            exec.printStackTrace();
        }
    }
}

ข้อดีของ PreparedStatement: ป้องกัน SQL Injection, ประสิทธิภาพดีกว่าเมื่อรันคิวรี่ซ้ำ, จัดการชนิดข้อมูลอัตโนมัติ