Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Java Programming > Java and MySQL Database (JDBC/com.mysql.jdbc.Driver) > Java MySQL Database and PreparedStatement/Parameters Query (JDBC)



Clound SSD Virtual Server

Java MySQL Database and PreparedStatement/Parameters Query (JDBC)

Java MySQL Database and PreparedStatement/Parameters Query (JDBC) การนำ PreparedStatement ในการเขียนโปรแกรมด้วยภาษา Java กับ MySQL มาช่วยในการเขียน SQL Statement จะช่วยให้การจัดการกับ Query นั้นมีประสิทธิภาพสูงขึ้นมาก เพราะ PreparedStatement เป็นการสร้าง Object ของ SQL Statement ขึ้นมา 1 ชุด ที่สามารถนำไปใช้งานได้หลายครั้ง อีกทั้งยังสามารถใช้ตรวจสอบความถูกต้องต้องข้อมูลได้ด้วย เช่นในแต่ล่ะ Parameters สามารถกำหนดชนิด Data Type ของข้อมูลได้ เช่น เป็นแบบ INTEGER ก็ใช้ setInt เป็นแบบ STRING ก็ใช้ setString และในความสามารถของการทำงานจะมี Performance ดีกว่าการเขียน Query ธรรมดา ทั้งในด้านความเร็ว ด้าน Secure ที่ช่วยป้องกัน SQL Injection อัตโนมัติ

   PreparedStatement pstmt = con.prepareStatement("INSERT INTO EMPLOYEES
                                     (ID,SALARY) VALUES (?,?)");
   pstmt.setInt(1, 101)
   pstmt.setBigDecimal(2, 110592)

รูปแบบการเขียน 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("INSERT INTO EMPLOYEES
	     (ID,SALARY) VALUES (?,?)");

// Query 1
pstmt.setInt(1, 101)
pstmt.setBigDecimal(2, 110592)
pstmt.executeUpdate();

// Query 2
pstmt.setInt(1, 102)
pstmt.setBigDecimal(2, 150592)
pstmt.executeUpdate();
จากตัวอย่างจะเห้นว่า Object ของ PreparedStatement สามารถนำมาใช้งานได้หลาย ๆ ครั้ง

พื้นฐาน Java Connect to MySQL Database (JDBC)


Syntax for INSERT / UPDATE / DELETE
PreparedStatement pre = connect.prepareStatement(sql);
สร้างชนิด Object ของ PreparedStatement เพื่อไว้สำหรับเก็บสร้าง Query และ Parameters
		
String sql = "INSERT INTO customer " +
		"(CustomerID,Name,Email,CountryCode,Budget,Used) " + 
		"VALUES (?,?,?,?,?,?) ";
pre.setString(1, "C005");
pre.setString(2, "Chai Surachai");
pre.setString(3, "[email protected]");
pre.setString(4, "TH");
pre.setFloat(5, 1000000);
pre.setFloat(6, 0);
สร้างชุดคำสั่งของ SQL และการเพิ่ม Parameters ในแต่ล่ะตำแหน่ง และ ในแต่ล่ะชนิดของข้อมูล
pre.executeUpdate();
Execute เพื่อ Query ตัว 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 ที่ได้ไปใช้ได้ต่อ

รูปแบบการ Query ด้วยการ PreparedStatement ในภาษา Java กับ Databases ของ MySQL

Java  MySQL and PreparedStatement

Example 1 ตัวอย่างการเขียน Query แบบ PreparedStatement เพื่อ SELECT ข้อมูล MySQL

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();
		}
		
	}
	
}









Example 2 ตัวอย่างการเขียน Query แบบ PreparedStatement เพื่อ INSERT ข้อมูล MySQL

MyClass.java
package com.java.myapp;

import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.DriverManager;
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 = "INSERT INTO customer " +
					"(CustomerID,Name,Email,CountryCode,Budget,Used) " + 
					"VALUES (?,?,?,?,?,?) ";
			pre = connect.prepareStatement(sql);
			pre.setString(1, "C005");
			pre.setString(2, "Chai Surachai");
			pre.setString(3, "[email protected]");
			pre.setString(4, "TH");
			pre.setFloat(5, 1000000);
			pre.setFloat(6, 0);
			
			pre.executeUpdate();
			
            System.out.println("Record Inserted Successfully");
             
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		// Close
		try {
			if(connect != null){
				pre.close();
				connect.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
	}
	
}




Example 3 ตัวอย่างการเขียน Query แบบ PreparedStatement เพื่อ UPDATE ข้อมูล MySQL

MyClass.java
package com.java.myapp;

import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.DriverManager;
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 = "UPDATE customer " +
					"SET Budget = ? " +
					" WHERE CustomerID = ? ";
             
			pre = connect.prepareStatement(sql);
			pre.setFloat(1, 5000000);
			pre.setString(2, "C005");
			
			pre.executeUpdate();
			
            System.out.println("Record Update Successfully");
             
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		// Close
		try {
			if(connect != null){
	            pre.close();
	            connect.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
}




Example 4 ตัวอย่างการเขียน Query แบบ PreparedStatement เพื่อ DELETE ข้อมูล MySQL

MyClass.java
package com.java.myapp;

import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.DriverManager;
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 = "DELETE FROM customer " +
					" WHERE CustomerID = ? ";
             
			pre = connect.prepareStatement(sql);
			pre.setString(1, "C005");
			
			pre.executeUpdate();
			
            System.out.println("Record Delete Successfully");
             
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		// Close
		try {
			if(connect != null){
	            pre.close();
	            connect.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
}









อ่านเพิ่มเติม

Java Parameters Query for Select (prepareStatement)

Java Parameters Query for Insert (prepareStatement)

Java Parameters Query for Update (prepareStatement)

Java Parameters Query for Delete (prepareStatement)


   
Share


ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท


ลองใช้ค้นหาข้อมูล


   


Bookmark.   
       
  By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rating :  
  Create/Update Date : 2013-08-10 08:23:50 / 2017-03-27 14:16:24
  Download : Download  Java  MySQL Database and PreparedStatement/Parameters Query (JDBC)
 Sponsored Links / Related

 
Java Connect to MySQL Database (JDBC)
Rating :

 
Java Insert data to MySQL Database (JDBC)
Rating :

 
Java Retrieve fetch Show data from MySQL Database (JDBC)
Rating :

 
Java Read data from MySQL Database (JDBC)
Rating :

 
Java Search data from MySQL Database (JDBC)
Rating :

 
Java Update data in MySQL Database (JDBC)
Rating :

 
Java Delete data in MySQL Database (JDBC)
Rating :

 
Java MySQL Database and Transaction (Commit/Rollback) (JDBC)
Rating :


ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่