模糊查询的sql语句

Java程序中使用的sql语句一直不明白是什么作用,在网上搜索了一些资料,看到一篇博客,稍微解答了具体每条代码的作用,因为作者加了详细的注解,可以作为参考

《JavaWeb dao层条件查询(模糊查询)的sql语句》

--------------------- 本文来自 阿顾1234 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010452388/article/details/80548970

目的:通过一条查询语句能够实现用户所有的条件进行查询

代码

/**
     * 通过用户输入的参数,到数据库中查询到商品信息,并以集合的方式返回
     * @param pname 传入的查询参数
     * @param pdesc 传入的查询参数
     * @return 返回一个集合,其集合由实体Product组成
     * @throws SQLException
     */ 

public List<Product> findProByIndis(String pname, String pdesc) throws SQLException {
 //创建dbutils下的QueryRunnner
QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource()); 

//☆☆☆注意where 1=1后面一定要留空格,否则和后面进行字符串拼接后,到数据库查询会出现错误
String sql = "select * from product where 1=1 "; 

//创建一个集合用来存储查询的参数,因为我们不清楚客户到底输入几个参数,所以用集合来存放
 List<String> list = new ArrayList<String>(); if (pname != "") { 

//如果用户输入的pname不为空,那需要进行字符串拼接
sql += "and pname like ? ";
//将用户输入的参数添加到集合
list.add("%" + pname + "%");
}
if (pdesc != "") {
sql += "and pdesc like ? "; list.add("%" + pdesc + "%");
 } 

//最后将集合转化成数组
Object[] params = list.toArray();
 //调用runner对象的query查询方法,并将集合返回
 return runner.query(sql, new BeanListHandler<Product>(Product.class), params);

注意点:

这里作者说一定要加上空格是对的,之前敲的代码都是在sql语句最前面加上空格,是一个道理

原文地址:https://www.cnblogs.com/songsongblue/p/9689634.html

时间: 2024-10-04 21:42:31

模糊查询的sql语句的相关文章

mysql按年度、季度、月度、周、日统计查询的sql语句

本文介绍一些mysql中用于查询的sql语句,包括按年度.季度.月度.周.日统计查询等,有需要的朋友,可以参考下. 一.年度查询 查询 本年度的数据 SELECT * FROM blog_article WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( )) 二.查询季度数据 查询数据附带季度数 SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )

MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的s

MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的"heartbeat Error",分析了他们收集的日志,没有发现mysql cluster节点之间的网络有问题,倒是发现了一个很有意思的现象,在mysql的slow log里面发现了大量的慢查询,基本上都是要1秒钟以上,很明显这种耗时高的慢查询会影响系统行为,指出这点让开发团队去优化他们的应用,很好奇他们竟然不知道有这些东西可以分析...... 数据库响应慢问题最多的就是查询了.现在大部分数据库都提供

MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的"heartbeat Error".分析了他们收集的日志.没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询.基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为.指出这点让开发团队去优化他们的应用,非常好奇他们居然不知道有这些东西能够分析. ... .. 数据库响应慢问题最多的就是查询了.如今大部分

MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化

上篇:MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍 在实际的日志分析中,通常慢日志的log数量不少,同时相同的查询被记录的条数也会很多,这里就需要如何从慢日志查询中找到最有问题,最需要优化的日志.在这方面,有很多分析工具,最基本的分析工具就是MySQL自带的mysqldumpslow,mysqldumpslow(Perl脚本)的输出示例: [[email protected] bin]# ./mysqldumpslow -s t -t 1 /usr/local/mysql/da

Oracle数据库查询分页SQL语句

Oracle数据库查询分页数据SQL语句: select * from (select a.*,rownum row_num from (select * from mytable t order by t.id desc) a ) b where b.row_num between 1 and 10

获取EF查询的SQL语句

在EF编程中我们可以通过lamda表达式可以进行查询数据,获取到IQueryable<T>结果,我们要想知道具体的SQL语句是什么需要使用ObjectQuery<T>进行处理 处理方法如下: IQueryable<Data> data = this.ObjectContext.Data.Where(d => d.Name.StartsWith("测试")); ObjectQuery<Data> oq=data as ObjectQu

mybatis查询时间段sql语句

页面表现形式: 查询Ro 页面传过来的就是字符串 public class QueryRo { private String beginTime; private String endTime; public String getBeginTime() { return beginTime; } public void setBeginTime(String beginTime) { this.beginTime = beginTime; } public String getEndTime()

一些记录查询的SQL语句

-- ======================== 第三天 =========================== CREATE DATABASE php0408 CHARSET utf8 ;CREATE TABLE php0408.student ( sid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(18) NOT NULL, sex ENUM('male','female') NOT NULL DEFAULT 'fema