PreparedStatement對象(將SQL語句傳給數據庫作預編譯,效率高)
PreparedStatement示例
package jdbcpkg;
import java.sql.*;
public class DBConn {
private Connection dataconn = null;
public DBConn() {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dataconn = DriverManager.getConnection("jdbc:odbc:MyJdbcOdbcSQL","sa","");
}
catch(Exception e){
System.out.println(e.toString());
}
}
public void getJobsInfo(){
try{
PreparedStatement pstmt = dataconn.prepareStatement("select * from jobs");
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString("job_desc"));
}
rs.close();
pstmt.close();
}
catch(Exception e){
System.out.println(e.toString());
}
}
//PreparedStatement對象上的查詢語句和更新語句都可以設置輸入參數。
//在生成PreparedStatement對象時,在SQL語句中用 '?' 標明參數。
//在執行SQL語句之前,使用setXXX()方法給參數賦值,然後使用executeQuery()
//executeUpdate()執行SQL語句。
//setXXX()方法用於給相應的輸入參數賦值。如:setInt()、setString()等。
//setXXX()方法自身有兩個參數:
//1. 所要賦值的SQL參數的位置,從1開始。
//2. 所要賦的值。如:100、“OK”等,隨XXX的不同而使用不同的類型。
//如:setInt(1,110);
public void setJobsData(){
try{
PreparedStatement pstmt = dataconn.prepareStatement("insert into jobs values(?,?,?)");
pstmt.setString(1,"OK Description");
pstmt.setInt(2,20);
pstmt.setInt(3,90);
int intCount = pstmt.executeUpdate();
System.out.println(“已向jobs表中插入” + intCount + “條記錄!”);
pstmt.setString(1,"Welcome to chongqing");
pstmt.setInt(2,30);
pstmt.setInt(3,100);
intCount = pstmt.executeUpdate();
System.out.println("已向jobs表中插入" + intCount + "條記錄!");
pstmt.close();
}
catch(Exception e){
System.out.println(e.toString());
}
}
public static void main(String args[]){
DBConn c = new DBConn();
c.getJobsInfo();
}
}