本文主要是介绍【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这块的知识。
这篇关于【Hibernate】从类创建表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!