zoukankan      html  css  js  c++  java
  • hql简单查询语句

    session中get()方法只能通过id来查询结果;


    hibernate工具类的完善(HibernateUtil):

    public class HibernateUtil {
    private static SessionFactory sessionFactory;
    private HibernateUtil(){}
    static{
    Configuration cfg=new Configuration();
    cfg.configure();
    sessionFactory=cfg.buildSessionFactory();
    }
    public static SessionFactory getSessionFactory(){
    return sessionFactory;
    }
    public static Session getSession(){
    return sessionFactory.openSession();
    }

    /*
    * 增加
    */
    public static void add(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.save(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }

    /*
    * 更新
    */
    public static void update(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.update(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }

    /*
    * 删除
    */
    public static void delete(Object entity){
    Session s=null;
    Transaction tx=null;
    try{
    s=HibernateUtil.getSession();
    tx=s.beginTransaction();
    s.delete(entity);
    tx.commit();
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }
    /*
    * 根据id查询结果
    */
    public static Object get(Class clazz,Serializable id){
    Session s=null;
    try{
    s=HibernateUtil.getSession();
    Object obj=s.get(clazz, id);
    return obj;
    }finally{
    if(s!=null){
    s.close();
    }
    }
    }
    }

    通过名字查询的方法

    static void query(String name){
    Session s=null;
    try{
    s=HibernateUtil.getSession();
    String sql="from UserTest as user where name=?";
    Query query=s.createQuery(sql);
    query.setString(0, name);
    List<UserTest> list=query.list();
    for(UserTest user:list){
    System.out.println(user.getName());
    }

    }finally{
    if(s!=null){
    s.close();
    }
    }
    }


     针对上述程序做如下 修改

     hql的命名参数

    String sql="from  UserTest as user where user.name=:n";

    query.setString("n",name);

    实现分页的查询 

    query.setFirstResult(200); 从第几条开始

    query.setMaxResults(10); 一共查询几条



  • 相关阅读:
    【华为云技术分享】区块链与数据库如何结合?
    【华为云技术分享】跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!
    gin casbin xorm vue-admin权限认证。
    golang优秀库及介绍
    网上的element-ui-admin运行
    golang时区处理
    Let's Encrypt apache的配置
    wireshark分析自己向自己请求服务
    XORM的几个常用数据处理
    golang处理json
  • 原文地址:https://www.cnblogs.com/GodFather001/p/2279239.html
Copyright © 2011-2022 走看看