码迷,mamicode.com
首页 > Web开发 > 详细

【hibernate-笔记】

时间:2017-04-24 10:08:04      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:主键自增   comm   hiberna   rom   result   _id   res   max   not   

//1 创建,调用空参构造
Configuration conf = new Configuration().configure();
//2 根据配置信息,创建 SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();

Session session = sf.openSession();//每次open session 获取的都不是同一个对象

Session session = sf.getCurrentSession();//同一个线程绑定的session是一个对象

// 控制事务
Transaction tx = session.beginTransaction();

session.save(object); //持久化状态

tx.commit();
session.close(); 

hibernate 主键自增策略下插入操作会先执行select count(*) 操作来获取最大的id值,用来获取插入本次save的主键

hibernate 的一级缓存机制 

 

HQL:

String hql = " from Stu"; // 查询所有Customer对象

Query query = session.createQuery(hql);

List<Student> list = query.list(); // 返回list结果

query.uniqueResult();//接收唯一的查询结果

条件查询:

//HQL语句中,不可能出现任何数据库相关的信息的
// >        gt
// >        = ge
// <        lt
// <=        le
// ==        eq
// !=       ne
// in        in
// between and   between
// like       like
// is not null        isNotNull
// is null              isNull
// or       or
// and      and

Student criteria = session.createCriteria(Student.class);

//执行查询获得结果

List<Student> list = criteria.list();

 

//添加查询参数 => 查询cust_id为1的Stu对象
criteria.add(Restrictions.eq("stu_id", 1l));

Stu s = (Student) criteria.uniqueResult();

 

//创建criteria查询对象
Criteria criteria = session.createCriteria(Student.class);
//设置分页信息 limit ?,?
criteria.setFirstResult(1);
criteria.setMaxResults(2);
//执行查询
List<Srudent> list = criteria.list();

 

//查询总数

//创建criteria查询对象
Criteria criteria = session.createCriteria(Student.class);
//设置查询的聚合函数 => 总行数
criteria.setProjection(Projections.rowCount());
//执行查询
Long count = (Long) criteria.uniqueResult();

 

 

sql:

SQLQuery query = session.createSQLQuery("select * from stu");
List<Object[]> list = query.list();

 

 

SQLQuery query = session.createSQLQuery("select * from stu");

//指定将结果集封装到哪个对象中
query.addEntity(Student.class);
// 调用方法查询结果
List<Student> list = query.list();

 

//创建sql查询对象
SQLQuery query = session.createSQLQuery("select * from stu where stu_id = ?");
query.setParameter(0, 1l);
//指定将结果集封装到哪个对象中
query.addEntity(Student.class);
//调用方法查询结果
List<Studnet> list = query.list();

 

 

//创建sql查询对象
SQLQuery query = session.createSQLQuery("select * from stu limit ?,? ");
query.setParameter(0, 0);
query.setParameter(1, 1);
//指定将结果集封装到哪个对象中
query.addEntity(Student.class);
//调用方法查询结果
List<Studnet> list = query.list();

 

【hibernate-笔记】

标签:主键自增   comm   hiberna   rom   result   _id   res   max   not   

原文地址:http://www.cnblogs.com/yangjian-java/p/6755027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!