`
huiminchen
  • 浏览: 73390 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

如何获得PreparedStatement最终执行的sql语句

阅读更多

 

这个是链接地址

http://www.javaworld.com/javaworld/jw-01-2002/jw-0125-overpower.html

 

自己试了试,成功。

靠谱,推荐大家使用。

 

 

Connection con = DriverManager.getConnection(url);
DebugLevel debug = DebugLevel.ON;
String sql = "SELECT name,rate FROM EmployeeTable WHERE rate > ?";
//Use a factory instead of Connection to get a PreparedStatement.
//PreparedStatement ps = con.prepareStatement(sql);
  PreparedStatement ps = StatementFactory.getStatement(con,sql,debug);
  ps.setInt(1,25);
//If ps is a DebuggableStatement, you see the statement,
//otherwise, an object identifier is displayed
  System.out.println(" debuggable statement= " + ps.toString());

 

 

附件是这段代码中用到的类。

 

 

 

 

 

 

 

分享到:
评论
7 楼 sp42 2017-09-04  
http://blog.csdn.net/zhangxin09/article/details/70187712
6 楼 jianxia801 2012-07-10  
我也看过http://www.javaworld.com/javaworld/jw-01-2002/jw-0125-overpower.html 文章;但是DebuggableStatement有一些方法未实现;感觉此文章不错,推荐给大家 http://www.javaworld.com.tw/roller/jiaming/entry/2007_4_13_PreparedStatement_Proxy_Design_Pattern
5 楼 huiminchen 2012-07-09  
jianxia801 写道
主要报DebuggableStatement 类里面未实现:方法。如下截图。

你好
这个是我很久之前做的了
虽然记不太清楚,但也没有这么多方法要实现吧……
我用的就是PreparedStatement
具体,你可以参考链接http://www.javaworld.com/javaworld/jw-01-2002/jw-0125-overpower.html
4 楼 jianxia801 2012-07-09  
34 methods to implement:
- java.sql.Statement.execute()
- java.sql.Statement.execute()
- java.sql.Statement.execute()
- java.sql.Statement.executeUpdate()
- java.sql.Statement.executeUpdate()
- java.sql.Statement.executeUpdate()
- java.sql.Statement.getGeneratedKeys()
- java.sql.Statement.getMoreResults()
- java.sql.Statement.getResultSetHoldability()
- java.sql.Statement.isClosed()
- java.sql.Statement.isPoolable()
- java.sql.Statement.setPoolable()
- java.sql.Wrapper.isWrapperFor()
- java.sql.Wrapper.unwrap()
-
java.sql.PreparedStatement.getParameterMetaData()
- java.sql.PreparedStatement.setAsciiStream()
- java.sql.PreparedStatement.setAsciiStream()
- java.sql.PreparedStatement.setBinaryStream()
- java.sql.PreparedStatement.setBinaryStream()
- java.sql.PreparedStatement.setBlob()
- java.sql.PreparedStatement.setBlob()
-
java.sql.PreparedStatement.setCharacterStream()
-
java.sql.PreparedStatement.setCharacterStream()
- java.sql.PreparedStatement.setClob()
- java.sql.PreparedStatement.setClob()
-
java.sql.PreparedStatement.setNCharacterStream()
-
java.sql.PreparedStatement.setNCharacterStream()
- java.sql.PreparedStatement.setNClob()
- java.sql.PreparedStatement.setNClob()
- java.sql.PreparedStatement.setNClob()
- java.sql.PreparedStatement.setNString()
- java.sql.PreparedStatement.setRowId()
- java.sql.PreparedStatement.setSQLXML()
- java.sql.PreparedStatement.setURL()
3 楼 jianxia801 2012-07-09  
主要报DebuggableStatement 类里面未实现:方法。如下截图。
2 楼 huiminchen 2012-07-09  
jianxia801 写道
哥们你在使用的过程中,此类 DebuggableStatement 是不是还有未实现的方法呢?不知道你是怎么解决的?

你好,兄台。不知道你指的是什么问题呢?
1 楼 jianxia801 2012-07-09  
哥们你在使用的过程中,此类 DebuggableStatement 是不是还有未实现的方法呢?不知道你是怎么解决的?

相关推荐

    自定义JDBC框架-JDBCFrarmework源码

    int update(sql , params):是操作insert 、update、delete相关的SQL语句的方法,参数sql,是传入一个满足PreparedStatement结构的SQL语句,params是可变参数,用于传入SQL语句占位符中的占位符。 T querySelector...

    JDBC执行SQL操作.docx

    1.SQL语句四大类: (1)数据查询/操纵/定义/控制语言(DQL/DML/DDL/DCL) (2)增删改查CRUD 2.查询数据 利用Statement实例通过执行静态SELECT语句完成,也可以利用PreparedStatement实例通过执行SELECT语句...

    sqlserver各版本jdbc驱动.zip

    sqlserver各版本驱动 DriverManager:负责...Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)

    PreparedStatement接口

    NULL 博文链接:https://chaoyi.iteye.com/blog/2088080

    JDBCtemplate封装类的jar包.zip

    ​ JDBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤。 ​ JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加...

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

    PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN ...

    解决SQL语句中含有中文字符无法查询问题

    我在写JDBC的是时候,遇见了因为在SQL语句中含有中文无法运行的情况,于是我把这句话放到mysql客户端中测试,结果通过,我估计不是字符编码问题,是PreparedStatement这个接口做了一些我不知道的处理导致这个问题的...

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

    PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程,下面这篇文章主要给大家介绍了关于利用JDBC的PrepareStatement打印真实SQL的方法,需要的朋友可以参考借鉴,下面来一起看看吧。

    使用PreparedStatement访问数据库

     PrepatredStatement实例包含已编译的SQL语句,由于PreparedStatement对象已预编译过哦哦,所以执行速度快于Statement对象。  包含于PreparedStatement对象中的SQL语句具有一个或多个IN参数。IN参数的值在SQL...

    PreparedStatement 向数据库插入时间方法

    在java中向访问数据库的sql语句一般放到类PreparedStatement类构造函数中,这里遇到的问题就是向sql语句中用setDate()插入时间时不能用java.util.date,而应用java.sql.date,这里就讲述了解决方法,一种是插入...

    jdbcJDBC主要接口、类

    JDBC主要接口、类: Connection:封装连接 DriverManager:管理驱动 Statement:封装SQL语句 PreparedStatement:封装SQL语句 ResultSet:封装结果集

    JDBC详解HTML-JDBC.pp

    用PreparedStatement来执行sql语句 String sql = "insert into user (id,name) values (?,?)"; PreparedStatement ps = cn.prepareStatement(sql); ps.setInt(1,xxx); ps.setString(2,xxx); ... ResultSet rs ...

    java开发中的一些常用小技巧

    一.用JDBC时的一些注意事项 ... b执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close ; c、提交 connn.commit; d、如果发生异常,那么回滚 conn.rollback;

    JdbcTemplate基本使用

    DBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤。 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用...

    mssql-jdbc-8.4.0.jre8.jar

    jdk1.8可使用的jdbc驱动... ...Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)

    JDBC的使用

    JDBC JDBC是怎么访问操作数据库的?...2.PreparedStatement——执行sql语句的接口(对应第二步) 3.ResultSet——处理查询结果(对应第三步) 在连接数据库之前需要环境搭建,也就是导入数据库的jar包 java连接数据库

    JDBC连接所有数据库步骤

    JDBC连接所有数据库步骤 1 将数据库的JDBC驱动加载到classpath中,在...5 执行SQL语句。 6 访问结果记录集ResultSet对象。 7 依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放所占用的资源。

    如何防止SQL注入.pdf

    通过使用预编译语句(例如,在Java中使用PreparedStatement),可以确保用户输入被当作参数处理,而不是SQL语句的一部分。 2. 检验和清洗用户输入 对用户输入进行验证,确保它符合预期的格式。例如,如果你期待一个...

    JDBC版本的增删改查

    删 改 查 ,与version1.0版本不同的是PreparedStatement 接口,它是预编译的Sql语句对象,与 Statement 不同的是 PreparedStatement 执行动态的Sql语句。...

Global site tag (gtag.js) - Google Analytics