`
zrweng
  • 浏览: 25779 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何获取PreparedStatement参数设置的值?

阅读更多
如:
 String sql="select * from table where field1=? and field2=? "
 ...
 preparedStatement.setString(1,"a");
 preparedStatement.setString(2,"b");


怎样才能获取 preparedStatement的参数值a,b?
分享到:
评论
15 楼 diandidemeng 2007-07-26  
收下了,刚好用上
14 楼 spiritfrog 2007-05-29  
codeutil 写道

ibm有篇现成的文章,通过装饰模式来实现.

http://www-128.ibm.com/developerworks/cn/java/j-loggable/j-loggable.zip

http://www-128.ibm.com/developerworks/cn/java/j-loggable/index.html

JDBC 查询日志变得简单

使用增强型PreparedStatement向JDBC代码增加日志功能

级别: 初级

Jens Wyke, 顾问, IBM

2003 年 7 月 17 日


j-loggable的代码我看了一下,确实部分方法没有实现,但是增加日志的方法已经有了,剩下的自己稍作修改就可以用了。其实是用的装饰模式实现增强型PreparedStatement,PreparedStatement接口的实现多数还是通过一个wrappedStatement(已经实现了PreparedStatement)来完成,那些没有实现的方法只要调用wrappedStatement同名方法即可。
13 楼 lovexixi 2007-05-26  
唉,两个?需要两个参数填充饿
12 楼 sorphi 2007-05-23  
试试dimple?

http://www.iteye.com/topic/38299
11 楼 jenny825 2007-05-22  
Proxy就可以了!

参考下 ibatis 中的PrepareStatementProxy
10 楼 jvincent 2007-02-12  
j-loggable可以直接用的...修改一下即可
9 楼 jvincent 2007-02-12  
这个应该有很多人会用到,能否共享一下?
8 楼 zrweng 2006-09-25  
OK,可以了,修改了一下P6spy的源码
7 楼 zrweng 2006-09-25  
用了一下p6spy还不错,但是能否修改p6spy的输出格式?
未赋值的statement不想显示,否则有点乱
6 楼 kof99th 2006-09-25  
用p6spy,设置一下就行
5 楼 zrweng 2006-09-24  
各位是通过什么方式打印出PrepareStatement设置参数后的SQL?
4 楼 zrweng 2006-09-23  
谢谢楼上,不过那个j-loggable不能直接用,没有全部实现PrepareStatement接口
3 楼 codeutil 2006-09-23  

ibm有篇现成的文章,通过装饰模式来实现.

http://www-128.ibm.com/developerworks/cn/java/j-loggable/j-loggable.zip

http://www-128.ibm.com/developerworks/cn/java/j-loggable/index.html

JDBC 查询日志变得简单

使用增强型PreparedStatement向JDBC代码增加日志功能

级别: 初级

Jens Wyke, 顾问, IBM

2003 年 7 月 17 日

2 楼 zrweng 2006-09-23  
ParameterMetaData 没有获取参数值的方法。
我是想在PreparedStatement绑定参数后,把SQL(含设置后的参数值)log出来
1 楼 jobs002 2006-09-23  
好像是这个方法.
getParameterMetaData
ParameterMetaData getParameterMetaData()
                                       throws SQLException检索此 PreparedStatement 对象的参数的编号、类型和属性。

返回:
一个 ParameterMetaData 对象,它包含有关此 PreparedStatement 对象的参数的编号、类型和属性的信息
抛出:
SQLException - 如果发生数据库访问错误
不过还是不明白,"select * from table where field=? and field=?"
我想设置的参数应该是通过函数参数传递过来,
获取 preparedStatement的参数值a,b又有什么意义??

相关推荐

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

    ### 关于PreparedStatement插入Date类型值的方法 在Java编程语言中,使用`PreparedStatement`来执行SQL语句是一种常见的操作数据库的方式。这种方式不仅可以提高程序的性能,还可以有效地防止SQL注入攻击。当我们在...

    JDBC基础教程之PreparedStatement.doc

    `PreparedStatement`的主要特点在于它可以预先编译SQL语句,并允许用户在执行前动态地设置SQL语句中的参数值,这使得它在执行相同或相似SQL语句时比普通的`Statement`更加高效。 #### 二、`PreparedStatement`与`...

    PreparedStatement 详细用法

    - 使用`setXXX`方法设置SQL语句中的参数值。例如,如果SQL语句中有`?`占位符,可以通过`setInt`, `setString`等方法来设置具体的值。 3. **执行操作**: - 调用`executeUpdate()`方法执行DML(数据操作语言)语句...

    PreparedStatement详细用法

    `)来表示动态参数,`PreparedStatement`允许在执行前设置参数值。这种方式避免了每次执行SQL语句时都要重新解析和构建SQL字符串,减少了字符串拼接操作,进一步提高了性能。 **2. 安全性增强** - **防止SQL注入*...

    练习3:使用PreparedStatement插入宠物信息.zip

    3. **设置参数**:使用PreparedStatement的`setXXX()`方法(如`setString()`, `setInt()`等)设置每个占位符的值。这些方法的索引从1开始,对应于SQL语句中的问号位置。例如: ```java pstmt.setString(1, "Fluffy...

    JDBC和Oracle的参数设置和调用技术.pdf

    《JDBC和Oracle的参数设置和调用技术》这篇文献主要探讨了如何通过Java的JDBC接口调用Oracle数据库中的存储过程,以及不同类型的参数设置和处理方法。Oracle的存储过程是预编译的代码块,能提升系统性能,减少网络...

    JSP中的PreparedStatement对象操作数据库的使用教程

    例如,setString方法用于设置字符串类型的参数值,而setInt用于设置整型值。这一机制既保证了SQL语句的安全性,又使得参数的设置变得灵活方便。 创建PreparedStatement对象是执行数据库操作的第一步。通常,我们...

    sql语句中用问号代替参数

    在这里,`setString(1, "usernameValue")`方法设置了第一个问号参数的值。注意,参数的位置是基于它们在SQL语句中出现的顺序,从1开始计数。 ### 总结 使用问号参数化查询是编写安全、高效SQL语句的关键实践。它...

    连接jdbc时sql语句统一设置参数

    压缩包中的`DBParamManage`可能是一个工具类,用于管理或处理与数据库交互时的参数设置。这个类可能会包含一些静态方法,方便在项目中统一处理SQL语句的参数。例如,它可以提供一个通用的方法来设置参数,如下所示...

    【IT十八掌徐培成】Java基础第23天-02.sql注入-preparedstatement-批量插入.zip

    )的SQL模板,然后在执行时传入具体的参数值。这样,数据库会预先解析并优化这个模板,而不是每次执行时解析。更重要的是,PreparedStatement会自动处理参数的转义,避免了SQL注入的风险。 接下来,我们谈谈批量...

    使用PreparedStatement访问数据库

    2. **设置参数值**:使用`PreparedStatement`对象提供的`setXXX()`方法(如`setString()`, `setInt()`, `setDate()`等)来设定问号占位符的值。这些方法的第一个参数是占位符的位置索引(从1开始),第二个参数是...

    后端开发框架 MyBatis四大核心对象之ParameterHandler.pdf

    - `setParameters(PreparedStatement ps)`:用于将参数设置到PreparedStatement对象中。 2. **实现类**: - MyBatis提供了ParameterHandler的一个默认实现类——`DefaultParameterHandler`。 - 这个实现类负责...

    java 调用存储过程返回单个值

    本文将详细介绍如何通过Java程序来调用一个返回单个值的存储过程,并且该过程支持参数传递。此方法通常利用了`CallableStatement`接口,它是`PreparedStatement`的子接口,专门用于执行SQL存储过程或函数。 ### 一...

    详解Java的JDBC中Statement与PreparedStatement对象

    设置参数值的setXXX()方法与SQL中的预期数据类型相对应。 如同Statement,PreparedStatement也有执行SQL的方法,如`execute()`, `executeQuery()`, 和 `executeUpdate()`,但它们接受预编译的SQL语句和参数。在执行...

    抓取网页数据的代码

    在执行`PreparedStatement`对象之前,必须设置所有参数的值。这是通过调用一系列`setXXX`方法来实现的,其中`XXX`代表参数的实际类型。 ```java pstmt.setLong(1, 123456789); // 设置第一个参数 pstmt.setLong(2, ...

    limit传参的使用方法

    2. **创建PreparedStatement对象**:通过连接获取PreparedStatement对象,并设置SQL语句。 ```java PreparedStatement pstmt = connection.prepareStatement(sql); ``` 3. **设置参数**:为SQL语句中的占位符...

    java使用jdbc插入信息时获取id1

    描述中的"设置成可以获取主键"是关键步骤,这可以通过调用`PreparedStatement`的`setAutoCommit`方法和`prepareStatement`方法的特定构造函数实现。 下面将详细介绍这个过程: 1. **连接数据库**:首先,需要建立...

    jsp执行存储过程[归类].pdf

    // 给存储过程的参数设置值 c.setInt(1, 100); // 执行存储过程 c.execute(); conn.close(); } } ``` 需要注意的是,尽管Java成功执行了存储过程,但存储过程的输出(例如打印的阶乘结果)无法直接在Java程序...

    JDBC基础教程之CallableStatement.doc

    - **设置IN参数**:通过继承自`PreparedStatement`的`setXXX`方法设置输入参数。具体使用哪个`setXXX`方法取决于传递的参数类型。 ```java cstmt.setInt(1, 10); // 设置第一个参数为整型10 ``` - **注册和获取...

    java数据库连接CallableStatement

    - **数据类型转换**:提供了一系列的方法用于设置参数的值和获取 OUT 参数的返回值,支持多种数据类型的转换。 ### 二、CallableStatement 的创建与使用 #### 2.1 创建 CallableStatement CallableStatement 可以...

Global site tag (gtag.js) - Google Analytics