• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

ProSayJ

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

【hibernate-笔记】

//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的映射:

 

posted on 2017-04-24 07:45  ProSayJ  阅读(112)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3