zoukankan      html  css  js  c++  java
  • hibernate的like用法(用占位符解决)

    原本我的写法:Query repeatClientQuery=querysession.createQuery("from ClientInfo as a "
                                              +"where a.client_name like :name" );
                    repeatClientQuery.setParameter("name",clientname);
    查询无结果.
    
    LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
    LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
    LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
    LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
    LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
    LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从M到Z的任何单个字母开头的所有名称如。
    LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。
    
    直接写
    String sql = "from ClientInfo as a where a.client_name like '%"+ clientname+"%'");
    Query repeatClientQuery=querysession.createQuery(sql);
    成功.
    
    但是却不能查询中文,假如clientname是客户1名字的话,那么将查不到结构,解决办法:
    
    1.用占位符:
    
                      Query query = session
                            .createQuery("select count(*) from Privilege p where p.name like ?");
                    query.setString(0, "%" + name + "%");// 注意这里不能写成setString(0," '%" + name + "%' ";否则查不出来结果,不能加‘单引号
    
    2.修改查询编译器:
    
    Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择查询翻译器。
    (1)选择Hibernate3.0的查询翻译器:
    hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
    (2)选择Hibernate2.1的查询翻译器
    hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    为了使用3.0的批量更新和删除功能,只能选择(1)否则不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。选择(2)可以支持输入中文,但没法解释批量更新语句了。
  • 相关阅读:
    JavaScript高级程序设计56.pdf
    JavaScript高级程序设计55.pdf
    JavaScript高级程序设计54.pdf
    JavaScript高级程序设计53.pdf
    JavaScript高级程序设计52.pdf
    php学习笔记2--安装apache遇到的问题
    php学习笔记1--开发环境搭建:apache+php+mysql
    Oracle学习笔记4 使用Navicat for Oracle 连接Oracle时出现错误:ORA-28547: connection to server failed, probable Oracle Net admin error
    Oracle 学习笔记3:新建数据库没有scott用户解决办法
    Oracle 学习笔记2:几个入门常用命令
  • 原文地址:https://www.cnblogs.com/jinzhiming/p/5066467.html
Copyright © 2011-2022 走看看