zoukankan      html  css  js  c++  java
  • java_web学习(九) PreparedStatement动态参数的引入

    一.PreparedStatement 概述

    数据库的操作过程中,PreparedStatement 对象是一个很不起眼但是记为重要的接口对象,它继承 于Statement,并与之在两方面有所不同:

    1)PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。

    2)由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

    二.PreparedStatement应用实例

       2.1第一步导入jar包

         

          

         2.2 创建表t1

      

     1 <body>
     2 <%
     3 //加载数据库驱动给jdbc
     4 Class.forName("org.gjt.mm.mysql.Driver");
     5 out.print("成功加载驱动");
     6 String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";
     7 //获取数据库连接,让java可以操作mysql
     8 Connection conn = DriverManager.getConnection(url);
     9 //定义一条SQL命令创建一个名为t1的表
    10 String sql = "create table t1(sno varchar(20),name varchar(20),birth String)";
    11 //从connection对象中,获取一个sql执行者
    12 PreparedStatement ps = conn.prepareStatement(sql);
    13 //执行
    14 ps.execute();
    15 out.print( conn );
    16 //首先关闭连接
    18 ps.close();
    19 conn.close();
    20 %>
    21 
    22 </body>

         2.3 对t1表中的数据操作只需要将sql命令替换

    <%
    String sno="1";
    String name="小明";
    String birth="2008-08-24";
    //加载数据库驱动给jdbc
    Class.forName("org.gjt.mm.mysql.Driver");
    out.print("成功加载驱动");
    String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";
    //获取数据库连接,让java可以操作mysql
    Connection conn = DriverManager.getConnection(url);
    //定义一条SQL命令
    String sql = "insert into student(sno,name,birth) values(?,?,?)";
    //从connection对象中,获取一个sql执行者
    PreparedStatement ps = conn.prepareStatement(sql);
    //防止把代码写死
    ps.setString(
    1,sno); ps.setString(2,name); ps.setString(3,birth); //执行 ps.execute(); out.print( conn ); //首先关闭连接 ps.close(); conn.close(); %> </body>

    //增加信息
    String sql="insert into t1(sno,name,birth) values(?,?,?)";

    //更改信息
    String sql1="UPDATE t1 SET birth=? where sno=?";

    //删除信息
    String sql2="delete from t1 where sno=?";

  • 相关阅读:
    邂逅明下(巴什博弈+hdu2897)
    抽象接口的过程小结
    线程经常使用操作
    对继承的再次理解
    阿里Java开发手冊之编程规约
    [持续更新]Windows Programming常见Hungarian Notation/Abbreviation大全
    [转]__cdecl与__stdcall
    private继承的作用
    [转]C++中的三种继承public,protected,private
    如何只利用NMAKE+CL+LINK写WIN32程序
  • 原文地址:https://www.cnblogs.com/Crezy/p/6972378.html
Copyright © 2011-2022 走看看