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



  • 相关阅读:
    linux中文字体
    连接数据库服务器端的几个常见错误
    分布式部署下的报表调用 API调用 权限问题以及性能方案
    报表在IBM AIX系统下resin部署
    ASP.Net与JSP如何共享Session值
    async与await
    从小程序到小程序云开发
    什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
    微信小程序知识云开发
    变量的解构赋值
  • 原文地址:https://www.cnblogs.com/GodFather001/p/2279239.html
Copyright © 2011-2022 走看看