服务器-hibernate操作mysql,模糊查询时中文查不到,数字和英文可以查到

问题描述

hibernate操作mysql,模糊查询时中文查不到,数字和英文可以查到

用hibernate做模糊查询,页面传递参数也处理了乱码
@Action(value="searchNameByad")
public String searchNameByad()throws Exception{
System.out.println("android发送请求获取的参数是:"+buildingname);
//解决乱码问题
String bn = new String(buildingname.getBytes("iso-8859-1"),"UTF-8");
List buildings = buildingService.getByName(bn);
在本地测试传中文参数可以查到数据,但是在上传到服务器后,传递中文参数却查不到,只能数字、英文可以查询到结果。我用本地远程连接服务器数据库,也是中文参数查不到数据。。。在服务器上的数据库里操作查询也是可以查的到。。求解
这是本地远程连接服务器数据库后的hql语句
Hibernate: select building0_.buildingid as buildingid11_, building0_.area as area11_, building0_.buildingname as building3_11_, building0_.linkman as linkman11_, building0_.linkphone as linkphone11_, building0_.email as email11_, building0_.qrcode as qrcode11_, building0_.province as province11_, building0_.city as city11_ from airquality.building building0_ where building0_.buildingname like '%广%'

解决方案

加上编码格式试试

解决方案二:

 <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/manager?characterEncoding=gbk"/>

解决方案三:

解决方案四:

检查下你远程的数据库编码和本地的数据库编码格式是不是一样的啊?

时间: 2016-01-19

服务器-hibernate操作mysql,模糊查询时中文查不到,数字和英文可以查到的相关文章

Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办_java

项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. try { realName = new String(realName.getBytes("GBK"), "UTF-8"); } catch (UnsupportedEncodingException exce

javaee hib...-用hibernate操作mysql出现中文乱码

问题描述 用hibernate操作mysql出现中文乱码 用hibernate操作mysql出现中文乱码.按照 网上教程依旧出现乱码,求助.. 解决方案 你先确保,mysql的表,eclipse,服务器如tomcat,使用的是同一种Encoding(编码) 解决方案二: 在创建数据库表的时候设置编码default charset=utf-8这样 数据库的编码就不会出现问题了,随后在服务器端中tomcat中有一个配置文件,可以设置编码形式,但是这种情况很少出现, 另外就是,在数据显示的时候可以设置

c#-C#操作mysql数据库 不支持中文查询

问题描述 C#操作mysql数据库 不支持中文查询 例如 select * from testdata where name='张2Q' 在navicat里面运行很正常 ,结果很正确 但是在C#里面执行,死活没有结果.如果换成select * from testdata where name='ss' 这两个的结果都对,这是为什么呀?找来找去发现就是因为C#查询的时候不支持中文,怎么解决呀?大神们帮帮忙. 解决方案 统一用utf8等编码试试. 解决方案二: C#查询支持中文的,你看看是不是你数据

中文查询失败-hibernate session.createSQLQuery 模糊查询失败

问题描述 hibernate session.createSQLQuery 模糊查询失败 Hibernate: SELECT * from court where is_delete=0 and name like '%成成%' limit ? 将上面的SQL放到工具上面可以执行成功,但是hibernate查询不到数据. 如果我将高尔夫换成英文或者数字就可以查询成功,网上很多人都说是乱码照成的,但是我的SQL显示的不是乱码.请问有谁知道什么原因,并且如何解决. hibernate 版本4.3.5

用hibernate来进行数据库查询时,需要按汉字拼音排序,急求

问题描述 用hibernate来进行数据库查询时,需要按汉字拼音排序,急求 这是查询语句 public List<MapCoordinates> getCoor() { Query query=getSession().createQuery("select new MapCoordinates(mapId, title,fwnr,fwsj, address, coordinate, tel) from MapCoordinates m order by convert_gbk(m.

mysql模糊查询like/REGEXP

原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像,有两个模式:_和% _表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意"王"后面有两个_ select name from 表名 where name like '王__'; %表示0个或多个任意字符,如查出所有姓王的人名 select na

mysql模糊查询like和regexp小结_Mysql

在mysql中实现模糊查询的有like和regexp. ------------------------ like的用法许多人都是知道的,最为常用的情况就是select * from a where name like '%a%'; 其中'%'代表的是任意个字符,它的效果像是正则表达式里的'*',它有几种用法:'a%','%a%','%a',分别表示以什么开头,存在什么以及以什么结尾. 另外也可以使用'_'字符,这表示一个任意字符.效果类似正则表达式里面的'.'. like是对这个字段里面的所有

Java操作MongoDB模糊查询和分页查询_java

本文实例为大家分享了Java操作MongoDB模糊查询和分页查询,供大家参考,具体内容如下 模糊查询条件: 1.完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); 2.右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); 3.左匹配 Pattern pattern =

bug-QT实现模糊查询时出现的BUG

问题描述 QT实现模糊查询时出现的BUG 小弟使用的数据库时sqlite, 解决方案 上代码://学生查询课程模块 student_chack_course::student_chack_course(QWidget *parent) :QDialog(parent) { LineEdit_1=new QLineEdit; Label_1=new QLabel(tr("请输入关键字:")); Label_1->setBuddy(LineEdit_1); button_1=new