`

关于PreparedStatement中数据库like查询的小问题

阅读更多

数据库:MySQL

IDE:eclipse

查询表建立方法如下:

CREATE TABLE `student` (
  `id` int(10) NOT NULL auto_increment,
  `name` char(10) default NULL,
  `sex` char(10) default NULL,
  `age` int(10) default NULL,
  `password` char(20) character set utf8 default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

 

想用like模糊查询表中名字带有“小”的记录,查询语句如下:

SELECT id, name, sex, age FROM student WHERE name LIKE '%小%' AND sex LIKE '%%' AND age LIKE '%%';

其中like用法如下:

通配符 说明 示例

%

包含零个或多个字符的任意字符串。

WHERE name LIKE '%小%' 将查找在名字中任意位置包含汉字 "小" 的所有名字。

_(下划线)

任何单个字符。

WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。

[ ]

指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。

WHERE au_lname LIKE '[C-P]arsen' 将查找以 arsen 结尾并且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen 等。

[^]

不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。

WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。

在java中用PreparedStatement运用like查询:

private static final String SearchStudent =
    "SELECT id, name, sex, age FROM student WHERE name like ? and sex like ? and age like ?";

pstat = conn.prepareStatement(SearchStudent);

代码太占篇幅,只写部分。

pstat.setString(1, "%"+s.getName()+"%");---------正确用法。

pstat.setString(1, " '% "+s.getName()+" %' "); ------错误用法。注意,这里要忽略'%%' 旁边的''

这个单引号可能会让大家浪费点时间,这里在此稍微提下。

第一次写东西,谢谢指出错误。

分享到:
评论

相关推荐

    JAVA—JDBC数据库查询小程序

    **JAVA—JDBC数据库查询小程序** 本程序是一个基于JAVA实现的JDBC数据库操作小程序,它提供了全面的数据库交互功能,包括增(Insert)、删(Delete)、改(Update)和查(Select)。此外,还增加了模糊查询等高级...

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

    数据库增删查改操作是指对数据库中数据的增添、删除、修改和查询操作。这些操作可以使用SQL语句来实现。在ContactDao类中,我们可以看到使用了PreparedStatement来执行SQL语句,实现了对数据库的增删查改操作。 ...

    J2ME数据库操作模糊查询

    在这个场景中,我们关注的是J2ME中的模糊查询,这是一种允许用户输入不完全或者部分关键词来搜索数据库的方法。 模糊查询在很多应用中都有广泛的应用,比如电话簿搜索、天气预报查询、新闻搜索等。在J2ME中,我们...

    Java中的输入汉字拼音首字母即自动显示数据库中相应内容

    在Java中,使用PreparedStatement执行此查询,并传入首字母参数。 4. **实现自动补全功能** 通常,我们会在用户输入时监听文本框的`keyReleased`事件,然后实时查询数据库并更新结果显示列表。例如,使用Swing的`...

    MySQL数据库查询优化技术

    MySQL数据库查询优化技术是数据库管理中的关键环节,它关乎到系统的性能、响应时间和资源利用率。在MySQL中,优化查询能够显著提升数据检索的速度,降低服务器负载,从而提高整体应用的效率。以下是一些关于MySQL...

    javaweb数据库

    1. **查询语句**(`SELECT`):用于从数据库中检索数据。例如,`SELECT * FROM person WHERE name LIKE '李%'`会从`person`表中选择所有名字以“李”开头的记录。 2. **插入语句**(`INSERT`):用于向数据库中插入...

    java代码操作数据转移,把一个数据库里的东西移动到另一个数据库,自动建库建表

    在IT行业中,数据库迁移是一项常见的任务,特别是在Java开发中,我们经常需要将数据从一个数据库迁移到另一个数据库,比如从测试环境迁移到生产环境。这个过程不仅涉及数据的复制,还包括了数据库结构(如表、索引等...

    java 模糊查询+网页抓取

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

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

    1. **SQL模糊查询**:在JSP中进行模糊查询,实质上是通过后台的Java代码与数据库交互,利用SQL语句中的LIKE关键字来实现。LIKE关键字配合通配符(如`%`)可以匹配任意字符,例如`WHERE column LIKE '%关键词%'`。 2...

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

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

    web连接数据库时注意事项

    - **变量与常量**:在动态构造SQL语句时,确保正确地将变量插入到查询中,如`name`和`phone`,以避免SQL注入问题。 6. **日期范围查询**: 在进行日期范围查询时,不要将日期作为字符串处理,而应使用日期类型。...

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

    在Oracle数据库中,这些通配符用于SQL的`LIKE`操作符,使得查询能够返回与模式匹配的记录。 在Java中,我们可以使用JDBC(Java Database Connectivity)来实现与Oracle数据库的交互,包括执行模糊查询。JDBC是Java...

    JSP与数据库(SQL)

    SQL语句通常不区分大小写,但在某些数据库系统中,为了代码规范,建议遵循大写字母开头的约定。 2. **Select语句**: Select语句是SQL中最基本的查询语句,用于从数据库中检索满足特定条件的数据。其基本语法结构...

    postgresql数据库的使用

    - **定义**: PostgreSQL是一款功能强大的开源对象关系型数据库系统,支持复杂查询,并可处理多种数据类型,包括JSON、XML、图像、视频等。 - **特点**: - 支持ACID特性(原子性、一致性、隔离性、持久性) - 具有...

    java数据库驱动大全

    在Java编程语言中,数据库驱动是连接应用程序与数据库的关键组件。它们允许Java程序通过标准的Java Database Connectivity (JDBC) API与各种类型的数据库进行通信。本资料“java数据库驱动大全”是一个汇总,包含了...

    java使用oracle数据库

    在Java编程中,与Oracle数据库的交互是常见的需求。Oracle是一种功能强大的关系型数据库管理系统,广泛应用于企业级应用。要让Java程序连接并操作Oracle数据库,你需要了解以下几个关键知识点: 1. **创建Oracle...

    简单的图书管理系统实现对图书的增加,删除,修改,查询,列表等

    Java程序会构建一个UPDATE SQL语句,使用PreparedStatement设置参数,然后执行该语句更新数据库中的记录。 4. **图书查询**:查询功能是图书管理系统的核心部分。系统支持按ID查询和模糊查询。按ID查询直接通过SQL...

    JAVA操作cassandra数据库

    然后,可以使用`PreparedStatement`来执行SQL-like的CQL(Cassandra查询语言)语句: ```java PreparedStatement ps = session.prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)"); ...

    java数据库连接.pptx

    1. 数据查询:使用`SELECT`语句可以检索数据库中的数据。可以指定要查询的字段,表名以及可选的筛选条件。例如,`SELECT 学号, 姓名 FROM 学生情况表 WHERE 姓名 LIKE '李%'`将返回所有姓李的学生信息。 2. 创建...

    Java数据库编程接口PPT教案学习.pptx

    - **查询语句**:SELECT语句从表中检索满足特定条件的记录,可以使用WHERE子句定义筛选条件,支持比较运算符和LIKE通配符。 - **插入语句**:INSERT INTO用于向表中插入新记录,可以指定列名和对应的值。 - **...

Global site tag (gtag.js) - Google Analytics