一:下载hibernate:http://hibernate.org/orm/downloads/并且进行解压,里面有个lib文件夹,里面全是Hibernate所依赖的jar包,当然,不能缺少的核心包hibernate3.jar(这里我用到的是hibernate3),至于和现在的hibernate4有啥区别,自己也不清楚(希望有大牛能给我指正);
二:jar包都准备好后,就可以新建一个Java project,将刚才的的jar包全部导入(当然可能不是所有jar包都需要,但是本屌也不清楚哪些可以不要,为了以防万一,都进行导入,安全起见嘛);
三:工程建好后,我们就可以来进行我们的开发练习咯:
首先,我们先在src目录下新建一个hibernate.cfg.xml文件(至于为啥在src目录下,因为src目录最终会编译到一个bin文件夹中也就是类路径下(classpath下面),服务器启动时会自己在classpath下寻找该文件进行解析加载进来);
其次,就开始进行对hibernate.cfg.xml文件配置进行讲解(我连接的是MySQL5数据库,这里必须将MySQL-connector-Java.jar驱动包导入):
以上属性(property)我们都可以在之前下载的Hibernate解压包中的etc文件夹下的hibernate.properties文件中找到()。这里对hbm2ddl.auto进行说明一下(有四个值):
create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
validate::启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新。
四:接下来我们就可以来进行我们的实体开发了:
User.java
User.hbm.xml(映射文件)
//我们可以用Annotation注解来代替以上文件。
五:最后我们就可以来进行我们的业务开发了(主要进行user的增删改查操作):
以前的采用jdbc来进行连接数据库的方式是很烦琐的,这里就充分发挥了hibernate的方便与优势了:
Main.java
好了,一个添加功能就已经实现,但是写到这里,我们可能发现我们每进行一次操作,比如添加,修改,删除,查找都需要执行这段代码:
这段代码非常耗性能,因为它每次都需要去加载解析配置文件hibernate.cfg.xml,并且每次都需要创建session;因此我们不妨自己创建一个工具类,采用单利的方式来进行实现,并且该工具类实现实体的增删改查,代码如下:
HibernateUtils.java
最后,一个实体的增删改查操作就完成了,下面我们可以重写Main.java文件来使用HibernateUtils工具类来对实体进行操作了:
Main.java