【Hibernate】从类创建表

    这两天开始了陆陆续续的学习Hibernate视频了,看到了视频中老师通过建类使用Hibernate创建了一张表,觉得很神奇,之前一直都是先建表后根据表创建类,所以心头一腔热血也试了试这块的内容。看着老师操作觉得挺简单的,但是轮到我真正落实起来的时候真是各种奇葩问题都来了。所以留下博客一篇用来记录这个神奇的时刻。

    首先是Hibernate环境搭建,引入相应的Jar包(这里学到了一招,建立自己的jar包库),写好hibernate.cfg.xml文件配置,完成jdbc的配置。

<hibernate-configuration>
	<session-factory >
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">oxj</property>
		<!-- 方言 (用来把Java对象转化成关系数据库来描述,这里用的是mysql,到时候就可以翻译成mysql的语句,这样就具有了可移植性,不用写适应多个数据库的dao)-->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<mapping resource="com/tgb/hibernate/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

    需要提示的是,Java是严格区分大小写的,我在写com.mysql.jdbc.Driver的时候将Driver写成了小写的driver,导致报错,提示找不到mysql的jar包,当时纳闷了,明明在用户库中找到了mysql的连接jar包,结果提示说没有。后来才发现这个拼写的错误,顿时有种想抽自己一巴掌的感觉。

紧接着是建立目标类,在此次的例子中,我建立了一个名叫User的类。

public class User {
	private String id;
	private String name;
	private String password;
	private Date createTime;
	private Date expireTime;

    接下来就是Hibernate中非常核心的事情,为类提供提供hbm文件,完成对象和类之间的关系映射。

<hibernate-mapping>
	<class name="com.tgb.hibernate.User" >
		<!-- id表示表的主键 -->
		<id name="id">
		<!-- 提供生成策略,是手动还是自动 (采取自动生成,uuid32位的字符)-->
			<generator class="uuid"></generator>
		</id>
		<!-- column将实体的name属性和数据库表的user_name属性对应上 -->
		<property name="name"></property>
		<property name="password"></property>
		<property name="createTime"></property>
		<property name="expireTime"></property>
	</class>	
</hibernate-mapping>

    这个完成之后,要紧跟着在hibernate的配置文件中,将对象的hbm.xml文件的配置写入其中,完成映射。

最后,为了测试效果,编写了一个工具类ExportToDB.java,将hbm生成相应的ddl语句,使用configuration来读取配置文件。

public class ExportDB {
	public  static void main(String[] args){
		//读取配置文件
		Configuration cfg=new Configuration().configure();
		//通过schemaExport根据拿到的配置文件生成ddl文件
		SchemaExport ex= new SchemaExport(cfg);
		ex.create(true,true);
	}
}

    查看效果:


    以上就是从类创建表的一个神奇的过程,当然这仅仅是我Hibernate学习的一个开始,虽然其中遇到了各种奇葩问题,但正是这种一步步的试错让我成长。我相信我能学好Hibernate这块的知识。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值