数据库没有生成其表

时间:2011-10-27 14:25:33

标签: java hibernate spring

嗨,我正忙着使用Hibernate和Spring开发Java EE应用程序。我有一个我运行的文章课。但是没有生成表格。控制台中没有错误。

这是Article类:

package com.bd.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="Articlet")
public class Article {

    int id;
    String nom;
    String type;
    int qte;


    public Article() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Id
    @GeneratedValue
     @Column(name="ID")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
     @Column(name="Nom")
    public String getNom() {
        return nom;
    }
    public void setNom(String nom) {
        this.nom = nom;
    }
     @Column(name="Type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
     @Column(name="Qunatité")
    public int getQte() {
        return qte;
    }
    public void setQte(int qte) {
        this.qte = qte;
    }




}

和ArticleDao班:

package com.bd.dao;

import java.util.Collection;
import java.util.List;



import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.bd.entity.Article;
@Repository
@Transactional
@Configuration
public class ArticleDaoImp implements ArticleDao {

    @Autowired
    SessionFactory sessionFactory;

    @SuppressWarnings("unchecked")
    @Transactional(readOnly = true)
    public List<Article> getAll() {

        return sessionFactory.getCurrentSession().createQuery("from Article")
                .list();
    }

    @Transactional(readOnly = true)
    public Article getById(int articleId) {

        return (Article) sessionFactory.getCurrentSession().get(Article.class,
                articleId);
    }

    @Override
    public void save(Article article) {
        sessionFactory.getCurrentSession().merge(article);

    }

    @Override
    public void delete(Article article) {
        sessionFactory.getCurrentSession().delete(article);

    }

}

这是hibernatedataccesscontext文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
      http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

  <!-- Auto-detect the DAOs -->
  <context:component-scan base-package="com.bd.dao"/>
 <!-- <context:component-scan base-package="com.bd.service"/>
  <context:component-scan base-package="com.bd.controleur"/> -->


  <context:property-placeholder location="WEB-INF/jdbc.properties"/>


    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${database.driver}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.user}" />
        <property name="password" value="${database.password}" />
    </bean>



    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.bd.entity.Article</value>

            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>     
                <!-- generation base donnée     <prop key="hibernate.hbm2ddl.auto">create-drop</prop> -->
        <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
            </props>
        </property>
        <property name="articleListeners">
      <map>
        <entry key="merge">
          <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeArticleListener"/>
        </entry>
      </map>
    </property>
    </bean>




  <tx:annotation-driven transaction-manager="txnManager"/>

  <bean id="txnManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager"
        p:sessionFactory-ref="sessionFactory"/>

  <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>

</beans>


    et jdbc.properties


database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/ccccc
database.user=root
database.password=root
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=true

问题是没有生成数据库结构。请帮忙。

1 个答案:

答案 0 :(得分:1)

在您的Hibernate配置xml中,请确保将hibernate.hbm2ddl.auto设置为updatecreatecreate-drop