我是休眠的新手,我的代码是关于使用注释的每个层次结构的休眠表。我收到以下错误


0 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
109 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA
1920 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find             org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not     enabled.
2077 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class:   com.rtr.annotation.Employee2Ann
2139 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.rtr.annotation.Employee2Ann on table empAnn10
2202 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.rtr.annotation.Regular_Employee2Ann
2217 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.rtr.annotation.Contract_Employee2Ann
Exception in thread "main" org.hibernate.exception.GenericJDBCException: Cannot open connection
    at        org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
at com.rtrsi.annotation.StoreData4Ann.main(StoreData4Ann.java:19)
Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
... 5 more

而我的 cfg.xml 是

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hbm2ddl.auto">create</property>
<property name="connection.url">jdbc:mysql://localhost:3306/rea</property>
<property name="connectiuon.username">root</property>
<property name="connection.password"></property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.show_sql">true</property>
<mapping class="com.rtri.annotation.Employee2Ann"/>
<mapping class="com.rtri.annotation.Regular_Employee2Ann"/>
<mapping class="com.rtri.annotation.Contract_Employee2Ann"/>
</session-factory>
</hibernate-configuration>

主类是

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class StoreData4Ann {
    public static void main(String[] args) {
        //1.
        Configuration config=new AnnotationConfiguration();
        config.configure("employee2Ann.cfg.xml");
        //2.
        SessionFactory factory=config.buildSessionFactory();
        //3
        Session session=factory.openSession();
        //4.
        Transaction t=session.beginTransaction();
        Employee2Ann e2=new Employee2Ann();
        e2.setName("rahul");
        Regular_Employee2Ann r2=new Regular_Employee2Ann();
        r2.setSalary(50000);
        r2.setName("arun");
        Contract_Employee2Ann c2=new Contract_Employee2Ann();
        c2.setName("ravi");
        c2.setContract_duration("5 Months");
        c2.setPay_per_hour(150);
        session.saveOrUpdate(e2);
        session.saveOrUpdate(r2);
        session.saveOrUpdate(c2);
        t.commit();
        session.close();
        System.out.println("succefully saved");
    }
}

和我的坚持班

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
@Entity
@Table(name="empAnn10")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="classname", discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value ="emp2ann")
public class Employee2Ann {
    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    @Column(name="name")
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

另一个持久性

@Entity
@DiscriminatorValue(value="regemp2ann")
public class Regular_Employee2Ann extends Employee2Ann {
    @Column(name="bonus")
    private int bonus;
    @Column(name="salary")
    private float salary;
    public int getBonus() {
    return bonus;
    }
    public void setBonus(int bonus) {
    this.bonus = bonus;
    }
    public float getSalary() {
    return salary;
    }
    public void setSalary(float salary) {
    this.salary = salary;
    } 
}

另一个持久类

@Entity
@DiscriminatorValue(value="contemp2ann")
public class Contract_Employee2Ann extends Employee2Ann{
    @Column(name="pay_per_hour")
    private float pay_per_hour;
    @Column(name="contract_duration")
    private String contract_duration;
    public float getPay_per_hour() {
        return pay_per_hour;
    }
    public void setPay_per_hour(float pay_per_hour) {
        this.pay_per_hour = pay_per_hour;
    }
    public String getContract_duration() {
        return contract_duration;
    }
    public void setContract_duration(String contract_duration) {
        this.contract_duration = contract_duration;
    }
}

我使用了休眠验证器,通用注释,注释,Hibernate3,log4j,asm,dom4j,cglib,Common logging,Common colllection,ejb3 persistance,slf4j,mysql connector jars

配置中的 O型

<property name="connectiuon.username">root</property>

更改为

<property name="connection.username">root</property>

然后重试

最新更新