public interface PreparedStatementextends Statement

表示预编译的 SQL 语句的对象。

SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

注:用于设置 IN 参数值的设置方法(setShortsetString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,那么应该使用 setInt 方法。

如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。

 1 package com.ayang.jdbc;
 2 
 3 import java.sql.*;
 4 
 5 
 6 import com.mysql.*;
 7 
 8 public class TestPreparedStatement {
 9 
10     /**
11      * @param args
12      */
13     public static void main(String[] args) {
14         if(args.length!=3){
15             //判断输入参数个数是否错误
16             System.out.println("Parameter Error! Please Input Again!");
17             System.exit(-1); //系统退出
18         }
19         
20         int deptno = 0;  //声明变量。在头上呢?还是啥时候用啥时候声明呢?面试时,声明在头上。
21             
22         try{
23             deptno = Integer.parseInt(args[0]);
24         }catch(NumberFormatException e){
25             System.out.println("参数类型错误,请输入数字");
26             System.exit(-1);
27             
28         }
29         String dname = args[1];
30         String loc = args[2];
31         
32         Connection conn = null;
33         PreparedStatement pstmt = null;
34         
35         try{
36         //1、注册驱动
37         //new oracle.jdbc.driver.OracleDriver();
38         Class.forName("oracle.jdbc.driver.OracleDriver");
39         //2、建立连接
40         conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott", "root");
41         //3、创建语句
42         pstmt = conn.prepareStatement("insert into dept2 values(?,?,?)");
43         pstmt.setInt(1, deptno);
44         pstmt.setString(2, dname);
45         pstmt.setString(3, loc);
46         pstmt.executeUpdate();
47     
48         }catch (ClassNotFoundException e) {
49             System.out.println("未正常加载jdbc驱动");
50             e.printStackTrace();
51         }catch(SQLException e){
52             e.printStackTrace();  //log for java
53             
54         }finally{
55         //6、释放资源
56         try {
57             if(pstmt != null){
58                 pstmt.close();
59                 pstmt = null;
60             }if(conn != null){
61                 conn.close();
62                 conn = null;
63             }
64         } catch (SQLException e) {
65                 e.printStackTrace();
66         }
67         
68         
69         }
70     
71 
72 
73     }
74 
75 }

 

欢迎关注个人公众号一起交流学习: