首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate选择查询占用时间

问Hibernate选择查询占用时间
EN

Stack Overflow用户
提问于 2014-05-29 07:25:05
回答 1查看 93关注 0票数 0

我正在使用jsp和hibernate。以下是我的职责-

代码语言:javascript
复制
public static List<user_detail>  getData(String username)
    {
       List<user_detail> list = null;
        try{
        Session session=newConfiguration().configure().buildSessionFactory().openSession(); 
        Transaction tx=session.beginTransaction();
        Query query = session.createQuery("from user_detail where username = :user");
        query.setParameter("user", username);
        list =  query.list();
        Iterator<user_detail> itr=list.iterator();  
        while(itr.hasNext()){  
                  descLog("Parameters"+itr.next()+"\n");
        }
        }
        catch(Exception e)
        {
            writeLog(e);
        }


        return list;
    }

我从jsp页面调用这个函数。但问题是,每次这个函数花费大约5秒。我桌上只有一张唱片。为什么这需要时间?如何减少这一次?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-29 07:33:50

在上面的代码中有很多错误:

  1. 每次调用SessionFactory时,您都要创建一个新的。应该只创建一次SessionFactory,并在应用程序的完整生命周期中重用它。创建SessionFactory意味着读取配置、分析配置、构建所有实体的元模型、对照数据库模式检查配置等等。
  2. 您正在启动一个事务,但不要提交或回滚它。
  3. 你在开一次课,但忘了关闭它。这意味着内存泄漏,也意味着底层数据库连接永远不会关闭。
  4. 您不尊重Java命名约定。这个类应该命名为UserDetail,而不是user_detail。

我建议您从头开始重新阅读Hibernate参考文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23928021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档