java之jdbc_採用PreparedStatement添加數據

動力節點筆記java

 

  
  
  
  
  1. import java.sql.*;  
  2. import java.text.*;  
  3. import java.util.*;  
  4. //採用PreparedStatement添加數據  
  5. public class InsertTest02 {  
  6.     public static void main(String[] args) {  
  7.         if (args.length != 8) {  
  8.             throw new IllegalArgumentException("參數非法,正確使用爲InsertTest01 ...");     
  9.         }  
  10.           
  11.         Connection conn = null;  
  12.         PreparedStatement pstmt = null;  
  13.         try {  
  14.             //第一步,加載數據庫驅動,不一樣的數據庫驅動程序不同  
  15.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  16.             //第二部,獲得數據庫鏈接  
  17.             String dburl = "jdbc:oracle:thin:@localhost:1521:orcl";  
  18.             //String dburl = "jdbc:oracle:thin:@192.168.21.1:1521:orcl";  
  19.             //String dburl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";  
  20.             String userName = "system";  
  21.             String password = "wanwan";  
  22.             conn = DriverManager.getConnection(dburl, userName, password);  
  23.             //System.out.println(conn);  
  24.                       
  25.             int empno = Integer.parseInt(args[0]);  
  26.             String ename = args[1];  
  27.             String job = args[2];  
  28.             int mgr = Integer.parseInt(args[3]);  
  29.             //格式:yyyy-mm-dd  
  30.             String hiredate = args[4];  
  31.             float sal = Float.parseFloat(args[5]);  
  32.             float comm = Float.parseFloat(args[6]);  
  33.             int deptno = Integer.parseInt(args[7]);  
  34.               
  35.             //第三步,建立Statement,執行SQL語句  
  36.             //採用佔位符的方式  
  37.             //最好將比較複雜的sql調通,再將sql語句和程序相結合,進行連調  
  38.             String sql = "insert into enp(empno, ename, job, mgr, hiredate, sal, comm, deptno) ";  
  39.             sql += "values(?, ?, ?, ?, ?, ?, ?, ?)";              
  40.             System.out.println("sql = " + sql);  
  41.               
  42.             pstmt = conn.prepareStatement(sql);  
  43.             pstmt.setInt(1, empno);  
  44.             pstmt.setString(2, ename);  
  45.             pstmt.setString(3, job);  
  46.             pstmt.setInt(4, mgr);  
  47.             //日期轉換  
  48.             java.util.Date d = new SimpleDateFormat("yyyy-mm-dd").parse(hiredate);  
  49.             pstmt.setDate(5new java.sql.Date(d.getTime()));  
  50.             pstmt.setFloat(6, sal);  
  51.             pstmt.setFloat(7, comm);  
  52.             pstmt.setInt(8, deptno);  
  53.               
  54.             pstmt.executeUpdate();  
  55.               
  56.             System.out.println("添加員工成功");  
  57.       
  58.         } catch (ClassNotFoundException e) {  
  59.             e.printStackTrace();  
  60.         } catch (SQLException e) {  
  61.             e.printStackTrace();  
  62.         } catch (ParseException e) {  
  63.             e.printStackTrace();  
  64.         } finally {  
  65.             //注意關閉原則:從裏到外  
  66.               
  67.               
  68.             try {  
  69.                 if (pstmt != null) {  
  70.                     pstmt.close();    
  71.                 }  
  72.                 if (conn != null) {  
  73.                     conn.close();  
  74.                 }  
  75.             } catch(SQLException e) {  
  76.                           
  77.             }  
  78.               
  79.         }  
  80.     }     
相關文章
相關標籤/搜索