zoukankan      html  css  js  c++  java
  • 【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的映射:

  • 相关阅读:
    CSS3---用户界面
    CSS3---媒体查询与响应式布局
    HDU 5285 wyh2000 and pupil
    POJ 2488 A Knight's Journey
    POJ 1067 取石子游戏
    POJ 2777 Count Color
    POJ 3259 Wormholes
    Project Euler 26 Reciprocal cycles
    POJ 2104 K-th Number
    POJ 1013 Counterfeit Dollar
  • 原文地址:https://www.cnblogs.com/yangjian-java/p/6755027.html
Copyright © 2011-2022 走看看