4.hql简单属性查询:测试
2016-06-25 09:33
441 查看
package com.bjpowernode.hibernate; import java.text.SimpleDateFormat; import java.util.Date; import org.hibernate.Session; public class InitData { public static void main(String[] args) { Session session = HibernateUtils.getSession(); try { session.beginTransaction(); for(int i=0; i<10; i++){ Classes classes = new Classes(); classes.setName("班级"+i); session.save(classes); for(int j=0; j<10; j++){ Student student = new Student(); student.setName("班级"+i+"的学生"+j); student.setCreateTime(randomDate("2009-07-01","2009-09-01")); //在内存中建立由student指向classes的引用 student.setClasses(classes); session.save(student); } } for(int i=0; i<5; i++){ Classes classes = new Classes(); classes.setName("无学生班级"+i); session.save(classes); } for(int i=0; i<10; i++){ Student student = new Student(); student.setName("无业游民"+i); session.save(student); } session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally{ HibernateUtils.closeSession(session); } } /** * 获取随机日期 * @param beginDate 起始日期,格式为:yyyy-MM-dd * @param endDate 结束日期,格式为:yyyy-MM-dd * @return */ private static Date randomDate(String beginDate,String endDate){ try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date start = format.parse(beginDate); Date end = format.parse(endDate); if(start.getTime() >= end.getTime()){ return null; } long date = random(start.getTime(),end.getTime()); return new Date(date); } catch (Exception e) { e.printStackTrace(); } return null; } private static long random(long begin,long end){ long rtn = begin + (long)(Math.random() * (end - begin)); if(rtn == begin || rtn == end){ return random(begin,end); } return rtn; } }
package com.bjpowernode.hibernate; import java.util.Iterator; import java.util.List; import org.hibernate.Session; import junit.framework.TestCase; /** * 简单属性查询 * @author Administrator * */ public class SimplePropertyQueryTest extends TestCase { /** * 单一属性查询 */ @SuppressWarnings("unchecked") public void testQuery1() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //返回结果集属性列表,元素类型和实体类中的属性类型一致 List students = session.createQuery("select name from Student").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { String name = (String)iter.next(); System.out.println(name); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } /** * 多个属性查询 */ @SuppressWarnings("unchecked") public void testQuery2() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //查询多个属性,返回对象数组集合 //数组元素的类型与查询的属性类型一致 //数组的长度与select中查询的属性个数一致 List students = session.createQuery("select id, name from Student").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } /** * 多个属性查询,返回Student */ @SuppressWarnings("unchecked") public void testQuery3() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //可以使用hql返回Student对象 //需要提供构造函数 List students = session.createQuery("select new Student(id, name) from Student").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println(student.getId() + ", " + student.getName()); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } /** * 可以使用别名 */ @SuppressWarnings("unchecked") public void testQuery4() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); // 可以使用别名 List students = session.createQuery("select s.id, s.name from Student s").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } /** * 可以使用别名 */ @SuppressWarnings("unchecked") public void testQuery5() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); // 可以采用as命名别名 List students = session.createQuery("select s.id, s.name from Student as s").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] obj = (Object[])iter.next(); System.out.println(obj[0] + ", " + obj[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } }
相关文章推荐
- 4.hql查询实体:测试
- 1.hql查询实体:Object,hbm
- 5.hql简单属性查询:总结
- 2.hql简单属性查询:工具类
- 3.hql简单属性查询:hibernate.cfg.xml
- MySQL中Union子句不支持order by的解决方法
- 1.hql简单属性查询:Object,hbm
- 编写一个jsp程序,实现用户登录,当用户输入的用户或密码错误时,将页面重定向到错误提示页,并在该页面显示30秒后 自动回到用户登录界面
- 安装get_homologues
- 秦谊:区块链目前还未达到大型商业应用阶段
- 如何成为资源整合高手
- iOS sqlite3数据库解析
- (Android)The connection to adb is down, and a severe error has occured.解决方法
- Codeforces Round #359 (Div. 2) A. Free Ice Cream 水题
- 生产者消费者模型(二)-引入ArrayBlockingQueue
- 《算法竞赛入门经典》学习笔记 2.4.4 C++中的输入输出
- 让客户自我成交的秘笈
- c++中位运算
- 生产者消费者模型你知道多少
- 比较不同的单元格的值,设置不同的颜色