`
lybilq19
  • 浏览: 19008 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

hibernate中 转义查询处理

阅读更多
//posi 获取搜索条件中 "_" 的位置
//searchText 页面搜索条件值
	int posi = -1;
	posi = searchText.trim().indexOf("_");
    //构造查询条件
	DetachedCriteria deCriteria=DetachedCriteria.forClass(PubStru.class);
	//组织类型
	deCriteria.add(Restrictions.eq("pubStruType.dataId", typeId));	
	//顶级组织不用判断下级,非顶级组织,搜索组织需在其上级组织的包含中
	if(!struId.equals("corp0000") && getAllStruIds(struId).size() > 0) {
		deCriteria.add(Restrictions.in("struId", getAllStruIds(struId)));
	}
    //如果查询条件包含"_",需对其进行转义 escape '/'
	if(posi == 0) {
		searchText = "/_"+searchText.substring(posi+1,searchText.length());
		deCriteria.add(Restrictions.sqlRestriction("lower({alias}.stru_alias) like lower(?) escape '/'", "%"+searchText+"%", Hibernate.STRING));
	}else if(posi > 0 ) {
		searchText = searchText.substring(0,posi)+"/_"+searchText.substring(posi+1, searchText.length());
		deCriteria.add(Restrictions.sqlRestriction("lower({alias}.stru_alias) like lower(?) escape '/'", "%"+searchText+"%", Hibernate.STRING));
	}else {
		deCriteria.add(Restrictions.ilike("struAlias", "%"+searchText+"%"));
	}
分享到:
评论

相关推荐

    Hibernate在查询条件中创建List集合

    本文将深入探讨如何在Hibernate中利用查询条件创建List集合,这在处理复杂的数据筛选和聚合时尤其有用。 首先,让我们理解在Hibernate中创建List集合的基本概念。List集合是Java集合框架的一部分,它可以存储有序且...

    hibernate开发租房系统

    4. 查询:使用`Session`的`createQuery()`或`createCriteria()`方法构建HQL(Hibernate Query Language)或Criteria查询,获取数据。 四、Ajax技术 Ajax(Asynchronous JavaScript and XML)允许在不刷新整个页面的...

    hibernate hql where语句拼接工具类

    此外,还需要确保防止SQL注入攻击,通过使用预编译的查询(如Hibernate的`NamedParameterJdbcTemplate`)或对输入进行适当的验证和转义。 总的来说,“hibernate hql where语句拼接工具类”是为了简化和规范化在...

    Hibernate3.2官方中文参考手册

    2. Session与Transaction:Hibernate中的Session负责管理对象的状态,而Transaction则处理数据库的事务操作,两者是进行持久化操作的关键。 二、配置Hibernate 1. hibernate.cfg.xml:配置文件定义了数据库连接参数...

    hibernate_3.2_官方中文参考手册.

    ### Hibernate 3.2 关系数据库持久化框架详解 ...- **5.4 SQL中引号包围的标识符**:处理SQL语句中特殊字符的转义。 - **5.5 其他元数据**:扩展映射文件的功能,如使用XDoclet注解自动生成代码。

    Struts + Spring + Hibernate完成用户登陆

    Struts、Spring和Hibernate是Java开发中非常流行的三大框架,它们各自在Web应用程序的不同层面上发挥着关键作用。Struts负责MVC(Model-View-Controller)架构中的控制层,Spring作为全面的轻量级框架,提供了依赖...

    struts2+hibernate4整合(简单登陆页面)

    - 防止SQL注入:在处理用户输入时,应进行参数绑定或转义处理,防止恶意攻击。 - 错误处理:合理处理可能出现的异常,如数据库连接失败、查询无结果等情况。 - 安全性考虑:登录成功后,可以考虑使用Session或...

    spring hibernate struts login1

    在登录系统中,Hibernate可以用于处理用户数据的持久化,将用户信息存储在数据库中,并在用户尝试登录时查询数据库以验证用户名和密码。 **Struts框架**:Struts是基于MVC(Model-View-Controller)设计模式的Web...

    HIBERNATE - 符合Java习惯的关系数据库持久化.doc

    文档中还特别强调了配置属性,如SQL方言、外连接抓取、二进制流处理、自定义CacheProvider、事务策略、SessionFactory绑定到JNDI以及查询语言替换。这些配置选项对于优化应用程序性能和适应不同数据库系统至关重要。...

    Hibernate使用中防止SQL注入的几种方案

    这样的方式,Hibernate会自动处理参数,避免了直接将用户输入拼接到SQL字符串中。 2. **对参数位置进行绑定**: 类似于上一种方法,但不指定参数名,而是根据参数位置设置值。例如: ```java Query query = ...

    IDEA+Spring+Hibernate+Structs2实现简单登录功能

    在本项目中,我们利用IntelliJ IDEA(IDEA)作为集成开发环境,Spring作为核心框架,Hibernate作为持久层框架,Struts2作为表现层框架,来构建一个简单的登录功能。这个组合通常被称为SSH(Spring、Struts2、...

    struts+hibernate实现的网络购物系统.zip

    - 数据访问层(DAO,Data Access Object):在Struts的Action类中,通过DAO调用Hibernate的Session方法来处理数据库操作。 - 服务层(Service):提供业务逻辑,封装DAO操作,供Action类调用。服务层可以进行事务...

    sql语句中用问号代替参数

    使用问号参数可以避免这类问题,因为它们会被正确地转义和处理。 ### 在Java中的应用 在Java中,我们通常使用`PreparedStatement`来实现SQL参数化。下面是一个示例: ```java String sql = "SELECT * FROM Users ...

    ssh框架实现登录增删改查和分页怎样实现模糊查询

    - 注意在实际开发中,为了防止SQL注入,需要对用户的输入进行转义或使用预编译的SQL语句(如Hibernate的`Criteria`或JPA的`Query`)。 通过上述步骤,我们可以实现SSH框架下的登录功能,对用户信息进行增删改查...

    14持久层Struts面试相关内容1

    【Struts面试相关内容1】涉及的知识点主要集中在Java Web开发中的持久层技术,包括Hibernate、MyBatis和Struts2,以及相关的缓存策略和数据处理。以下是对这些知识点的详细解释: 1. Hibernate和MyBatis的区别: -...

    浅析Web应用程序中SQL注入攻击与防御.pdf

    如果应用程序没有对输入进行适当的清理或转义,攻击者可以在用户名字段中输入'张三' OR '1'='1',那么查询就会变成: select count() from tb_admin where Name='张三' OR '1'='1' 由于'1'='1'始终为真,这个查询...

    修改请求参数 防止 SQL 注入、防止脚本注入

    此外,还可以使用参数绑定或者ORM框架(如Hibernate)来处理用户输入,这些方法都会自动处理潜在的SQL注入风险。 接下来,我们讨论一下跨站脚本(XSS)攻击。XSS攻击发生在攻击者将恶意脚本插入到其他用户看到的...

    SQL语句填充占位符

    MyBatis允许在XML映射文件或注解中使用#{param}作为占位符,Hibernate则支持HQL(Hibernate Query Language)和Criteria API,它们都提供了更强大的动态查询能力。 例如,在MyBatis中,你可以这样写: ```xml ...

    软件系统安全性测试.pdf

    1. **未正确过滤转义字符**:如果用户输入的数据不经过转义处理,攻击者可以插入SQL语句片段,改变查询逻辑。例如,注入 `' OR '1'='1` 可使所有用户都能通过认证。 2. **非法类型处理**:当用户输入的数据类型未被...

    mysql,sql注入简单测试了解

    5. **使用ORM框架**:像Hibernate这样的对象关系映射框架可以自动处理SQL注入问题。 6. **定期审计和更新**:定期检查代码中的SQL查询,确保它们不会引入新的安全漏洞。 总之,理解SQL注入的原理并采取相应的预防...

Global site tag (gtag.js) - Google Analytics