根据映射文件自动建表



 

配置文件中存放对象和表的对应关系,对象名对应着表名,对象的属性对应着表的列


就是这样的:

<!-- name:类名     table:对应的表名,如果不写,默认的表名就是类的简单名称 -->
	<class name="User" table="t_user">
		<id name="id" type="int" column="id">
            <generator class="native"/>
		</id>
		<!-- 普通属性:数据库中基本类型:日期、字符串、数字 -->
		<!-- name属性:对象中的属性必须要有
			type属性:类型,如果不写,Hibernate属性会自动检测
			column属性:对应表中的列名,如果不写,默认为属性名
			length属性:长度,不是所有的类型都有长度属性,varchar有,int没有,如果不写,默认为255
			not-null属性:非空约束,默认为false
			 -->
		<property name="name" type="string" column="name" length="20" not-null="true"/>
		<property name="birthday" type="date" column="birthday_"/>
		<property name="age" type="int" column="age"/>
		
		<!-- 当列表与关键字冲突时,可以通过column属性制定一个其他的列名
		或是使用反引号包围起来
		指定使用text类型时,最好再指定length,以确定生成的SQL类型是能够存放指定数量的数据 -->
		<property name="desc" type="text" column="desc_"></property>
		
		<!-- 头像,二进制类型,最好指定长度 -->
		<property name="photo" type="binary" length="102400"></property>
	</class>
	


 

所以配置文件中有表中的所有信息,可以由映射文件直接创建表。

 

在xml中加上语句:


<property name="hbm2ddl.auto">update</property>

(ddl 数据定义语言,只表结构的创建,表结构的删除)


注意:

create:先删除,再创建,如果已经存在这个表,会先把表删了重新创建表,旧的的数据都没有了

update:如果表不存在就创建,不一样就更新,一样就什么都不做,主要用于测试

create-drop:初始化时创建表,SessionFactory执行close()时删除表

validate:验证表结构是否一致,如果不一致就抛异常




评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值