`
liangcmwn
  • 浏览: 16233 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

PrepareStatement类(转载)

阅读更多
import java.sql.*;
public class UsePreparedStatement {
        public static void main(String[] args) {
                String url = "jdbc:mysql://localhost/sql_test";
                String userName = "root";
                String password = "root";
                Connection conn = null;
                try {
                        Class.forName("com.mysql.jdbc.Driver");
                } catch(ClassNotFoundException e) {
                        System.out.println("加载驱动器类时出现异常");
                }
                
                try {
                        conn = DriverManager.getConnection(url, userName, password);
                        
                        //创建PreparedStatement语句
                        PreparedStatement pstmtDelete = conn.prepareStatement(
                                        "DELETE FROM student WHERE stu_id>=?");                
                        PreparedStatement pstmtInsert = conn.prepareStatement(
                                        "INSERT INTO student VALUES(?, ?, ?, ?)");        
                        PreparedStatement pstmtSelect = conn.prepareStatement(
                                        "SELECT * FROM student WHERE stu_id>=? " +
                                        "ORDER BY stu_id");
                        
                        int id = 15;
                        
                        //使用setXXX方法设置IN参数
                        pstmtSelect.setString(1, Integer.toString(id));
                        
                        //多次执行同一语句
                        for (int i=0; i<3; i++, id++) {
                                
                //使用setXXX方法设置IN参数
                                pstmtDelete.setString(1, Integer.toString(id));
                                
                                pstmtInsert.setString(1, Integer.toString(id));
                                pstmtInsert.setString(2, "name"+id);
                                pstmtInsert.setString(3, "city"+id);
                                pstmtInsert.setDate(4, new Date(78, 2, id));
                                
                //执行PreparedStatement语句
                                pstmtDelete.executeUpdate();
                                pstmtInsert.executeUpdate();
                                ResultSet rs = pstmtSelect.executeQuery();
                                
                                System.out.println("");
                                System.out.println("第 " + (i+1) + " 次循环后的结果集为:");
                
                                //显示返回的结果集
                                while (rs.next()) {
                                        String stuID      = rs.getString(1);
                                        String name    = rs.getString(2);
                                        String address = rs.getString(3);
                                        String birthday= rs.getString(4);
                                        System.out.println(stuID + "   " +
                                                        name + "   " + address + "   " + birthday);
                                }
                        }
                        
                        pstmtDelete.close();
                        pstmtInsert.close();
                        pstmtSelect.close();
                        
                } catch(SQLException e) {
                        System.out.println("出现SQLException异常");
                } finally {
                        //关闭语句和数据库连接
                        try {
                                if (conn != null) conn.close();
                        } catch(SQLException e) {
                                System.out.println("关闭数据库连接时出现异常");
                        }                
                }
                
        }
}
分享到:
评论

相关推荐

    prepareStatement和Statement的区别

    prepareStatement和Statement的区别 prepareStatement和Statement是 Java 中两个常用的数据库操作接口,它们都可以用来执行 SQL 语句,但是它们之间有着明显的区别。 首先,从创建时的区别开始,Statement 需要...

    JDBC PrepareStatement 使用(附各种场景 demo)

    PrepareStatement是JDBC提供的一种预编译的SQL语句,它可以提高数据库操作的效率和安全性。本资源主要涵盖了使用JDBC PrepareStatement进行MySQL数据库操作的各种场景,包括基本的查询、更新以及批量处理。 首先,...

    JDBC(用PrepareStatement实现)

    **JDBC(用PrepareStatement实现)** Java Database Connectivity (JDBC) 是Java平台中的一个标准API,用于在Java应用程序和各种数据库之间建立桥梁。它允许Java开发者执行SQL语句,进行数据查询、更新和删除等操作。...

    java数据库连接PrepareStatement

    要创建一个 `PreparedStatement` 对象,首先需要通过 `Connection` 对象调用 `prepareStatement` 方法,并传入一个 SQL 语句字符串。例如: ```java // 假设 con 是已建立的 Connection 对象 String sql = "UPDATE ...

    利用JDBC的PrepareStatement打印真实SQL的方法详解

    PreparedStatement ps = connection.prepareStatement(sql); ps.setInt(1, 10); ``` 在这个例子中,我们想知道实际执行的SQL语句是"SELECT * FROM table WHERE id = 10"。为了实现这个需求,我们可以自定义一个辅助...

    06丨数据库原理:为什么PrepareStatement性能更好更安全?.pdf

    【数据库原理:为什么PrepareStatement性能更好更安全】 在数据库编程中,我们经常遇到两种执行SQL语句的方法:Statement和PreparedStatement。尽管Statement看起来更简洁,但在实际应用中,尤其是在使用ORM框架如...

    解决oracle 驱动bug: preparestatement ArrayIndexOutOfBounds

    In Oracle Metalink (Oracle's support site - Note ID 736273.1) I found that this is a bug in JDBC adapter (version 10.2.0.0.0 to 11.1.0.7.0) that when you call preparedStatement with more than 7 ...

    MySQL prepare语句的SQL语法

    MySQL prepare语法: PREPARE statement_name FROM preparable_SQL_statement; /*定义*/ EXECUTE statement_name [USING @var_name [, @var_name] …]; /*执行预处理语句*/ {DEALLOCATE | DROP} PREPARE statement_...

    关于PreparedStatement插入Date类型值的方法.txt

    PreparedStatement pstmt = connection.prepareStatement("INSERT INTO my_table (date_column) VALUES (?)"); pstmt.setDate(1, new java.sql.Date(System.currentTimeMillis())); // 使用当前时间创建Date对象 ...

    MySQL中预处理语句prepare、execute与deallocate的使用教程

    MySQL官方将prepare、execute、deallocate统称为PREPARE STATEMENT,我习惯称其为【预处理语句】,其用法十分简单,下面话不多说,来一起看看详细的介绍吧。 示例代码 PREPARE stmt_name FROM preparable_stmt ...

    JAVA连接FileMaker完整工程

    JAVA连接FileMaker完整工程 包函FileMaker数据库Java连接驱动 修改工程中的FileMaker安装地址就 可以用JAVA操作FileMaker ... prepareStatement = con.prepareStatement(insertSQL); b = prepareStatement.execute();

    用传参数的方法实现Java对SQLite的添加和查询

    PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, username); pstmt.executeUpdate(); } catch (Exception e) { System.out.println(e.getMessage()); } } ``` 查询数据时,...

    JDBC中Statement和Preparement的使用讲解

    JDBC 中 Statement 和 PrepareStatement 的使用讲解 Statement 对象是用来执行 SQL 语句的接口,提供了基本的 SQL 语句执行功能。PrepareStatement 是 Statement 的子接口,提供了预编译的功能,可以提高性能和安全...

    最新 彻底解决asp注入漏洞

    - `PrepareSQL`类封装了PrepareStatement的主要逻辑。 - `setconn`方法用于设置数据库连接。 - `prepare`方法用于预编译SQL语句。 - `setInt`、`setDate`、`setBoolean`和`setString`方法分别用于设置不同类型的...

    【Java】无框架增删改查+登陆+分页+事务处理综合演示web应用

    经过了三天的时间,艾玛终于写完了。。。这次是做一个不使用框架,用最原始的方法实现了java-jsp的web应用,栗子呢包含增删改查、登陆登出、分页、事务处理和权限管理这几个web应用的基本要素,界面就做得很烂了,...

    多渠道打包android

    android 多渠道打包,把渠道文件放入channel.txt 就行

    prepare cashflow_cashflow_statement_

    现金流量表(Cashflow Statement)是企业财务报告的重要组成部分,用于揭示企业在一定会计期间内现金的流入和流出情况,展示了公司的经营、投资和筹资活动对现金的影响。它可以帮助投资者、管理层和其他利益相关者...

    cash flow statement prepare

    现金流量表(Statement of Cash Flows)是财务报告中的一个重要组成部分,它反映了企业在一定时期内的现金流入和流出情况。在会计实务中,现金流量表通常采用两种方法来编制:直接法(Direct Method)与间接法...

    增删改查方法和helper类

    PreparedStatement pstmt = connection.prepareStatement(sql); pstmt.setString(1, "user1"); pstmt.setString(2, "pass1"); pstmt.executeUpdate(); ``` 2. **读取(Read)**:通过`Statement`或`...

Global site tag (gtag.js) - Google Analytics