天天看點

Java資料庫——PreparedStatement接口

PreparedStatement接口是Statement的子接口,屬于預處理操作,與直接使用Statement不同的是,PreparedStatement在操作時,是先在資料表中準備好了一條SQL語句,但是此SQL語句的具體内容暫時不設定,而是之後再進行設定。

Java資料庫——PreparedStatement接口
Java資料庫——PreparedStatement接口
使用PreparedStatement完成資料的增加和查詢操作

//=================================================
// File Name       :	PreparedStatement_demo
//------------------------------------------------------------------------------
// Author          :	Common

import java.sql.*;
import java.text.SimpleDateFormat;

//主類
//Function        : 	PreparedStatement_demo
public class PreparedStatement_demo {

	//定義MySQL的資料庫驅動程式
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	//定義MySQL資料庫的連接配接位址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mysql_demo";
	//MySQL資料庫的連接配接使用者名
	public static final String DBUSER = "root";
	//MySQL資料庫的連接配接密碼
	public static final String DBPASS = "123456";
	
	public static void main(String[] args) throws Exception{
		// TODO 自動生成的方法存根
		Connection conn = null;						//資料庫連接配接
		PreparedStatement pstmt = null;	//資料庫操作
		
		String name = "王五";
		String password = "pwd2";
		int age = 25;
		String sex = "女";
		String birthday = "2002-11-21";
		java.util.Date temp = null;				//聲明一個Date對象
		//通過SimpleDateFormat類将一個字元串變成java.util.Date類型
		temp = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
		//通過java.util.Date取出具體的日期數,并将其變成java.sql.Date類型
		java.sql.Date bir = new java.sql.Date(temp.getTime());
		String sql = "INSERT INTO user(name,password,age,sex,birthday)"+"VALUES(?,?,?,?,?)";//編寫預處理SQL
		Class.forName(DBDRIVER);			//加載驅動程式
		//連接配接MySQL資料庫時,要寫上連接配接的使用者名和密碼
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
		pstmt = conn.prepareStatement(sql);		//執行個體化PreparedStatement
		pstmt.setString(1, name);					//設定第一個“?”的内容
		pstmt.setString(2, password);			//設定第二個“?”的内容
		pstmt.setInt(3, age);								//設定第三個“?”的内容
		pstmt.setString(4, sex);							//設定第四個“?”的内容
		pstmt.setDate(5, bir);							//設定第五個“?”的内容
		pstmt.executeUpdate();						//執行資料庫更新操作,不需要SQL
		
		pstmt.close(); 										//操作關閉
		conn.close(); 										//資料庫關閉
		
	}

}
      
//=================================================
// File Name       :	PreparedStatement_demo
//------------------------------------------------------------------------------
// Author          :	Common

import java.sql.*;
import java.text.SimpleDateFormat;

//主類
//Function        : 	PreparedStatement_demo
public class PreparedStatement_demo {

	//定義MySQL的資料庫驅動程式
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	//定義MySQL資料庫的連接配接位址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mysql_demo";
	//MySQL資料庫的連接配接使用者名
	public static final String DBUSER = "root";
	//MySQL資料庫的連接配接密碼
	public static final String DBPASS = "123456";
	
	public static void main(String[] args) throws Exception{
		// TODO 自動生成的方法存根
		
		Connection conn = null;						//資料庫連接配接
		PreparedStatement pstmt = null;	//資料庫操作
		String keyWord = "王";							//設定查詢關鍵字
		String keyWord1 = "男";							//設定查詢關鍵字
		ResultSet rs = null;								//儲存查詢結果
		String sql = "SELECT id,name,password,age,sex,birthday"+
				" FROM user WHERE name LIKE ? OR password LIKE ? OR sex LIKE ?";
		Class.forName(DBDRIVER);			//加載驅動程式
		//連接配接MySQL資料庫時,要寫上連接配接的使用者名和密碼
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
		pstmt = conn.prepareStatement(sql);		//執行個體化PreparedStatement
		pstmt.setString(1, "%"+keyWord+"%");					//設定第一個“?”的内容
		pstmt.setString(2, "%"+keyWord+"%");					//設定第一個“?”的内容
		pstmt.setString(3, "%"+keyWord1+"%");					//設定第一個“?”的内容
		rs = pstmt.executeQuery();						//執行個體化ResultSet對象
		while(rs.next()){
			int id = rs.getInt(1);
			String name = rs.getString(2);
			String pass = rs.getString(3);
			int age = rs.getInt(4);
			String sex = rs.getString(5);
			java.util.Date d = rs.getDate(6);
			System.out.println("編号:"+id);
			System.out.println("名字:"+name);
			System.out.println("密碼:"+pass);
			System.out.println("年齡:"+age);
			System.out.println("性别:"+sex);
			System.out.println("生日:"+d);
		}
		rs.close();												//關閉結果集
		pstmt.close(); 										//操作關閉
		conn.close(); 										//資料庫關閉
		
	}

}