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); 一共查询几条



  • 相关阅读:
    (转)使用vsphere client 克隆虚拟机
    【转】VIM高级用法笔记
    Oracle RAC的Failover
    /dev/shm过小导致ORA00845错误解决方法
    (转)How to use udev for Oracle ASM in Oracle Linux 6
    ORACLE十进制与十六进制的转换
    解决Oracle RAC不能自动启动的问题
    RAC集群时间同步服务
    db link hang的解决方法
    【转载】Oracle数据恢复 Linux / Unix 误删除的文件恢复
  • 原文地址:https://www.cnblogs.com/GodFather001/p/2279239.html
Copyright © 2011-2022 走看看