`
james23dier
  • 浏览: 533182 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java写preparedStatement中的sql的like语句

阅读更多
今天写到这个,很郁闷,用了三种方法:
PreparedStatement  stat ; Connection conn;
1:
stat = conn.PreparedStatement("select * from book where bookname like '%'?'%'");
编译没有问题,但是就是查询没有结果,很郁闷,现在都还没有搞明白原因。
2
stat = conn.PreparedStatement("select * from book where bookname like %?%"
);
编译错误,直接否决掉。
3:
stat = conn.PreparedStatement("select * from book where bookname like '%?%'");
编译无误,但是他将?作为查询参数,不能起到preparedStatement语句的作用。

最后实在无语,只能拼串解决问题:
stat = conn.PreparedStatement("select * from book where bookname like ?");
stat.setString(1,"%"+bookname+"%");


这样最后终于达到模糊匹配查询功能。

还望各位高人告诉鄙人第一种方法为什么不行。在此谢过。
0
1
分享到:
评论
1 楼 Maplemirror 2011-07-28  
http://hi.baidu.com/fei126222/blog/item/e35326d61468943d06088b66.html

相关推荐

    SQL语句拼接

    - 对于确定不会为null的字段,可以直接在SQL语句中写死,避免每次都需要判断并拼接。 - 如上例中,如果`name`和`address`都不可能为null,则可以简化为: ```java sql.append("select * from Tuser as t where 1...

    页面传入多个条件——sql语句的拼接

    - **防止SQL注入**:在实际应用中,为了防止SQL注入攻击,建议使用预编译语句(如PreparedStatement),而不是直接在字符串中拼接参数。 ```java PreparedStatement pstmt = conn.prepareStatement(sql); pstmt....

    JavaSwing图书管理系统SQL server数据库

    在Java程序中,我们需要加载数据库驱动,建立数据库连接,创建Statement或PreparedStatement对象,执行SQL语句,最后关闭连接。 具体到这个图书管理系统,开发者可能使用了`java.sql.Connection`、`java.sql....

    程序结合SQL语句结构,动态实现SQL多条件查询语句代码

    本文将深入探讨如何在程序中结合SQL语句结构,动态地实现SQL多条件查询,以提高开发效率并减少代码重复。我们将通过一个具体的示例,基于标签“SanYe”来阐述这一主题。 首先,理解SQL语句的基本结构是关键。一个...

    JAVA,多条件,模糊查询,多个条件同时查询显示结果

    在Java中,你可以将这个SQL语句设置为`PreparedStatement`的参数,然后逐个绑定变量值。这既安全(防止SQL注入),又方便替换: ```java String sql = "SELECT * FROM table_name WHERE name LIKE ? AND age ...

    JAVA预编译示例代码

    本文提供了一个 JAVA 预编译示例代码,涵盖了预编译中使用 like、javaSQL 预编译异常、预编译语句支持 in 方式等多个方面的知识点。 1. 预编译中使用 like 在预编译中使用 like 时,需要在值的地方加 % 号,以便...

    Java代码审计案例及修复

    在示例一中,like 语句未正确地使用,导致攻击者可以 inject 恶意 SQL 代码。在示例二中,预编译使用有误,导致攻击者可以 inject 恶意 SQL 代码。 修复方法 为了修复 SQL 注入漏洞,需要采取以下几种方法: 1. ...

    如何查询mysql中执行效率低的sql语句[借鉴].pdf

    8. **预编译语句(PreparedStatement)**:在Java或PHP等语言中,预编译语句可以避免SQL字符串拼接,提高安全性并提升执行效率。 9. **查询缓存**:MySQL的查询缓存可以存储已经执行过的查询结果,如果相同的查询...

    java bbs 系统

    Java通过JDBC(Java Database Connectivity)接口与MySQL数据库进行交互,使用PreparedStatement预编译SQL语句来安全地插入数据,防止SQL注入攻击。例如,添加新用户时,会执行类似`INSERT INTO users (username, ...

    如何解决sql注入问题

    Java开发人员使用JDBC(Java Database Connectivity)连接到Oracle数据库时,应该优先使用`PreparedStatement`和`CallableStatement`,而不是`Statement`。这是因为前两者提供了参数化查询的支持,能够有效抵御SQL...

    MyBatis学习之三动态SQL语句[借鉴].pdf

    - `statementType`: 指定SQL语句的类型,可以是`STATEMENT`、`PREPARED`或`CALLABLE`,分别对应Statement、PreparedStatement和CallableStatement。 ### 3.2 `if`标签 `if`标签是MyBatis中最基础的动态SQL元素,...

    Java连接sql数据库增删改查[收集].pdf

    在Java中,通过`java.sql`包中的`Connection`、`DriverManager`和`SQLException`等类来实现数据库的连接。在提供的代码中,`edu.DBConnection`类包含了获取数据库连接的方法: ```java public static Connection ...

    javaweb期末考试啊啊啊啊嗷嗷

    Java Web期末考试知识点总结 在Java Web开发中,数据库...Java Web期末考试中出现的知识点包括JDBC和数据库连接、PreparedStatement和SQL语句、CRUD操作等。这些知识点是Java Web开发的基本概念和技术,需要牢固掌握。

    Java Web条件查询实例含源码

    1. **JDBC基础**:在Java中与数据库进行交互主要通过Java Database Connectivity (JDBC) API。首先需要加载数据库驱动,建立数据库连接,然后创建Statement或PreparedStatement对象来执行SQL语句。 2. **SQL条件...

    java写的通讯录.pdf

    在Java中,这通常通过获取用户输入,然后调用DAO(数据访问对象)层的方法实现,这些方法会执行SQL INSERT语句将数据插入数据库。 3. **删除数据** 删除数据功能让用户选择一个或多个联系人并移除他们。在实现时,...

    java数据库连接.pptx

    由Oracle公司维护的JDBC是Java平台的一部分,它允许开发人员使用纯Java代码来执行SQL语句,创建、读取、更新和删除数据库中的数据。JDBC为不同数据库系统提供了一致的访问方式,从而简化了数据库应用程序的开发。 ...

    java编写的增加,修改的小例子

    - **Create(创建)**:在Java中,我们通常使用PreparedStatement或Statement对象来执行SQL的INSERT语句,以向数据库中插入新记录。 - **Read(读取)**:通过SELECT语句从数据库获取数据,结果集可以通过...

    parastatement的方法

    "parastatement"通常指的是PreparedStatement,它是Java编程语言中用于执行预编译SQL语句的接口。PreparedStatement是Statement的一个子接口,它允许开发者在SQL语句中使用参数占位符,提高了代码的可读性和安全性,...

    JSP SQL SERVER 档案管理系统

    例如,使用PreparedStatement预编译SQL语句以提高执行效率,通过JSP缓存减少不必要的数据库查询,或者在SQL Server中设置合适的索引来加速查询。 总之,"JSP SQL SERVER 档案管理系统"是一个结合了JSP动态网页技术...

Global site tag (gtag.js) - Google Analytics