其实我正在尝试做hibernate日志记录。这是我的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>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/temp</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping resource="employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以下是例外......
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1491)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1425)
at com.subhas.mypackage.StoreData.main(StoreData.java:13)
Caused by: org.dom4j.DocumentException: Connection refused: connect Nested exception: Connection refused: connect
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1481)
... 2 more
这是employee.hbm.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.subhas.mypackage.Employee" table="emp1000">
<id name="id">
<generator class="assigned"></generator>
</id>
<property name="firstName"></property>
<property name="lastName"></property>
</class>
</hibernate-mapping>
这是我的主要课程
public class StoreData {
public static void main(String[] args) {
//creating configuration object
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
//creating session factory object
SessionFactory factory=cfg.buildSessionFactory();
//creating session object
Session session=factory.openSession();
//creating transaction object
Transaction transaction=session.beginTransaction();
Employee employee=new Employee();
employee.setId(5000);
employee.setfName("Subhas");
employee.setlName("Gupta");
//persisting the object
session.persist(employee);
//commit the transaction object
transaction.commit();
session.close();
System.out.println("Data Saved Successfully");
}
}
我无法找到完美的解决方案。有人能帮助我吗?感谢。
答案 0 :(得分:3)
尝试将DOCTYPE更改为:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
答案 1 :(得分:1)
我不确定,但我认为您缺少一些log4J配置的BasicConfiguration.configure(),那么您将不会遇到log4J初始化异常。
答案 2 :(得分:0)
我的朋友错误只是导致选择了不正确的方言。请确保它是正确的,您还需要在映射文件中添加列属性。
<class name="Employee" table="EMPLOYEE">
<id name="id" column="ID">
<generator class="assigned"></generator>
</id>
<property name="name" column="NAME"></property>
<property name="mobile" column="MOBILE"></property>
<property name="email" column="EMAIL"></property>
</class>
我确定您的错误可以通过此解决...