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

  • 相关阅读:
    python 递归计算阶乘
    python引用
    python3 函数参数
    名片管理系统V0.0.2(函数实现)
    python 之socket语法及相关
    常见模块(一)
    常见模块(二)
    Python之迭代器、生成器、装饰器和递归
    python 之自定义函数
    python 之SET和collections
  • 原文地址:https://www.cnblogs.com/yangjian-java/p/6755027.html
Copyright © 2020-2023  润新知