hibernate3学习笔记(九) Query及HQL

示例代码如下:

1.package com.hb3.pack_01;2.3.import java.util.Iterator;4.import java.util.List;5.
6.import org.hibernate.Query;7.import org.hibernate.Session;8.import org.hibernate.SessionFactory;9.import org.hibernate.Transaction;10.import org.hibernate.cfg.Configuration;11.
12.import com.hb3.pack_01.model.User;13.import com.hb3.pack_01.model.UserBak;14.
15.public class BusinessService {16.
17.    public static void main(String[] args) {18.19.        Configuration config = new Configuration().configure();20.        SessionFactory sessionFactory = config.buildSessionFactory();21.        Session session = sessionFactory.openSession();22.23.        Query query = session.createQuery("from com.hb3.pack_01.model.User user order by user.age desc, user.name");//[== from User]
24.        printUserInfo(query.list());25.26.        query = session.createQuery("select new com.hb3.pack_01.model.UserBak(user.name, user.age) from User as user");27.        Iterator<?> iterator = query.list().iterator();28.        System.out.println("class_name \t\t name/age");29.        while (iterator.hasNext()) {30.            UserBak userbak = (UserBak) iterator.next();31.            System.out.println(userbak.getClz() + " \t " + userbak.getName() + "/" + userbak.getAge());32.        }33.34.        query = session.createQuery("select upper(user.name) from User as user where (user.age/2 >= ?) and (user.age is not null)");35.        query.setInteger(0, 13);36.        List<?> names = query.list();37.        iterator =  names.iterator();38.        while(iterator.hasNext()) {39.            System.out.println(iterator.next());40.        }41.42.        query = session.createQuery("select user.name, user.age from User as user where user.age > :minAge");43.        query.setInteger("minAge", 25);44.        names = query.list();45.        iterator =  names.iterator();46.        while(iterator.hasNext()) {47.            Object[] obj = (Object[]) iterator.next();48.            System.out.println(obj[0] + "\t" + obj[1]);49.        }50.51.        query = session.getNamedQuery("com.hb3.pack_01.model.User.QueryUser");52.        query.setInteger("minAge", 25);53.        printUserInfo(query.list());54.55.        Transaction tx= session.beginTransaction();56.        query = session.createQuery("update User set age=24 where name='chenyan'");57.        query.executeUpdate();58.        tx.commit();59.
60.        tx= session.beginTransaction();61.        query = session.createQuery("delete User where name='yaobin'");62.        query.executeUpdate();63.        tx.commit();64.65.        session.close();66.        sessionFactory.close();67.    }68.69.    public static void printUserInfo(List<?> users){70.71.        Iterator<?> iterator = users.iterator();72.        System.out.println("id \t name/age");73.        while (iterator.hasNext()) {74.            User user = (User) iterator.next();75.            System.out.println(user.getId() + " \t " + user.getName() + "/" + user.getAge());76.        }77.    }78.}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索session
, iterator
, query
, import
, query list
, CreateQuery
user
,以便于您获取更多的相关知识。

时间: 2024-09-20 00:05:19

hibernate3学习笔记(九) Query及HQL的相关文章

kvm虚拟化学习笔记(九)之kvm虚拟机时间配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1291862 KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 h

J2ME学习笔记(九)

笔记 九 MIDP低级图形处理 MIDP所提供的图形处理方法都在javax.microedition.lcdui里面.主要是如下几个类:Display,Graphic s,Canvas,Font,Image. 1.Display: 在每个MIDlet之中是由一个Display,属于用Singleton Pattern所封装起来的类别,需要使用getDisplay来取得.当使用setCurrent()方法,并同时将一个Dis playable的子类作为参数就可以在屏幕上显示相关的画面.也可一用ge

hibernate3学习笔记(十五)|继承映射

这里详细讨论继承映射的3种方式: 1.Table per concrete class 继承关系如下图: 数据表设计如下图: MySQL数据库中执行如下DDL: 1.CREATE TABLE defaultuser (2. id INT(11) NOT NULL auto_increment PRIMARY KEY,3. name VARCHAR(100) NOT NULL default '',4. someProperty VARCHAR(100)5.);6.7.CREATE TABLE p

hibernate3学习笔记(二十二)|Query缓存机制

接前面的例子:http://blog.csdn.net/kunshan_shenbin/archive/2008/09/03/2874375.aspx 测试代码如下: 1.package com.hb3.pack_22;2.3.import java.io.IOException;4.import java.sql.SQLException;5.import java.util.List;6. 7.import org.hibernate.Query;8.import org.hibernate

hibernate3学习笔记(十九)|关系映射:一对一

A.唯一外键关联 DDL: 1.CREATE TABLE user (2. id INT(11) NOT NULL auto_increment PRIMARY KEY,3. name VARCHAR(100) NOT NULL default '',4. room_id INT(11)5.);6.7.CREATE TABLE room (8. id INT(11) NOT NULL auto_increment PRIMARY KEY,9. address VARCHAR(100) NOT N

JSP学习笔记(九)-----JSP标签库

js|笔记 1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持.在概念上说,标签库是非常简单和可以重用的代码构造.它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:<input type="text" name="taxpayerName" value = " ,<select name="collectionItemCode" class="requi

hibernate3学习笔记(三) hibernate日志配置文件log4j.properties

hibernate 采用 apach common logging .并结合 log4j 进行日志输出和控制.前面的简单实例中,之所以要引入log4j.properties,就是对日志输出的配置. 完整的log4j.properties文件如下所示: 1.### direct log messages to stdout ###2.log4j.appender.stdout=org.apache.log4j.ConsoleAppender3.log4j.appender.stdout.Targe

hibernate3学习笔记(一)

今天开始系统的学习一下hibernate3.3.2 (annotations版)首先去hibernate的官方网站下载hibernate-distribution-3.3.2.GA版本,然后下载slf4j-1.5.8 一.hibernate-annotations-3.4.0.GA,然后在MyEclipse下建立一个java工程,加入如图的jar包.一个是hibernate的核心包hibernate3.jar,然后是lib目录下required下的全部jar,最后是一个是slf4j-1.5.8中

hibernate3学习笔记(二十三)|进阶特性(一)

1.悲观锁定: 在多个客户端可能读取同一笔数据或同时更新一笔数据的情况下,必须要有访问控制的手段,防止同一个数据被修改而造成混乱,最简单的手段就是对资料进行锁定,在自己进行资料读取或更新等动作时,锁定其他客户端不能对同一笔资料进行任何的动作. 悲观锁定(Pessimistic Locking)一如其名称所示,悲观的认定每次资料存取时,其它的客户端也会存取同一笔资料,因此对该笔资料进行锁定,直到自己操作完成後解除锁定. 悲观锁定通常透过系统或资料库本身的功能来实现,依赖系统或资料库本身提供的锁定机