- 浏览: 567902 次
文章分类
- 全部博客 (235)
- 数据库 (12)
- j2se (10)
- JQuery (2)
- 经验总结 (4)
- 防毒 (1)
- Struts (20)
- Spring (12)
- 项目 (3)
- 电脑维修项目 (1)
- Eclipse (2)
- JSP (13)
- mysql (5)
- Hibernate (54)
- ssh (1)
- 学习网站 (1)
- tomcat (9)
- servlet (24)
- java语言基础 (1)
- jbpm (1)
- linux (0)
- 技巧积累 (1)
- javaBean (2)
- 设计模式 (2)
- 实用的操作 (9)
- oracle (1)
- UML学习 (1)
- 版本控制 (1)
- 框架 (9)
- javaWeb基础 (13)
- c语言 (0)
- ant (0)
- 关于权限 (3)
- 真正开发有用 (5)
- javascript (2)
- 算法 (1)
- J2EE (1)
- junit (1)
最新评论
-
alleni123:
不错 一搜就搜到这个了
ssession和servletContext的比较 -
hua7381:
楼主,你真实帮了大忙了!!
万能乱码处理---url传中文 -
albrich:
1楼是正解
摘] 装了个Tomcat遇到的问题 -
JA_mcj:
ssession和servletContext的比较 -
haotw:
看了很有帮助,总算对hibernate的延迟加载有一定的了解了 ...
[转]hibernate延迟加载
java 代码
- /*
- * 简单的查询一个表,返回List
- */
- public void testHQL1(){
- Session session = factory.openSession();
- String hql = "from User";
- Query query = session.createQuery(hql);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- *
- * 加了一些限制的条件查询,查询得到一个List
- * 这里跟 sql 语句很像,很好!
- */
- public void testHQL2(){
- Session session = factory.openSession();
- String hql = "from User where name='linweihan' and addr ='beijing'";
- Query query = session.createQuery(hql);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- * 排序,使用order by和sql 非常像很好
- */
- public void testHQL3(){
- Session session = factory.openSession();
- String hql = "from User order by age desc";
- Query query = session.createQuery(hql);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getAge());
- System.out.println(user.getName());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- * 分组,使用group by
- */
- public void testHQL4(){
- Session session = factory.openSession();
- String hql = "from User group by addr";
- Query query = session.createQuery(hql);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getAge());
- System.out.println(user.getName());
- System.out.println(user.getAddr());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- * 使用函数
- * 这里使用avg(),平均数
- * 跟sql很像啊
- */
- public void testHQL5(){
- Session session = factory.openSession();
- String hql = "select avg(age) from User";
- //这里返回的List是float类型的
- Query query = session.createQuery(hql);
- List<float></float> avg_ages = query.list();
- for(Float avg_age : avg_ages){
- System.out.println(avg_age);
- }
- session.close();
- }
- /*
- * 分组和函数相结合
- *
- */
- public void testHQL6(){
- Session session = factory.openSession();
- String hql = "select avg(age) from User group by addr";
- //这里返回的List是float类型的
- Query query = session.createQuery(hql);
- List<float></float> avg_ages = query.list();
- for(Float avg_age : avg_ages){
- System.out.println(avg_age);
- }
- session.close();
- }
- /*
- * 分组和函数相结合,查询平均年龄和地址
- * 所以返回的类型应该是Object
- *
- */
- public void testHQL7(){
- Session session = factory.openSession();
- String hql = "select avg(age),addr from User group by addr";
- Query query = session.createQuery(hql);
- List avg_ages = query.list();
- for(Object[] avg_age : avg_ages){
- System.out.println(avg_age[1]+"----"+avg_age[0]);
- }
- session.close();
- }
- /*
- * 支持select 这种通用的查询
- */
- public void testHQL8(){
- Session session = factory.openSession();
- String hql = "select name,age from User";
- Query query = session.createQuery(hql);
- List infos = query.list();
- for(Object[] info : infos){
- System.out.println(info[0]+"----"+info[1]);
- }
- session.close();
- }
- /*
- * 使用update
- * Hibernate3也支持update和delete
- * 在Hibernate2中不支持
- */
- public void testHQL9(){
- Session session = factory.openSession();
- String hql = "update User set age = 100 where name = 'linweihan'";
- Query query = session.createQuery(hql);
- //需要用executeUpdate方法
- query.executeUpdate();
- //需要事务的提交才能影响数据库
- session.beginTransaction().commit();
- session.close();
- }
- /*
- * 使用delete
- */
- public void testHQL10(){
- Session session = factory.openSession();
- String hql = "delete User where name = 'linweihan'";
- Query query = session.createQuery(hql);
- //需要用executeUpdate方法
- query.executeUpdate();
- //需要事务的提交才能影响数据库
- session.beginTransaction().commit();
- session.close();
- }
- /*
- * 在JDBC支持动态的参数
- * 在hibernate中也支持
- */
- public void testHQL11(){
- Session session = factory.openSession();
- String hql = "from User where addr=? and age=?";
- Query query = session.createQuery(hql);
- query.setString(0, "fujian");
- query.setInteger(1, 22);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println("---------------");
- }
- //session.close();
- }
- /*
- * HQL中支持这么一种的动态帮定可以起别名
- */
- public void testHQL12(){
- Session session = factory.openSession();
- String hql = "from User where addr=:address and age=:age";
- Query query = session.createQuery(hql);
- query.setString("address", "fujian");
- query.setInteger("age", 22);
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- * 另外Hibernate允许我们把 sql语句配置到文件中
- * 因为写到程序中需要编译的,而写到配置文件中是不需要编译的
- */
发表评论
-
多对多双项关联
2007-12-02 16:39 4078数据库中仍然是利用一个中间表 持久化类中,都各自包含对方的集合 ... -
多对多单项关联
2007-12-02 16:02 44891.多对多单项关联 在数据库中多对多的关系,表之间设置一个中间 ... -
一对一关联
2007-12-02 14:13 3629一对一的关联 分为外键关联和主键关联 外键关联:在关系模型的表 ... -
双向的多对一或者双向的一对多
2007-12-02 00:38 3564一对多或者多对一都是从一方来看, 双向是从两个方向来看 这个时 ... -
一对多的另一个问题
2007-12-02 00:19 3320如果email 的一方设置uid 不能为空的话回报错,所以需要 ... -
做一对多遇到的几个问题(单向)
2007-12-02 00:14 3266java 代码 public class Use ... -
多对一举例(单项的,从一个方向看)
2007-12-01 23:15 3632java 代码 public class Use ... -
hibernate多对一
2007-12-01 22:59 4255处理多对一的时候 感觉关系模型多对一和一对多是一样的 在域模型 ... -
[转]Hibernate中的outer-join(二):fetch
2007-12-01 22:49 4606... -
hibernate中集合排序
2007-12-01 18:49 3686set,map可以支持内存排序和数据库排序 List什么都不支 ... -
[转] hibernate中给集合排序的方法
2007-12-01 18:47 5760<iframe style="MARGIN ... -
[转]集合类型和结果集排序
2007-12-01 18:39 3492言归正传,Hibernate中的Collection类型分为有 ... -
[转]hibernate延迟加载
2007-12-01 18:22 5980hibernate 延迟加载问题探 ... -
[转]主键自动生成办法
2007-12-01 18:11 3415... -
[转]hibernate中的 bag--解释的太好了.
2007-12-01 17:25 20431Bag是集合,与Set不同的是,Bag允许重复的元素, 在Ja ... -
hibernate值类型集合映射之Map
2007-12-01 17:02 2902java 代码 public class Use ... -
hibernate值类型集合映射之List
2007-12-01 16:43 3310java 代码 public class Use ... -
值类型映射---Set(2)
2007-12-01 13:43 3112这里自定义Email类,set里面放的是 email 类,非 ... -
值类型映射---Set(1)
2007-12-01 13:20 3399这里介绍2种不同的域模型的设计, 一种是Set里面装Strin ... -
事务的作用
2007-12-01 12:41 4557事务的作用是为了防止修改数据库, 如果只是查询那么就没必要修改 ...
相关推荐
4. **持久化方法注解**:`@Transient` 忽略不映射的字段,`@Basic` 基本属性映射,`@Lob` 大对象处理,`@GeneratedValue` 自动生成值。 5. **缓存注解**:`@Cacheable`, `@Cache` 用于启用和配置二级缓存。 6. **...
- Query的用法:除了基本的查询外,Query还支持更新、删除操作,并能进行分页。例如,使用`createQuery()`创建HQL(Hibernate查询语言)语句,通过设置参数、执行更新或删除操作,以及进行分页查询。 2. **...
首先,理解Web分页的基本原理。当查询到的数据量过大时,一次性加载所有数据到前端显示并不现实,因此采用分页方式,只加载一部分数据进行显示。由于HTTP协议的无状态性,每次请求都是独立的,所以在分页过程中,...
接下来是Hive,它是建立在Hadoop之上的数据仓库工具,允许用户使用SQL(称为HQL)对大数据进行查询和分析。Hive将SQL语句转换为MapReduce任务,简化了对Hadoop集群的数据操作。Hive有以下核心概念: 1. 表和分区:...
2. 举例说明Spring的依赖注入如何实现。 3. 解释Hibernate的O/R Mapping原理。 4. 分析Struts的执行流程和主要组件的作用。 5. 如何在Spring中配置和使用Hibernate。 6. 解释AOP在实际开发中的应用场景。 7. 讨论SSH...
- 类与对象:理解面向对象的基本概念,如封装、继承和多态。 - 内存管理:垃圾回收机制,理解堆和栈的区别。 - 集合框架:List、Set、Map接口及其实现类的使用场景与特性。 - 多线程:线程的创建方式,同步机制...
2.2 如何执行HQL查询 11 2.3 如何执行SQL查询 12 2.4 如何使用Mail 12 2.4.1 确保资源文件正确 12 2.4.1.1 确认mail.properties文件设置正确 12 2.4.1.2 确认applicationContext-mail.xml文件设置正确 12 2.4.1.3 ...
#### 映射文件的基本结构举例 - `<hibernate-mapping>`标签:定义映射文件的根节点。 - `<class>`标签:用于映射Java实体类。 - `<id>`标签:定义主键字段的映射规则。 - `<property>`标签:映射类中的属性到数据库...
- **映射文件的基本结构举例**: - 映射文件通常采用XML格式,包含多个元素,如`<hibernate-mapping>`、`<class>`、`<id>`、`<property>`等。 - **标签**: - 该标签是根元素,定义了所有类的映射信息。 - **标签*...
- Criteria API与HQL(Hibernate Query Language)的区别。 - 一级缓存与二级缓存的管理。 - **面试考察要点:** - Hibernate与其他持久层框架的对比。 - 如何利用Hibernate简化数据库操作。 **补充☆9.6 ...
- **量级举例**:如文中所举的例子,YouTube用户在一分钟内上传的新视频就有300小时,电子邮件用户发送的信息高达2.4亿条,Google收到的搜索查询超过278万次等。这些数据的增长趋势表明,大数据的定义是随着技术...
为了实现分页,我们需要使用到Hibernate的Criteria查询或HQL(Hibernate Query Language)。这里我们用Criteria API举例: ```java public List<Student> findByPage(int page, int pageSize) { Session session =...