Spring框架中的HQL查询方法

需积分: 11 4 下载量 188 浏览量 更新于2024-09-14 收藏 48KB DOC 举报
"本文主要介绍了在Spring框架中进行HQL查询的方法,包括基本查询、带参数的查询、使用Example查询等。" 在Spring框架中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以面向对象的方式来编写查询语句,而不是直接使用SQL。Spring提供了一个方便的接口`HibernateTemplate`来执行HQL查询,使得在Java应用中操作数据库变得更加便捷。以下是一些Spring中常用的HQL查询方法: 1. find(String queryString) 这是最基础的HQL查询方法,通过传入一个HQL字符串来获取所有匹配的结果。例如: ```java this.getHibernateTemplate().find("from bean.User"); ``` 上述代码将返回所有`User`对象。 2. find(String queryString, Object value) 这种方法适用于单一参数的查询,可以用于精确匹配。例如: ```java this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或者进行模糊查询: ```java this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%"); ``` 分别会返回name属性等于"test"或包含"test"的所有`User`对象。 3. find(String queryString, Object[] values) 当查询条件包含多个参数时,可以使用此方法。例如: ```java String hql = "from bean.User u where u.name=? and u.password=?"; this.getHibernateTemplate().find(hql, new String[]{"test", "123"}); ``` 这将返回用户名为"test"且密码为"123"的所有`User`对象。 4. findByExample(Object exampleEntity) `findByExample`方法是基于对象实例的查询,根据给定对象的属性进行匹配。例如: ```java User u = new User(); u.setPassword("123"); // 必须符合的条件 u.setName("bb"); List<User> list = this.getHibernateTemplate().findByExample(u); ``` 上述代码将返回所有用户名为"bb"且密码为"123"的`User`对象。需要注意的是,`findByExample`方法会匹配对象的所有非null属性,且条件是逻辑与(AND)。 5. findByExample(Object exampleEntity, int firstResult, int maxResults) 这个方法在`findByExample`的基础上增加了分页功能。例如: ```java User u = new User(); u.setPassword("123"); // 必须符合的条件 u.setName("bb"); List<User> list = this.getHibernateTemplate().findByExample(u, start, max); ``` 它会返回指定范围内的匹配结果,`firstResult`表示起始索引,`maxResults`表示最大返回条数。 以上方法都是基于`HibernateTemplate`的,如果使用了Spring Data JPA或者其他ORM框架,可能会有对应的Repository接口,提供更加简洁的查询方式。不过理解这些基础的HQL查询方法对于开发来说仍然非常关键,因为它们是许多高级查询的基础。
2018-06-14 上传
包含基本步骤实现完整的JAVA框架搭建 1 创建web项目,创建dao包,service包,pojo包,controller包,mapper包, 2 导入架包,将架包导入到项目的lib 文件中,如图 3 导入配置文件,将如下配置文件导入到src下面 3.1 修改generatorConfig.xml文件,这个是mybatis的逆向工程,修改数据库名,用户名,密码,对应的包名,对应的项目。如图 3.2 修改jdbc.properits文件, 3.3 log4j.properties 日志文件 不用修改 3.4 修改spring-mvc 文件 .1 修改controller包的自动扫描注解,如图 2 定义jsp文件存放的路径 <property name="prefix" value="/jsp/" /> 如图 3.5修改spring-mabtis.xml 1 修改自动扫描的包 我建的包是com.hqyj.mana就配置 base-package="com.hqyj.mana" 2 修改mybatis的配置映射文件 找到id="sqlSessionFactory"的bean 修改它的name="mapperLocations"的属性的value值 我的mybaties映射文件放在com.hqyj.mana.mapper下的,那么value= classpath:com/hqyj/mana/mapper/*.xml。如图 3 修改mybatis接口所在的包名 找到如下图所示的bean , name="basePackage"的属性的value值就是你建的mybatis接口包名 4 修改web.xml 1 Web.xml在项目的src/main/webapp/web-inf/下面 如图 将老师给的web.xml文件覆盖进去, 下面几步我都配置好了,这个文件不管是新建了一个 项目,还是包名发生了变化,都是不要修改的。 所以以后新建了项目后,只需要把这个文件覆盖即可。 如果有同学自己建立的话,可以按照以下几个步骤建立 1 配置web表头 2 配置加载spring-mybatis.xml 3 配置编码过滤器 4 配置加载sping-mybaties文件所需要的类 5 配置处理javabean类销毁的类 6 配置sping-mvc的前端控制器 7 配置 项目默认访问页面和设置session的会话时间(可选,不是必须的) Ssm项目搭建完了!现在建立一张表,随便写一个功能,测试下项目是否搭建成功