叶凡网络:八步详解Hibernate的搭建及使用

2013-12-20 10:42:05 | 新闻来源:叶凡网络 | 点击量:746

可以看到没有我熟悉的insertinto表的sql语句了那怎么添加进去的呢,第八步。底添加了没?让我真实滴告诉你确实添加进去了不信的可以自己尝试哦,这也是hibern优点,对jdbc封装的完全,减少了对数据的操作时间哈。

1.创建普通的java项目。

不像servlet还必须需要tomcat支持,因为Hibern一个轻量级的框架。Hibern只要jdk支持即可。

2.引入jar包。

项目--->属性--->然后如下图:可以在项目中直接引入jar包。

相当于一个文件夹,另一种办法就是引入库。把所有的jar包放到自己新建的文件夹中。窗体-->选项-->然后如下图:

3.提供Hibern配置文件。hibernate.cfg.xml文件。完成相应的配置。

   <hibernate-configuration> 

 

   <session-factory> 

 

   <propertiname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 

 

   <propertiname="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property> 

 

   <propertiname="hibernate.connection.username">root</property> 

 

   <propertiname="hibernate.connection.password">bjpowernode</property> 

 

   <propertiname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 

 

   </session-factory> 

 

   </hibernate-configuration> 

解释一下上面的标签。依照顺序来依次解释:第一个是连接mySql驱动;第二个是连接的urlurl后面的hibernate_first数据库名字;第三个是和第四个分别是用户名和密码。第五个是方言。因为 hibern对数据库封装,这里连接mysql数据库。对不同的数据库翻译成不同的形式,比方drp中的分页,若是使用oracl数据库,则翻译成sql语句三层嵌套。若是使用mySql数据库,则翻译成limit语句。

4.建立实体User类:

   packagcom.bjpowernode.hibernate; 

 

   importjava.util.Date; 

 

   publicclassUser{ 

 

       privatStringid; 

 

       privatStringname; 

 

       privatStringpassword; 

 

       privatDatecreateTime; 

 

       privatDateexpireTime; 

 

       publicStringgetId{ 

           returnid; 

       } 

 

       publicvoidsetIdStringid{ 

           this.id=id; 

       } 

 

       publicStringgetNam{ 

           returnname; 

       } 

 

       publicvoidsetNamStringname{ 

           this.nam=name; 

       } 

 

       publicStringgetPassword{ 

           returnpassword; 

       } 

 

       publicvoidsetPasswordStringpassword{ 

           this.password=password; 

       } 

 

       publicDategetCreateTim{ 

           returncreateTime; 

       } 

 

       publicvoidsetCreateTimDatecreateTim{ 

           this.createTim=createTime; 

       } 

 

       publicDategetExpireTim{ 

           returnexpireTime; 

       } 

 

       publicvoidsetExpireTimDateexpireTim{ 

           this.expireTim=expireTime; 

       } 

   } 

5.建立User.hbm.xml此文件用来完成对象与数据库表的字段的映射。也就是实体类的那些字段需要映射到数据库表中呢。

   <?xmlversion="1.0"?> 

   <!DOCTYPEhibernate-mapPUBLIC  

       "-//Hibernate/HibernMapDTD3.0//EN"

       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

   <hibernate-mapping> 

       <classname="com.bjpowernode.hibernate.User"> 

           <idname="id"> 

               <generclass="uuid"/> 

           </id> 

           <propertiname="name"/> 

           <propertiname="password"/> 

           <propertiname="createTime"/> 

           <propertiname="expireTime"/> 

       </class> 

   </hibernate-mapping>

以及如何映射的呢?这就需要我把我自己的映射文件告诉hibernate,6.也映射完毕了但是hibern怎么知道我映射完了呢。即:hibernate.cfg.xml配置我映射文件。

   <mapresource="com/bjpowernode/hibernate/User.hbm.xml"/>

第三步我只是新建了数据库而已。依照我普通的做法,7.生成数据库表。大家也看到上述还没有新建数据表呢。应该新建数据表啊,否则实体存放何处啊。这个别急,数据库表这个肯定是需要有的这个毋庸置疑,但是这个可不像我原来需要自己亲自动手建立哦,现在hibern需要帮我实现哦,如何实现嗯,hibern会根据配置文件hibernate.cfg.xml和我映射文件User.hbm.xml会自动给我生成相应的表,并且这个表的名字也给我取好:默认是User那如何生成表呢?

   //默认读取hibernate.cfg.xml文件 

       Configurcfg=newConfigur.configur; 

 

       SchemaExportexport=newSchemaExportcfg; 

true;       export.crtrue.

添加一个用户对象,8.那我就开始进行操作啦。看看hibern如何添加的呢?跟我以前的做法有什么不同呢?

   publicclassClient{ 

 

       publicstaticvoidmainString[]arg{ 

 

           //读取hibernate.cfg.xml文件 

           Configurcfg=newConfigur.configur; 

 

           //建立SessionFactory 

           SessionFactorifactori=cfg.buildSessionFactori; 

 

           //取得session 

           Sessionsession=null; 

           try{ 

               session=factory.openSess; 

               //开启事务 

               session.beginTransact; 

               Useruser=newUser; 

               user.setNam"张三"; 

               user.setPassword"123"; 

               user.setCreateTimnewDate; 

               user.setExpireTimnewDate; 

 

               //保管User对象 

               session.savuser; 

 

               //提交事务 

               session.getTransact.commit; 

           }catchExceptione{ 

               e.printStackTrac; 

               //回滚事务 

               session.getTransact.rollback; 

           }final{ 

               ifsession!=null{ 

                   ifsession.isOpen{ 

                       //关闭session 

                       session.clos; 

                   } 

               } 

           } 

       } 

   }

上一篇:叶凡网络:俄罗斯2架巡逻机绕飞日本 自卫队战机紧急升空 下一篇:叶凡网络:山东“夺命快递”发件方疑隐瞒邮寄物有剧毒