zoukankan      html  css  js  c++  java
  • PreparedStatement接口

    从实际来讲,Statement现在已经不使用了,他已经称为了历史。

    Statement执行关键性问题在于他需要一个完整 的字符串定义要使用的SQL语句,而PreparedStatement可以动态的设置所需要的数据。

    PrepareStatement属于Statement的子接口但是想要取得这个子接口的实例化对象,依然要使用COnnection提供的方法。

    prepareStatement

    PreparedStatement prepareStatement(String sql)
                                       throws SQLException

    里面需要传入一个SQL语句,这个SQL是一个具有特殊标记的完整的SQL。 这个接口里面有很多的Set方法。

      -更新操作  int executeUpdate()

      -查询操作   ResultSet executeQuery()

    范例:

    package cn;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Date;
    
    
    public class Test {
        
        private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
        private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:mldn";
        private static final String USER = "scott" ;
        private static final String PASSWORLD = "tiger" ;
        public static void main(String[] args)  throws Exception{
            String name = "MR'SMITH";
            Date birthday = new Date() ;
            int age = 18 ;
            String note = "是个歪果仁" ;
            
            
            //第一步 加载数据库驱动程序,此时不需要实例化,会有容器自己负责管理
            Class.forName(DBDRIVER) ;
            //第二步 连接数据库 每一个Connection都代表一个数据库连接
            Connection conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ;
            
            String sql = "INSERT INTO member (mid,name,birthday,age,note) VALUES(myseq.nextval,?,?,?,?)";
            
            //第三步,进行数据库的数据操作
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1,name);
            /*当使用了setDate的时候,使用的是java.sql.date而不事java.util.date,而java.util.date下有三个子类,
            Date Time     Timestmp 三个子类
            转型方法依靠long完成
            java.util.date下有一个方法将日期变为long
            */
            stmt.setDate(2, new java.sql.Date(birthday.getTime()));
            stmt.setInt(3, age);
            stmt.setString(4, note);
            
            
            int len = stmt.executeUpdate();
            
            System.out.println(conn) ;
    
            //关闭连接
            stmt.close();
            conn.close();
        }    
    
    }

    查询操作:

    查询全部数据:

    //第一步 加载数据库驱动程序,此时不需要实例化,会有容器自己负责管理
            Class.forName(DBDRIVER) ;
            //第二步 连接数据库 每一个Connection都代表一个数据库连接
            Connection conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ;
            
            String sql = "SELECT mid,name,birthday,age,note FROM member WHRER ORDER BY NAME";
            //第三步,进行数据库的数据操作
            PreparedStatement stmt = conn.prepareStatement(sql);
            
            ResultSet rs = stmt.executeQuery();
            while(rs.next()){
                int mid = rs.getInt(1);
                String name = rs.getString(2);
                Date birthday = rs.getDate(3);
                int age = rs.getInt(4);
                String note = rs.getString(5);
                System.out.println(mid + " " + name + " " + birthday + "" + age + "" + note);
            }
            
            
            int len = stmt.executeUpdate();
            
            System.out.println(conn) ;
    
            //关闭连接
            stmt.close();
            conn.close();

    模糊查询:

  • 相关阅读:
    silo 主机 报找不到 grain 实现错误的一个注意
    转:CRT注册
    Maven生命周期
    Maven学习笔记
    Java内存回收机制
    Selenium2.0和1.0的区别
    关于使用Selenium RC无法打开指定页面问题
    四儿子购买手册
    Objective-C 宏定义的收集
    设计模式:适配器模式
  • 原文地址:https://www.cnblogs.com/da-peng/p/5186154.html
Copyright © 2011-2022 走看看