mysql-MySQL语句查询问题,异常和查询条件

问题描述

MySQL语句查询问题,异常和查询条件
源代码如下
switch (querryType) {
case 0:
hql = ""from BookInfo b where b.bookName= '""+ querryKeys + ""'''"";
break;
case 1:
hql = ""from BookInfo b where b.author='"" + querryKeys + ""'"";
break;
case 2:
hql = ""from BookInfo b where b.bookIsbn='"" + querryKeys + ""'"";
break;
default:
hql = ""from BookInfo b where b.bookName= '"" + querryKeys +""'"";
break;
}
很奇怪
使用http://localhost:8080/server/querry_book?querry_type=1&querry_keys=lvhaoyue
有查询结果如下
{""status"":""200""message"":""success""total"":1result"":[{""book_isbn"":""13""book_name"":""APP蓝图——Axure RP7.0移动互联网产品原型设计""author"":""lvhaoyue""}]}
但是问题就是当我使用
http://localhost:8080/server/querry_book?querry_type=0&querry_keys=gongzhixiong查询时
报错如下
expecting ''' found '' [from org.yixing.entity.BookInfo b where b.bookName= gongzhixiong']; nested exception is org.hibernate.QueryException: expecting ''' found '' [from org.yixing.entity.BookInfo b where b.bookName= gongzhixiong']
在网找了半天也没办法解决,求解决。
另外就是当我改变查询条件当输入http://localhost:8080/server/querry_book?querry_type=0&querry_keys=小米时,返回成功但是result里面没有数据,不知道这个又怎么解决。

解决方案

hql = ""from BookInfo b where b.bookName= '""+ querryKeys + ""'''"";
多了一个引号
hql = ""from BookInfo b where b.bookName= '""+ querryKeys + ""''"";

时间: 2024-12-03 23:40:02

mysql-MySQL语句查询问题,异常和查询条件的相关文章

mysql 查询结果异常分析

title: MySQL · mysql · mysql 查询结果异常分析 author: 张远 现象 查询条件类型变化后,查询出了不正确的结果. create table t1(id int primary key, a varchar(50) DEFAULT NULL, key idx_a(a)) engine=innodb; show create table t1; insert into t1 values(1,'6036000240201612190005565273'); inse

Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍

先来定义分页语句将要用到的几个参数: int currentPage ; //当前页 int pageRecord ; //每页显示记录数 以之前的ADDRESSBOOK数据表为例(每页显示10条记录): 一.SqlServe下载 分页语句 String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecor

MySQL大表中重复字段的查询效率方法

MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考. 数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较. 如果仅仅是查找数据库中name不重复的字段,很容易 SELECT min(`id`),`name`     FROM `table`     GROUP BY `name`;    但是这样并不能得到说有重复字段的id值.(只得到了最小的一个id值) 查询哪些字段是重复的也容易 SELECT `name`,c

mysql 数据库-mysql问题:从三个表查询数据优化

问题描述 mysql问题:从三个表查询数据优化 我有三个表,三个表的数据全部查询出来再排序,三个表的数据都很大,如何查询才能最节省资源,最优. 解决方案 可以建一个视图,把你经常要用到的字段放入视图中,当然和你的查询语句也有关系 解决方案二: 楼上说的建视图,有点换汤不换药吧! 大数据量查询,建议去看看索引方面的东西吧

MySQL实现树状所有子节点查询的方法_Mysql

本文实例讲述了MySQL实现树状所有子节点查询的方法.分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现. 但很多时候我们无法控制树的深度.这时就需要

mysql数据库建立触发器,做历史记录查询

问题描述 mysql数据库建立触发器,做历史记录查询 大家好,我现在想做历史查询,把历史的记录保存然后做历史查询,要建立一个历史变,然后在原表上加入触发器,请问触发器语句怎么写,我是要将原表的所有字段,不管是修改还是没修改的的记录都存入历史变,因为要做历史查询,请问历史表的字段怎么设置,建立触发器,怎么写定义语句,我用的是navicat,说的具体点,新手学习,好多不懂,如果能加个qq咨询就更好了-- 解决方案 CREATE TRIGGER trigger_timee1 BEFORE UPDATE

MySQL中基本的多表连接查询教程_Mysql

一.多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如:         由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢.一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2.   内连接INNER JOIN 在MySQL中把I SELECT * FROM table1 CROSS J

对比PHP对MySQL的缓冲查询和无缓冲查询_php技巧

关于缓冲查询和无缓冲查询MySQL的客户端有两种类型的查询:缓冲查询:将接收查询的结果并把他们存储在客户端的缓存中,而且接下来获取行记录的请求仅仅从本地内获取. (1)优点:可以在结果集中自由地移动"当前行"的指针,这样很容易找到,因为结果是存在客户端的. (2)缺点:需要额外的内存来存储这些结果集,而且需要大量的内存,另外,php中用来运行查询的函数会一直到所有的结果都接收才会返回值. 无缓冲查询:会限制你通过严格的顺序访问查询结果.但他不需要额外的内存来存储整个结果集.你可以在My

详解MySql基本查询、连接查询、子查询、正则表达查询_Mysql

查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括. 1.查询语句的基本语法 2.在单表上查询数据 3.使用聚合函数查询数据 4.多表上联合查询 5.子查询 6.合并查询结果 7.为表和字段取别名 8.使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: create table STUD