Hibernate中使用Session操作数据以及部分简单HQL(hibernate query language)

    xiaoxiao2021-03-25  89

    1.Session中的常用更新数据或者获取数据方法:

    save:新增数据

    get:获取一条数据

    load:获取一条数据

    update:更新数据

    delete:删除数据

    注:get方法和load方法区别:get是先从一级缓存中获取数据,再从耳机缓冲中获取数据,而load方法是直接从二级缓存中获取数据。Session是一级缓存。

    2.简单的HQL:

    HQL:hibernate query language,面向对象的查询语言。

    HQL语法:可以依如下格式:

    [select 实体类属性列表] from 类名 [where 条件] [group by 条件] [having 条件] [order by 条件]

    使用Query进行HQL查询:

    (1)获取Session对象

    //创建Configuration对象 Configuration cfg = new Configuration(); //加载注册文件 cfg.configure("/hibernate.cfg.xml"); //创建SessionFactory StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); builder.applySettings(cfg.getProperties()); SessionFactory factory = cfg.buildSessionFactory(builder.build()); //打开session Session session = factory.openSession();(2)编写HQL语句

    (3)使用session的createQuery(HQL语句)方法创建Query对象,如果HQL语句包含参数,那么接着使用Query对象的setXX()方法为参数赋值。

    (4)调用Query的list方法返回查询结果。

    例如:

    Query q = session.createQuery("from Users where id=:myid"); q.setInteger("myid", 1); List<Users> list = q.list(); for (Users users : list) { System.out.println(users.getUsername()); }

    使用Criteria进行HQL查询(步骤与Query进行HQL查询类似):

    例如:

    Criteria c = session.createCriteria(Users.class); c.add(Restrictions.eq("id", 2)); List<Users> list = c.list(); for (Users users : list) { System.out.println(users.getUsername()); }

    转载请注明原文地址: https://ju.6miu.com/read-15411.html

    最新回复(0)