spring+hibernate不会自动生成表

Mandy_周 2014-04-24 04:20:11
关于spring+hibernate的整合,不能自动生成数据库表,junit测试类也没报错,求解。
console控制台:
2014-4-24 15:40:26 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1034bb5: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1034bb5]; startup date [Thu Apr 24 15:40:26 CST 2014]; root of context hierarchy
2014-4-24 15:40:27 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans.xml]
2014-4-24 15:40:27 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@1034bb5]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1c74f37
2014-4-24 15:40:28 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1c74f37: defining beans [org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,dataSource,sessionFactory,txManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy
2014-4-24 15:40:28 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
信息: Building new Hibernate SessionFactory
2014-4-24 15:40:30 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
信息: Using DataSource [org.apache.commons.dbcp.BasicDataSource@15e2075] of Hibernate SessionFactory for HibernateTransactionManager
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2014-04-24
  • 打赏
  • 举报
回复
bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
p:dataSource-ref="dataSource">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
起作用的是<prop key="hibernate.hbm2ddl.auto">update</prop>这一句,自动建表

注意,这句
<prop key="hibernate.hbm2ddl.auto">update</prop>
上面不是自动建表,而是更新表结构
如果要自动建表,必须为以下
<prop key="hibernate.hbm2ddl.auto">create</prop>
一般来讲是先用create,然后再修改为update,这样开发起来会很方便
Mandy_周 2014-04-24
  • 打赏
  • 举报
回复
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 package="cn.itcast.bean">
    <class name="Employee">
       <id name="username" length="20"/>
       <property name="password" length="20" not-null="true"/>
       <property name="gender" not-null="true" length="5">
        	<type name="org.hibernate.type.EnumType">
        		<param name="enumClass">cn.itcast.bean.Gender</param>
<!-- 12为java.sql.Types.VARCHAR常量值,即保存枚举的字面值到数据库。如果不指定type参数,保存枚举的索引值(从0开始)到数据库-->
        		<param name="type">12</param>
        	</type>
        </property>
    </class>
</hibernate-mapping>
Mandy_周 2014-04-24
  • 打赏
  • 举报
回复
beans.xml:
<?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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<context:component-scan base-package="cn.itcast"/>
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="org.gjt.mm.mysql.Driver"/>
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&characterEncoding=UTF-8"/>
		<property name="user" value="root"/>
		<property name="password" value="123456"/>
		<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize" value="1"/>
		<!--连接池中保留的最小连接数。-->
		<property name="minPoolSize" value="1"/>	
		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize" value="300"/>
		<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime" value="60"/>	
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement" value="5"/>	
		<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
		<property name="idleConnectionTestPeriod" value="60"/>
	</bean>
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		 <property name="mappingResources">
			    <list>
			      <value>cn/itcast/bean/Employee.hbm.xml</value>
			    </list>
		</property>
		 <property name="hibernateProperties">
			 <value>
			      hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
			      hibernate.hbm2ddl.auto=update
			      hibernate.show_sql=false
			      hibernate.format_sql=false
			  </value>
		 </property>
	</bean>
	<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	<!--使用基于注解方式配置事务 -->
	<tx:annotation-driven transaction-manager="txManager"/>
</beans>

81,087

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧