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

PreparedStatement 使用like 模糊查询

SQL 
阅读更多

PreparedStatement 使用like

在使用PreparedStatement进行模糊查询的时候废了一番周折,以前一直都没有注意这个问题。一般情况下我们进行精确查询,sql语句类似:select * from table where name =?,然后调用 PreparedStatement的setString等方法给?指定值。那么模糊查询的时候应该怎么写呢?我首先尝试了:select * from customer where name like ‘%?%’。
此时程序报错,因为?被包含在了单引号中,PreparedStatement并不视它为一个参数。后来上网查了相关的一些资料,发现可以这样写select * from table where name like ?;但是在指定参数的时候把?指定为”%”+name+”%”,name是指定的查询条件。这样就OK了。
一般情况下,我总是潜意识的认定了?就是取代所指定的参数,但是实际上我们可以对指定的参数进行了一定的包装之后再传给?,比如这里我们在参数的前后都加了一个%,然后再传给?   

String expr = "select * from  table where url like ?";
   pstmt = con.prepareStatement(expr);
   String a="a";
   pstmt.setString(1, "%"+a+"%");//自动添加单引号 (包装后的参数)
  pstmt.execute();
   System.out.println(pstmt.toString());//打印sql
   //会默认生成sql: select * from  table where url like '%http%'

分享到:
评论
1 楼 foxty 2009-02-20  
name like '%'+?+'%'

这样不必对参数再进行拼接字符串。

相关推荐

    完整JSP模糊查询完整JSP模糊查询

    3. **PreparedStatement**:在模糊查询中,推荐使用PreparedStatement而非Statement,因为PreparedStatement能防止SQL注入攻击,同时提高性能,通过占位符(问号`?`)和参数绑定实现。 4. **用户输入处理**:在接收...

    简单模糊查询,是关于java和Oracle的一个模糊查询

    总的来说,Java和Oracle结合进行模糊查询涉及到了JDBC连接、SQL的`LIKE`操作符、PreparedStatement的使用以及JSP的前端交互。理解和熟练掌握这些技术,对于开发高效、安全的Web应用程序至关重要。

    j2ee+ssi模糊查询

    模糊查询是数据库查询的一种方法,允许用户使用通配符来搜索不完全匹配的数据。在J2EE和SSI的应用中,模糊查询可以极大地提升用户体验,特别是当用户无法记住确切的搜索词或者需要进行广义搜索时。下面将详细探讨...

    jsp分页技术及其对数据库两张表的增删查改和模糊查询

    模糊查询是指使用LIKE语句来查询包含指定字符串的数据。在ContactDao类中,我们可以看到使用了LIKE语句来查询包含指定字符串的数据。 例如,在getAll方法中,我们可以看到使用了LIKE语句来查询包含指定字符串的数据...

    jsp带模糊查询的分页代码

    在数据库查询中,模糊查询是指允许用户使用通配符进行部分匹配的查询方式,例如在SQL语句中使用`LIKE`关键字配合通配符`%`或`_`。在本案例中,用户可能输入不完整的关键词,系统将返回所有与之匹配的数据。 接下来...

    Stringbuffer JDBC 模糊查询

    在`JDBC`中,我们通常使用`PreparedStatement`来执行SQL语句,包括模糊查询。模糊查询通常涉及到SQL的`LIKE`关键字,配合通配符`%`来查找部分匹配的数据。`PreparedStatement`允许我们预编译SQL语句,提高执行效率并...

    java模糊查询方法

    #### 二、使用LIKE关键字进行模糊查询 **1. 基本用法** 在Java中通过JDBC连接数据库并执行SQL查询时,可以使用`LIKE`关键字来进行模糊匹配。 ```java String sql = "SELECT * FROM table WHERE column LIKE ?"; ...

    ssm分页及模糊查询源码下载

    在描述中提到的“去掉了模糊查询非法输入的bug”,意味着源码可能包含了防止此类攻击的改进,如使用预编译的PreparedStatement,或者对输入进行转义和限制。 在实现模糊查询时,我们还需要考虑性能问题。由于`LIKE ...

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

    在实际应用中,你可能会使用ORM框架,如Hibernate或MyBatis,它们提供了更高级别的抽象,可以简化数据库操作,但基本的多条件模糊查询原理仍然相同。 此外,对于性能优化,可以考虑使用索引、分页查询、延迟加载等...

    servlet增删改查改进版(增加模糊查询)

    模糊查询通常涉及`LIKE`关键字,例如`SELECT * FROM table WHERE column LIKE '%keyword%'`。这里的`%`是通配符,表示任何字符的任意数量。 4. **执行查询**:使用JDBC(Java Database Connectivity)API连接数据库...

    java 模糊查询+网页抓取

    结合这两者,如果你需要从网页中抓取数据并存储到MySQL数据库,你可以先使用Jsoup抓取和解析网页,然后将数据插入到数据库中,使用模糊查询来查找特定信息。例如,抓取博客文章标题并根据关键词进行搜索。 总的来说...

    web分页加模糊查询实例

    - 使用JDBC连接到MySQL数据库,执行模糊查询。查询可能如下: ```java String sql = "SELECT * FROM users WHERE username LIKE '%?%' OR email LIKE '%?%'"; PreparedStatement pstmt = connection.prepare...

    批量删除模糊查询

    模糊查询主要使用SQL的`LIKE`关键字配合通配符进行。常见的通配符有`%`(代表零个、一个或多个字符)和`_`(代表单个字符)。以下是一个示例,查询`users`表中名字包含"John"的用户: ```sql SELECT * FROM users ...

    JDBC+struts1模糊查询分页

    在模糊查询中,我们通常会使用`LIKE`关键字配合通配符(如`%`)来实现。例如,要查询名字包含"张"的所有用户,SQL语句可能为:`SELECT * FROM users WHERE name LIKE '%张%'`。 接下来,让我们看看如何在Struts1...

    J2ME数据库操作模糊查询

    在SQL查询中,可以使用通配符来实现模糊查询,如“%”代表任意数量的字符,而“_”代表单个字符。 例如,如果你有一个名为"Contacts"的表,包含"Name"字段,你可以构造如下SQL语句进行模糊查询: ```java String ...

    javaweb对商品名的模糊查询(附源码)

    在SQL中,模糊查询通常使用`LIKE`关键字来实现。例如,如果我们有一个`products`表,包含一个`product_name`字段,我们可以使用`%`通配符来执行模糊查询。`%`代表零个、一个或多个任意字符。以下是一个简单的例子:...

    java留言管理系统中模糊查询实例分享.doc

    1. 构造SQL查询语句,使用`%`通配符进行模糊匹配。例如,`SELECT * FROM note WHERE title LIKE '%cond%'` 将返回所有标题中包含`cond`的记录。这里,`cond`被动态替换为用户输入的关键词。 2. 创建`...

    mybatis 模糊查询的实现方法

    在MyBatis中,模糊查询是一种常见的查询方式,特别是在...在实现模糊查询时,应优先考虑使用`#`,并避免使用`$`,除非你知道这样做是安全的。同时,利用`<![CDATA[...]]>`可以帮助执行复杂的SQL操作,如存储过程调用。

    DButil 封装 包括模糊查询 分页Count 普通增删改查方法

    模糊查询是数据库查询中常见的需求,DButil通常会提供一个方法,接受待搜索的关键词和字段名,生成如`LIKE '%keyword%'`形式的SQL语句,方便在多个字段上进行模糊匹配。 4. **分页查询与Count统计**: 分页查询是...

Global site tag (gtag.js) - Google Analytics