-
PreparedStatement不能用5
我用jdbc连接oracle10数据库,连接都是对的,也能连接数据库。
但当我用PreparedStatement的传参方式时却不能用。
如我用
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa=?");
pstmt.setString(1,"aaaa");
rs = pstmt.executeQuery();
这样查不出结果
但当我这样写时
PreparedStatement pstmt = conn.prepareStatement("select count(*) from tab_AA where aa='"+aa+"'");
rs = pstmt.executeQuery();
却能查出数据。
请问各位这是什么原因啊,我错在哪里?
2008年9月10日 17:38
目前还没有答案
相关推荐
还可以使用一些专门的日志拦截库,比如`log4jdbc-log4j2`,它能拦截并记录所有JDBC执行的SQL。 在实际应用中,如果需要获取动态构建的SQL,可能需要自定义一个`PreparedStatement`的代理类,覆盖`execute`或`...
在Java编程语言中,使用`PreparedStatement`来执行SQL语句是一种常见的操作数据库的方式。这种方式不仅可以提高程序的性能,还可以有效地防止SQL注入攻击。当我们在应用程序中需要向数据库中插入日期(`Date`类型)...
本文将详细介绍`Connection`和`PreparedStatement`的使用时机与关闭策略,帮助开发者更好地理解和掌握这两者的使用方法。 #### Connection(连接) - **定义**:`Connection`接口是Java中所有数据库操作的基础。它...
通过以上介绍可以看出,`PreparedStatement`不仅可以提高执行SQL语句的效率,还能有效防止SQL注入攻击,因为它使用参数化查询而非字符串拼接的方式构建SQL语句。因此,在开发涉及数据库操作的应用程序时,推荐优先...
1. **减少数据库压力**:当多个线程或请求需要执行相同的`PreparedStatement`时,连接池可以直接从缓存中获取,而不需要每次都向数据库请求预编译,减轻了数据库服务器的负担。 2. **提高并发性能**:缓存的存在使得...
1. 错误,应用程序不能直接与不同的数据库进行连接,需要依赖于底层数据库驱动。 2. 正确,`Statement`接口的`execute(String sql)`返回值是`boolean`,表示SQL语句的执行是否成功。 3. 正确,`PreparedStatement`是...
本例将通过具体的代码示例来展示如何使用`PreparedStatement`进行数据库操作,并讨论其相对于`Statement`的优势。 #### 二、基础知识回顾 在深入了解`PreparedStatement`之前,我们需要回顾一些基础概念: 1. **...
通过合理配置连接池参数,可以有效地提高数据库操作的效率,同时,使用JNDI能方便地在应用中查找和使用数据源,简化了数据库连接的管理。在实际开发中,理解并掌握这些知识点对于提升应用程序的性能和可维护性至关...
此外,PreparedStatement还能有效防止SQL注入攻击,因为它允许程序员使用占位符(问号)来代替动态数据,从而确保数据安全。 2. **创建PreparedStatement对象** 创建PreparedStatement对象需要通过Connection接口...
谢谢大家的关注#halo-dal使用说明#####使用场景:数据库分布式访问#####使用语言:java#####使用条件:支持PreparedStatement处理的任何jdbc框架,最好配合spring管理数据库连接池.#####sql语句必须使用小写字符#####jdk...
PreparedStatement是Statement的一个子接口,它允许开发者在SQL语句中使用参数占位符,提高了代码的可读性和安全性,同时提升了数据库操作的效率。 在数据库操作中,我们经常需要反复执行相似的SQL语句,比如插入...
** Connection是数据库连接,Statement用于执行静态SQL,PreparedStatement用于执行预编译的SQL,能防止SQL注入且效率更高。 3. **什么是数据源?为什么推荐使用数据源?** 数据源是 javax.sql.DataSource 接口的...
总结来说,Statement适用于执行简单的、不重复或少有变化的SQL语句,而PreparedStatement则适合频繁执行且参数变化的SQL,它提供了更高的安全性、性能优化和便利性。在实际开发中,应根据具体需求选择合适的SQL执行...
- 即使使用PreparedStatement也不能完全保证安全,如果SQL语句中使用了字符串拼接的方式构造查询语句,依然可能会发生SQL注入。因此,应避免在代码中拼接SQL语句。 - 在某些情况下,如果确实需要使用Statement执行...
从给定的部分内容来看,这段代码和描述主要涉及数据库操作中的预编译语句(PreparedStatement)的使用,尤其是在批量插入或更新数据时的应用。以下是对这段描述中的关键知识点的详细解析: ### 1. ...
- **安全性高**: PreparedStatement能有效防止SQL注入,因为它自动转义特殊字符,确保用户输入的数据不能改变SQL语句的结构。 - **性能优化**: 预编译的SQL语句在数据库中只需要编译一次,后续的执行只需绑定参数和...
在继承关系中,实例方法可以直接调用本类的类方法,但不能直接调用超类的实例方法,除非使用`super`关键字。 Java程序主要有类(Class)、Applet、Application和Servlet等形式。环境变量在编译时可以通过指定选项来...