免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1659 | 回复: 5

初学HIBERNATE,请教一个小问题 [复制链接]

论坛徽章:
0
发表于 2006-12-01 15:36 |显示全部楼层
源程序:

package query;




import  org.hibernate.HibernateException;
//import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import com.mysql.jdbc.log.Log;
import com.mysql.jdbc.log.LogFactory;


//import com.mysql.jdbc.log.LogFactory;
public class HibernateUtil {
       
        private static Log log=LogFactory.getLog(HibernateUtil.class);

          private static final SessionFactory sessionFactory;
          static {
                  try {
                        sessionFactory=new Configuration().configure().buildSessionFactory();
                } catch (Throwable ex) {
                        ex.printStackTrace();// TODO: handle exception
                        throw new ExceptionInInitializerError(ex);
                }
               
          }
          
          public static final ThreadLocal session=new ThreadLocal();
          
          @SuppressWarnings("unchecked"
        public static Session currentSession()throws HibernateException{
                  Session s=(Session)session.get();
                  if(s==null||!s.isOpen()){
                          s=sessionFactory.openSession();
                          session.set(s);
                  }
                  
                  
                return s;
                  
          }
          
          
          @SuppressWarnings("unchecked"
        public static void closeSession()throws HibernateException{
                  Session s=(Session)session.get();
                  session.set(null);
                  if(s!=null)s.close();
          }
}








错误提示:
java.lang.NoClassDefFoundError: org/dom4j/DocumentException
        at query.HibernateUtil.<clinit>(HibernateUtil.java:24)
        at query.QueryFrame.getEmployees(QueryFrame.java:27)
        at query.QueryFrame.actionPerformed(QueryFrame.java:62)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:25
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:548
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
        at java.awt.Component.processEvent(Component.java:5253)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:177
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

论坛徽章:
0
发表于 2006-12-01 15:38 |显示全部楼层
java.lang.NoClassDefFoundError: org/dom4j/DocumentException


查一下配制文件

论坛徽章:
0
发表于 2006-12-01 15:39 |显示全部楼层
程序中运行时我把private static Log log=LogFactory.getLog(HibernateUtil.class);
这句注释掉了,因为它提示没有getLog方法,只有getLogger方法

这个提示的错误:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
        at query.HibernateUtil.<clinit>(HibernateUtil.java:24)


也就是程序中的这句sessionFactory=new Configuration().configure().buildSessionFactory();
不知道出了什么错误!!

论坛徽章:
0
发表于 2006-12-01 15:44 |显示全部楼层
根据这个错误提示:at query.QueryFrame.getEmployees(QueryFrame.java:27)
        at query.QueryFrame.actionPerformed(QueryFrame.java:62)

程序里的对应的这两句:
Session session=HibernateUtil.currentSession();
for(Iterator it=getEmployees(content).iterator();it.hasNext(); )



源程序:
package query;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.List;

import javax.swing.*;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class QueryFrame extends JFrame implements ActionListener {

       
        /**
         *
         */
        private static final long serialVersionUID = 1L;
        JTextField jf=new JTextField(20);
        JButton find=new JButton("查询");
        JPanel panel_find=new JPanel();
        JPanel panel_content=new JPanel();
        public List getEmployees(String empname)throws HibernateException{
                Session session=HibernateUtil.currentSession();
                Transaction tx=session.beginTransaction();
                String sql="from Emloyee where name like '%"+empname+"%'";
                Query query=session.createQuery(sql);
                List list=query.list();
                tx.commit();
                HibernateUtil.closeSession();
                return list;
        }
       
        public QueryFrame(){
                this.setTitle("查询系统");
                Container c=this.getContentPane();
               
                jf.addActionListener(this);
                find.addActionListener(this);
                panel_find.add(jf);
                panel_find.add(find);
               
                c.add(panel_find, "North");
                c.add(panel_content,"Center");
               
                this.setSize(400,400);
                this.setLocation(200,100);
                this.setVisible(true);
               
               
        }
       
       
       
        public void actionPerformed(ActionEvent e){
                panel_content.removeAll();
                String content=jf.getText();
                int i=0;
                for(Iterator it=getEmployees(content).iterator();it.hasNext(); ){
                        Employee emp=(Employee)it.next();
                        JLabel label=new JLabel(emp.getId()+""+emp.getName()+""+emp.getDepartment()+""+emp.getSalary());
                        JPanel panel= new JPanel();
                        panel.add(label);
                        panel_content.add(panel);
                        i++;
                }
                panel_content.setLayout(new GridLayout(i,1));
                panel_content.validate();
        }
       
       
       
       
       
       
       
        public static void main(String[] args) {
                new QueryFrame();// TODO Auto-generated method stub

        }

}

论坛徽章:
0
发表于 2006-12-01 16:11 |显示全部楼层
配制文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD //EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
        <session-factory>
                <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
                <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
                <property name="hibernate.connection.username">test_root</property>
                <property name="hibernate.connection.password">test_root</property>
                <property name="hibernate.connection.pool_size">100</property>
                <property name="show_sql">false</property>
                <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
                <mapping  resource="model.hbm.xml"/></session-factory>
</hibernate-configuration>

论坛徽章:
0
发表于 2006-12-01 16:40 |显示全部楼层
model.hbm.xml



<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE hibernate-mapping  PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="query">
        <class name="query.Employee" table="employee" discriminator-value="C">
                <id name="id">
                        <generator class="identity"/>
                        </id>
                <property name="username"/>
                <property name="department"/>
                <property name="salary"/>
        </class>
        </hibernate-mapping>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP