Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从HibernateUtil类型对非静态方法getSessionFactory()进行静态引用_Java_Mysql_Hibernate_Orm_Sessionfactory - Fatal编程技术网

Java 无法从HibernateUtil类型对非静态方法getSessionFactory()进行静态引用

Java 无法从HibernateUtil类型对非静态方法getSessionFactory()进行静态引用,java,mysql,hibernate,orm,sessionfactory,Java,Mysql,Hibernate,Orm,Sessionfactory,尝试使用Hibernate和Struts2显示来自MySQL数据库的数据,我可以将数据添加到数据库中,并且值正在更新,但我无法在jsp页面中显示它 错误:无法从HibernateUtil类型静态引用非静态方法getSessionFactory() 这是我的书页 HibernateUtils.java package com.stg.shdb2.utils; import org.hibernate.SessionFactory; import org.hibernate.cfg.Annotat

尝试使用HibernateStruts2显示来自MySQL数据库的数据,我可以将数据添加到数据库中,并且值正在更新,但我无法在jsp页面中显示它

错误:无法从HibernateUtil类型静态引用非静态方法getSessionFactory()

这是我的书页

HibernateUtils.java

package com.stg.shdb2.utils;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;


public class HibernateUtils {   

    private static final SessionFactory sessionFactory=buildSessionFactory();

    private static  SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static  SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
package com.stg.shdb2.dao;

import java.util.List;

import net.sf.gilead.core.hibernate.HibernateUtil;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.apache.cxf.service.invoker.SessionFactory;

import com.stg.shdb2.beans.User;
import com.stg.shdb2.utils.HibernateUtils;

public class DataConnect {
    Session sess;

    public void insertDetails(User user){
        try{
            sess = (Session) HibernateUtils.getSessionFactory();
            Transaction tx = sess.beginTransaction();
            sess.save(user);

            System.out.println("Data Inserted in user_details");

            tx.commit();
            sess.close();
        }
        catch(Exception exep){
            exep.printStackTrace();
        }
    }


    @SuppressWarnings("unchecked")
    public List<User> list() {      
                 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
                 session.beginTransaction();
                 List<User> user = null;
                 try {

                     user = (List<User>) session.createQuery("from user_data").list();

                 } catch (HibernateException e) {
                 e.printStackTrace();
                 session.getTransaction().rollback();
            }
        session.getTransaction().commit();
        return user;
    }

}
DataConnect.java

package com.stg.shdb2.utils;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;


public class HibernateUtils {   

    private static final SessionFactory sessionFactory=buildSessionFactory();

    private static  SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static  SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
package com.stg.shdb2.dao;

import java.util.List;

import net.sf.gilead.core.hibernate.HibernateUtil;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.apache.cxf.service.invoker.SessionFactory;

import com.stg.shdb2.beans.User;
import com.stg.shdb2.utils.HibernateUtils;

public class DataConnect {
    Session sess;

    public void insertDetails(User user){
        try{
            sess = (Session) HibernateUtils.getSessionFactory();
            Transaction tx = sess.beginTransaction();
            sess.save(user);

            System.out.println("Data Inserted in user_details");

            tx.commit();
            sess.close();
        }
        catch(Exception exep){
            exep.printStackTrace();
        }
    }


    @SuppressWarnings("unchecked")
    public List<User> list() {      
                 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
                 session.beginTransaction();
                 List<User> user = null;
                 try {

                     user = (List<User>) session.createQuery("from user_data").list();

                 } catch (HibernateException e) {
                 e.printStackTrace();
                 session.getTransaction().rollback();
            }
        session.getTransaction().commit();
        return user;
    }

}
package com.stg.shdb2.dao;
导入java.util.List;
导入net.sf.gilead.core.hibernate.HibernateUtil;
导入org.hibernate.hibernateeexception;
导入org.hibernate.Session;
导入org.hibernate.Transaction;
导入org.apache.cxf.service.invoker.SessionFactory;
导入com.stg.shdb2.beans.User;
导入com.stg.shdb2.utils.HibernateUtils;
公共类数据连接{
会议sess;
公共void insertDetails(用户){
试一试{
sess=(会话)HibernateUtils.getSessionFactory();
事务tx=sess.beginTransaction();
sess.save(用户);
System.out.println(“用户详细信息中插入的数据”);
tx.commit();
sess.close();
}
捕获(异常exep){
exep.printStackTrace();
}
}
@抑制警告(“未选中”)
公共列表(){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
列表用户=null;
试一试{
user=(List)session.createQuery(“来自用户_数据”).List();
}捕获(休眠异常e){
e、 printStackTrace();
session.getTransaction().rollback();
}
session.getTransaction().commit();
返回用户;
}
}

您需要更改以下内容:

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
为此:

Session session = HibernateUtils.getSessionFactory().getCurrentSession();
该类的名称为
HibernateUtil
,而不是
HibernateUtil