1. 程式人生 > >PreparedStatement

PreparedStatement

rom next() exec bdr for manager resultset 構造方法 amp

/**
 * PreparedStatement:
 *  更新操作:public int executeUpdate()
 *  查詢操作:public Result executeQuery()
 *  填充數據:public void setXxx(int index,值)//註意index是從1開始
 *  
 *  註意:在使用PreparedStatement操作Date數據時,使用的是java.sql.Date類,
 *  但在實際的程序之中描述的是java.util.Date類型,在java.util.Date中有三個子類
 *  Date(日期)、Time(時間)、Timestamp(日期時間),
 *    java.sql.Date類:public Date(long date)
 *    java.sql.Time類:public Time(long time)
 *    java.sql.Timestamp類:public Timestamp(long time)
 *  
 *  在java.util.Date中有一個方法可以將Date變為long
 *  getTime():返回long類型數據
* * 總結:先將java.util.Date的數據轉換為long類型數據,再作為參數傳入到java.sql.Date的構造方法裏,即可實現轉換。 * java.util.Date-->java.sql.Date * new java.sql.Date (new Date().getTime())) *
*/ public class Test011 { public static void main(String[] args) throws Exception { //註冊驅動 Class.forName(Const.DBDRIVER);
//獲取連接對象 Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","tiger"); String sql=" insert into member(mid,name,age,birthday,note) values(myseq.nextval,?,?,?,?)"; //創建操作數據庫預編譯對象 PreparedStatement ps = conn.prepareStatement(sql);
//填充數據,註意編號從1開始 ps.setString(1, "tom"); ps.setInt(2, 100); ps.setDate(3, new java.sql.Date(new Date().getTime())); ps.setString(4, "哈哈"); int i = ps.executeUpdate(); System.out.println(i); } }

       /**
         * 根據name字段進行模糊查詢(部分代碼)
         */
        String column ="name";
        String keyWord="李";
        //"?"填充的占位符只有數據才可以使用,而對於列是無法使用的
        String sql=" select mid,name,age,birthday,note from member where "+column+" like ? ";
        PreparedStatement ps=conn.prepareStatement(sql);
        ps.setString(1, "%"+keyWord+"%");
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
            System.out.println(rs.getInt(1)+"、"+rs.getString(2)+"、"+rs.getInt(3)+"" +
                    "、"+rs.getDate(4)+"、"+rs.getString(5));
        }

PreparedStatement