zoukankan      html  css  js  c++  java
  • HQL语句自带分页

    /** 
    * HQL查询的一个例子
    */
    public static void hql()
    {
    Session s = null;
    try
    {
    s = HibernateUtil.getSeesion();
    //final String hql = "from User as u where u.name=?";
    final String hql = "from User as u where u.name=:name";
    final Query query = s.createQuery(hql);
    //query.setString(0, "北京市"); //从0开始
    query.setString("name", "北京市");
    final List<User> list = query.list();
    for (final User u : list)
    {
    System.out.println(u.getName());
    }
    }
    finally
    {
    if (s != null)
    {
    s.close();
    }
    }
    System.out.println("HQL完成");
    }

    HibernateUtil工具类

    package dao;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    /**
    * 这是一个工具类, 快速取得session
    *
    */
    public class HibernateUtil
    {
    static SessionFactory sessionFactory = null;
    static
    {
    final Configuration cfg = new Configuration();
    cfg.configure(); //路径可以改变
    sessionFactory = cfg.buildSessionFactory();
    }
    public static SessionFactory getSessionFactory()
    {
    return sessionFactory;
    }
    /**
    * 取得session
    *
    *
    @return session
    */
    public static Session getSeesion()
    {
    return sessionFactory.openSession();
    }
    } /**
    * HQL 分页查询
    */
    public static void page()
    {
    Session s = null;
    try
    {
    s = HibernateUtil.getSeesion();
    final String hql = " from User "; //User是类名
    final Query q = s.createQuery(hql);
    q.setFirstResult(0); //从第0条开始
    q.setMaxResults(10); //取出10条
    final List list = q.list();
    for (final User u : list)
    {
    System.out.println(u.getId() + " " + u.getName());
    }
    }
    finally
    {
    s.clear();
    }
    }


    模糊查询
    public List<User> getUsers(String id){
    List list=new ArrayList<User>();
    String hql="from User as user where user.id like :id"; //参数名称查询
    factory=DBHelper.getSessionFactory();
    Session session=factory.openSession();
    Transaction transaction=session.beginTransaction();
    Query query=session.createQuery(hql);
    query.setString("id", "%"+id+"%");
    list=query.list();
    transaction.commit();
    session.close();
    return list;
    } //可以拼字符串
    List students = session.createQuery("select s.id, s.name from Student s where s.name like '%1%'").list();
    //Query query = session.createQuery("select s.id, s.name from Student s where s.name like ?");
    //query.setParameter(0, "%1%");
    //List students = query.list();



    //可以使用?方式传递参数
    //参数的索引从0开始
    //传递的参数值,不用单引号引起来
    //注意方法链编程
    List students = session.createQuery("select s.id, s.name from Student s where s.name like ?")
    .setParameter(0, "%1%")
    .list();

    //使用 :参数名称 的方式传递参数值
    List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname")
    .setParameter("myname", "%1%")
    .list();

    //使用 :参数名称 的方式传递参数值
    List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname and s.id=:myid")
    .setParameter("myname", "%1%")
    .setParameter("myid", 12)
    .list();

    //支持in,需要使用setParameterList进行参数传递
    List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
    .setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
    .list();

    //查询2008年2月创建的学生
    List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
    .setParameter(0, "2008-02")
    .list();

    //查询2008-01-10到2008-02-15创建的学生
    List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ?")
    .setParameter(0, sdf.parse("2008-01-10 00:00:00"))
    .setParameter(1, sdf.parse("2008-02-15 23:59:59"))
    .list();
  • 相关阅读:
    我的2019,探索在路上
    深度学习-TensorFlow2.0笔记(一)
    机器学习笔记(二)
    机器学习笔记(一)
    SQL注入分类以及联合查询回显注入
    数据库基础概念
    SQL注入原理、常见思路之Access手工注入实战
    OWASP top 10 2017
    HTTP协议及burp基本使用
    web系统架构
  • 原文地址:https://www.cnblogs.com/yifenghong/p/2289617.html
Copyright © 2011-2022 走看看