hibernate的like用法

java 代码
  1. 原本我的写法:    
  2. Query repeatClientQuery=querysession.createQuery(    
  3. "from ClientInfo as a "+"where a.client_name like   
  4. :name" );    
  5. repeatClientQuery.setParameter("name",clientname);    
  6. 查询无结果.LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。    
  7. LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串    
  8. (如 Bennet、Green、McBadden)。    
  9. LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称    
  10. (如 Cheryl、Sheryl)。LIKE '[CK]ars[eo]n'    
  11. 将搜索下列字符串:    
  12. Carsen、Karsen、Carson 和 Karson(如 Carson)。LIKE '[M-Z]inger'    
  13. 将搜索以字符串 inger 结尾、以从M到Z的任何单个字母开头的所有名称如 。    
  14. LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称    
  15. (如 MacFeather)。    
  16. 直接写String sql = "from ClientInfo as a where a.client_name like '%"+ clientname+"%'");    
  17. Query repeatClientQuery=querysession.createQuery(sql);    
  18. 成功.但是却不能查询中文,假如clientname是客户1名字的话,那么将查不到结构,    
  19. 解决办法:1.用占位符:    
  20. Query query = session    
  21. .createQuery("select count(*)   
  22. from Privilege p where p.name like ?");    
  23. query.setString(0"%" + name + "%");//    
  24. 注意这里不能写成setString(0," '%" + name + "%' ";    
  25. 否则查不出来结果,不能加‘单引号2.修改查询编译器:    
  26. Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,    
  27. 在Hibernate的配置文件中,hibernate.query.factory_class    
  28. 属性用来选择查询翻译器。    
  29. 1)选择Hibernate3.0的查询翻译器:    
  30. hibernate.query.factory_class=    
  31. org.hibernate.hql.ast.ASTQueryTranslatorFactory    
  32. 2)选择Hibernate2.1的查询翻译器hibernate.query.factory_class=    
  33. org.hibernate.hql.classic.ClassicQueryTranslatorFactory    
  34. 为了使用3.0的批量更新和删除功能,只能选择    
  35. 1)否则不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。    
  36. 选择    
  37. 2)可以支持输入中文,但没法解释批量更新语句了。    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值