【问题标题】:Hibernate and database connection problem (data not showing on JSP page)Hibernate 和数据库连接问题(数据未显示在 JSP 页面上)
【发布时间】:2020-07-27 14:41:22
【问题描述】:

Hibernate 和数据库连接问题(数据未显示在 JSP 页面上) 我想在“ShowDetails.jsp”上显示我的表格数据。但它没有显示,我也尝试通过 Hibernate 映射但我面临同样的问题..

我是 Hibernate 的新手。

http://localhost:8081/jsp-hibernate-curd/ShowDetails.jsp

例外:

  java.lang.NoSuchFieldError: TRACE
  at org.jboss.logging.Log4jLogger.translate(Log4jLogger.java:64)
  at org.jboss.logging.Log4jLogger.isEnabled(Log4jLogger.java:39)
  at org.jboss.logging.Logger.isTraceEnabled(Logger.java:98)
  at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
  at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:87)
  at org.com.dao.UserDao.<clinit>(UserDao.java:19)
  at org.com.servlet.UserServlet.<init>(UserServlet.java:18)

模型类(UserBean.java)

package org.com.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="userdata")
public class UserBean {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name="id")
private int id;

@Column(name="name")
private String userName;

@Column(name="password")
private String userPass;

@Column(name="email")
private String userEmail;

@Column(name="country")
private String userCountry;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getUserPass() {
    return userPass;
}

public void setUserPass(String userPass) {
    this.userPass = userPass;
}

public String getUserEmail() {
    return userEmail;
}

public void setUserEmail(String userEmail) {
    this.userEmail = userEmail;
}

public String getUserCountry() {
    return userCountry;
}

public void setUserCountry(String userCountry) {
    this.userCountry = userCountry;
}

}

UserDao.class

  package org.com.dao;

  import java.util.List;
  import org.com.bean.UserBean;
  import org.hibernate.HibernateException;
  import org.hibernate.Session;
  import org.hibernate.SessionFactory;
  import org.hibernate.Transaction;
  import org.hibernate.cfg.AnnotationConfiguration;

  public class UserDao {
  private static SessionFactory sessionFactory;

  static {
    try {

        sessionFactory= new AnnotationConfiguration().configure().buildSessionFactory();

    }
    catch(Throwable e) 
    {
        System.out.println("Exception" + e);
        throw new ExceptionInInitializerError(e);
    }

    }

    public static SessionFactory getSessionFactory()
    {

    return sessionFactory;
    }

    @SuppressWarnings("unchecked")
    public List <UserBean> getAllUser()
    {

    System.out.println("This is userDao Class");

    Session session=null;
    Transaction tx= null;
    List<UserBean> listUserDetails = null;
    try {
        session= sessionFactory.openSession();
        tx=session.beginTransaction();

        listUserDetails = session.createQuery("from USERDATA").getResultList();
        tx.commit();

        }

    catch(HibernateException e) {

        if(tx!=null)
        {
            tx.rollback();
        }
        e.printStackTrace();
    }
    finally
    {
        session.close();
    }

    return listUserDetails;
    }

    }

Servlet 类(UserServlet.java)

    package org.com.servlet;

   import java.io.IOException;
   import java.util.List;
   import javax.servlet.RequestDispatcher;
   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServlet;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   import org.com.bean.UserBean;
   import org.com.dao.UserDao;

   public class UserServlet extends HttpServlet {

   private static final long serialVersionUID = 1L;
   private UserDao userdao = new UserDao();

   protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, 
   IOException
    {
        System.out.println("*****************************************");
        System.out.println("***********Servlet***************");
        System.out.println("****************************************");


        List <UserBean> listALLUserDetails = userdao.getAllUser();
        req.setAttribute("listALLUserDetails", listALLUserDetails);
        RequestDispatcher dispathcerServlet= req.getRequestDispatcher("/ShowDetails.jsp");
        dispathcerServlet.forward(req, res);


    }


      }

hibernate.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
                            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

     <hibernate-configuration>
         <display-name>jsp-hibernate-curd</display-name>
         <session-factory>
           <property name="hbm2ddl.auto">update</property>
           <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
           <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
           <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
           <property name="connection.username">system</property>
           <property name="connection.password">admin</property>
           <property name="connection.pool_size">1</property>
           <property name="current_session_context_class">thread</property>
           <property name="show_sql">true</property>

            <mapping class="org.com.bean.UserBean" />
         </session-factory>
     </hibernate-configuration>

web.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

      <servlet>
         <servlet-name>UserServlet</servlet-name>
         <servlet-class>org.com.servlet.UserServlet</servlet-class>
      </servlet>

      <servlet-mapping>
           <servlet-name>UserServlet</servlet-name>
           <url-pattern>/user</url-pattern>
      </servlet-mapping>
    </web-app>

【问题讨论】:

    标签: java hibernate jsp


    【解决方案1】:

    确保您在类路径中维护的 log4j 版本不超过一个。

    TRACE 级别在 1.2.12 或更高版本的 log4j jar 中可用..

    【讨论】:

    • 我改了,但问题还是一样....数据仍然没有显示
    • 您正在使用的其他库中可能捆绑了 log4j。修改类路径以提前放置所需的版本。
    • 确实如我所说Make sure that you do not maintain more than one version of log4j in the classpath
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2015-08-01
    • 1970-01-01
    • 2015-09-20
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多