createStatement与prepareStatement的区别


     * createStatement 方法用于: 简单的 SQL 语句(不带参数) prepareStatement 方法用于: 带一个或多个 IN
     * 参数的 SQL 语句
     *
     * pstm一旦绑定了SQL,此pstm就不能执行其他的Sql,即只能执行一条SQL命令。 stm可以执行多条SQL命令。
     *
     * 对于执行同构的sql(只有值不同,其他结构都相同),用pstm的执行效率比较的高,对于异构的SQL语句,Statement的执行效率要高。
     *
     * :当需要外部变量的时候,pstm的执行效率更高.

public static void demo2() throws ClassNotFoundException, SQLException {
        // 加载数据库驱动
        // DriverManager.registerDriver(new Driver());
        Class.forName("com.mysql.jdbc.Driver");
        // 建立连接(Connection)
        conn = DriverManager.getConnection(url, user, pwd);
        PreparedStatement pre = null;
        Statement stat = null;
        String sql = "select * from user ;";
        String sql2 = " select * from user ;";
        try {
            pre = conn.prepareStatement(sql);// 创建向数据库发送预编译sql的
            stat = conn.createStatement();// 创建向数据库发送sql的statement对象。
            stat.executeQuery(sql2);
            stat.execute(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


//插入数据

public static void updateDemo() throws Exception(){

             // 获取传输器
            stat = conn.createStatement();

            String sql = "insert into user values(null,'zhaoliu','123456','zhaoliu@sdf.com','2000-01-01')";
            int count = stat.executeUpdate(sql);

}


//修改数据

    public void update() {
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils.getConn();
            stat = conn.createStatement();
            String sql = "update user set password='999999' where name='zhaoliu'";
            int result = stat.executeUpdate(sql);
            System.out.println("result" + result);
        } catch (Exception ex) {
            JDBCUtils.close(conn, stat, rs);
        }
    }








展开阅读全文

没有更多推荐了,返回首页