在JDBC的prepareStatement 的时候,我们经常使用ps.setString()这样的方式来设置参数
那么在程序里面我们如何得到这个参数呢,经过一番思考,在网上找了不少资料,主要参考如下两种方式
第一种:参考IBM开发网 LoggableStatement
http://www.ibm.com/developerworks/cn/java/j-loggable/index.html
第二种:参考p6spy 项目
http://sourceforge.net/projects/p6spy/?source=directory
第三种:jdbcdslog
http://code.google.com/p/jdbcdslog/
相关推荐
建立连接后,我们需要通过`DriverManager.getConnection()`方法获取Connection对象,它是所有JDBC操作的基础。例如: ```java String url = "jdbc:mysql://localhost:3306/mydb"; String user = "username"; String...
PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "value"); // 设置IN参数,1表示参数位置,"value"是传入的值 ResultSet rs = pstmt.executeQuery(); // 执行查询 ``` 在实际开发中,...
描述中的"设置成可以获取主键"是关键步骤,这可以通过调用`PreparedStatement`的`setAutoCommit`方法和`prepareStatement`方法的特定构造函数实现。 下面将详细介绍这个过程: 1. **连接数据库**:首先,需要建立...
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)"); pstmt.setString(1, "value1"); pstmt.setInt(2, 10); pstmt.addBatch(); pstmt.setString(1, "value2"); pstmt....
PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, value1); pstmt.setString(2, value2); pstmt.executeUpdate(); // 批量插入 List[]> data = ...; // 包含多条数据 for (String[] row ...
5. **创建带有类型、并发性和保持性的PreparedStatement**:`PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` - **用途**:创建一个带...
- **创建PreparedStatement对象**:通过`con.prepareStatement(sql)`创建预编译SQL语句的`PreparedStatement`对象。 - **执行查询**:通过`stmt.executeQuery()`执行SQL语句,并获取`ResultSet`结果集。 - **获取元...
使用 `Connection.prepareStatement(String sql)` 创建预编译语句对象,然后使用 `setXXX()` 方法设置参数。 - 预编译语句特别适合于多次执行的SQL,因为它们只需要编译一次。 6. **存储过程的使用**: - 存储...
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM myTable"); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { // 处理结果集 } ``` 5. **事务管理**: SQL Server 2000支持事务...
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO users(name, email) VALUES (?, ?)"); pstmt.setString(1, "John Doe"); pstmt.setString(2, "john@example.com"); pstmt.executeUpdate(); ...
- **PreparedStatement对象**:预编译的SQL语句,可防止SQL注入,如`PreparedStatement pstmt = conn.prepareStatement("INSERT INTO users VALUES (?, ?)");`。 - **CallableStatement对象**:用于调用存储过程。 ...
PreparedStatement pstmt = conn.prepareStatement(sql); // 设置参数 pstmt.setString(1, "John"); pstmt.setString(2, "john@example.com"); // 执行SQL int rowsAffected = pstmt.executeUpdate(); // 关闭...
PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, value1); pstmt.setString(2, value2); int rowsAffected = pstmt.executeUpdate(); ``` 2. 删(Delete):同样使用`PreparedStatement`...
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM myTable WHERE id = ?"); pstmt.setInt(1, 123); ResultSet rs = pstmt.executeQuery(); // ... 处理结果集 ``` 为了提高性能,记得在操作完成后...
3. B,`prepareStatement(String sql)`用于将参数化的SQL语句发送到数据库。 4. B,ResultSet对象初始化时,游标在表格的第一行之前。 5. C,`PreparedStatement`能够实现预编译。 【简答题】 1. JDBC编程的6个...
4. **PreparedStatement对象**: 预编译SQL语句,提高性能,支持参数占位符,如`PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM table WHERE id = ?");` 5. **CallableStatement对象**: 用于调用...
- 创建Statement对象:`connection.createStatement()`或`connection.prepareStatement(sql)`。 - 执行SQL:`statement.executeQuery(sql)`或`statement.executeUpdate(sql)`。 - 处理结果集:通过ResultSet获取...
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id=?"); pstmt.setInt(1, 1); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println(rs.getString(...
- `prepareStatement(String sql)`:创建一个新的`PreparedStatement`对象。 - `close()`:关闭此`Connection`对象及其所有关联的`Statement`对象。 #### 第四章:Statement接口 ##### 4.1 JDBC访问数据库的步骤 ...
PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, 20); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println(rs.getString("PARTKEY") + ": " + rs.getString...