Java Parameters Query for SELECT PreparedStatement (prepareStatement) |
Java Parameters Query for SELECT (prepareStatement) ตัวอย่างการใช้ PreparedStatement ในภาษา Java เพื่อ Query ข้อมูลแบบ SELECT การกำหนดรูปแบบของ Parameters แบบ Query ด้วยการ SELECT ข้อมูลจาก Table โดยที่ Prepared Statement รองรับการทำงานได้ทุก Database ไม่ว่าจะเป็น Access , MySQL , MariaDB , SQL Server หรือ Oracle Database
การนำ PreparedStatement ในการเขียนโปรแกรมด้วยภาษา Java มาช่วยในการเขียน SQL Statement จะช่วยให้การจัดการกับ Query นั้นมีประสิทธิภาพสูงขึ้นมาก เพราะ PreparedStatement เป็นการสร้าง Object ของ SQL Statement ขึ้นมา 1 ชุด ที่สามารถนำไปใช้งานได้หลายครั้ง อีกทั้งยังสามารถใช้ตรวจสอบความถูกต้องต้องข้อมูลได้ด้วย เช่นในแต่ล่ะ Parameters สามารถกำหนดชนิด Data Type ของข้อมูลได้ เช่น เป็นแบบ INTEGER ก็ใช้ setInt เป็นแบบ STRING ก็ใช้ setString และในความสามารถของการทำงานจะมี Performance ดีกว่าการเขียน Query ธรรมดา ทั้งในด้านความเร็ว ด้าน Secure ที่ช่วยป้องกัน SQL Injection อัตโนมัติ
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM EMPLOYEES
WHERE ID = ?");
pstmt.setInt(1, 101)
รูปแบบการเขียน PreparedStatement บนภาษา Java จะใช้เครื่องหมาย ? เป็นตำแหน่งของ Parameters โดยสามารถกำหนด Parameters ตามตำแหน่งโดยเริ่มจาก 1 ซึ่งรองรับ Data Type ต่าง ๆ เช่น
setNull ( index, null )
setBoolean ( index, boolean )
setByte ( index, byte )
setDate ( index, date )
setTime ( index, time )
setInt ( index, int )
setLong ( index, long )
setShort ( index, short )
setFloat ( index, float )
setDouble ( index, double )
setString ( index, string )
setObject ( index, object )
การนำ PreparedStatement มาใช้งานหลายครั้ง
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM EMPLOYEES
WHERE ID = ?");
// Query 1
pstmt.setInt(1, 101)
ResultSet rec1 = pstmt.executeQuery();
// Query 2
pstmt.setInt(1, 102)
ResultSet rec2 = pstmt.executeQuery();
จากตัวอย่างจะเห้นว่า Object ของ PreparedStatement สามารถนำมาใช้งานได้หลาย ๆ ครั้ง
Syntax for SELECT
PreparedStatement pre = connect.prepareStatement(sql);
สร้างชนิด Object ของ PreparedStatement เพื่อไว้สำหรับเก็บสร้าง Query และ Parameters
String sql = "SELECT * FROM customer " +
"WHERE CountryCode = ? ORDER BY CustomerID ASC";
pre = connect.prepareStatement(sql);
pre.setString(1, "TH");
สร้างชุดคำสั่งของ SQL และการเพิ่ม Parameters ในแต่ล่ะตำแหน่ง และ ในแต่ล่ะชนิดของข้อมูล
ResultSet rec = pre.executeQuery();
Execute เพื่อ Query ตัว PreparedStatement ซึ่งจะได้เป็น ResultSet สามารถที่จะนำ Result ที่ได้ไปใช้ได้ต่อ
Example การใช้ PreparedStatement ด้วยการ SELECT ข้อมูลจากตาราง (Table)
ตัวอย่างข้อมูล
MyClass.java
package com.java.myapp;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MyClass {
public static void main(String[] args) {
Connection connect = null;
PreparedStatement pre = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
String sql = "SELECT * FROM customer " +
"WHERE CountryCode = ? ORDER BY CustomerID ASC";
pre = connect.prepareStatement(sql);
pre.setString(1, "TH");
ResultSet rec = pre.executeQuery();
while((rec!=null) && (rec.next()))
{
System.out.print(rec.getString("CustomerID"));
System.out.print(" - ");
System.out.print(rec.getString("Name"));
System.out.print(" - ");
System.out.print(rec.getString("Email"));
System.out.print(" - ");
System.out.print(rec.getString("CountryCode"));
System.out.print(" - ");
System.out.print(rec.getFloat("Budget"));
System.out.print(" - ");
System.out.print(rec.getFloat("Used"));
System.out.println("");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
pre.close();
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
บทความเกี่ยวกับ PreparedStatement กับ Database ต่าง ๆ
Java Ms Access mdb and PreparedStatement/Parameters Query (JDBC)
Java MySQL Database and PreparedStatement/Parameters Query (JDBC)
Java MariaDB Database and PreparedStatement/Parameters Query (JDBC)
Java SQL Server Database and PreparedStatement/Parameters Query (JDBC)
Java Oracle Database and PreparedStatement/Parameters Query (JDBC)
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2013-05-26 11:38:52 /
2017-03-27 14:23:52 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|