详解hibernate自动创建表的配置
配置自动创建表:
<prop key="hibernate.hbm2ddl.auto">update</prop>//首次创建项目时用,项目稳定后一般注释这里有4个值:
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
然后在配置 读取实体类映射:
有3种方法:
1、(常用)通过注解扫描包的方式:
<property name="packagestoscan"> <list><value>com.systop.common.core.dao.testmodel</value></list>
2、通过注解的方式:
<property name="annotatedclasses"> <list><value>com.systop.common.core.dao.testmodel.testdept</value></list> </property>
3、mappingresources用于指定少量的hibernate配置文件像这样
xml代码
<property name="mappingresources">
<list>
<value>web-inf/conf/hibernate/cat.hbm.</value>
<value>web-inf/conf/hibernate/dog.hbm.xml</value>
......
</list>
</property>
实例:
<bean id="propertyconfigurer"
class="org.springframework.beans.factory.config.propertyplaceholderconfigurer">
<property name="locations">
<list>
<value>classpath*:/datasource/jdbc.properties</value>
</list>
</property></bean><!-- 配置数据源 --><bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource" >
<property name="driverclassname" value="${jdbcccbs.driverclassname}"/>
<property name="url" value="${jdbcccbs.url}"/>
<property name="username" value="${jdbcccbs.username}"/>
<property name="password" value="${jdbcccbs.password}"/></bean><!-- 配置sessionfactory--><bean id="sessionfactory" class="org.springframework.orm.hibernate4.localsessionfactorybean"><!--<bean id="sessionfactory" class="org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean">-->
<property name="datasource" ref="datasource" />
<property name="hibernateproperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.mysqldialect</prop>
<!--自动创建表配置-->
<!--<prop key="hibernate.hbm2ddl.auto">update</prop>-->
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<!--结果滚动集,跟分页有关-->
<prop key="jdbc.use_scrollable_resultset">false</prop>
</props>
</property>
<!--<property name="annotatedclasses">-->
<!--<list>-->
<!--<value>com.jason.entity.userentity</value>-->
<!--</list>-->
<!--</property>-->
<property name="packagestoscan">
<list>
<value>com.jason.entity</value>
</list>
</property></bean>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!