[原创]hibernate配置与用法_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
3
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3412 | 回复: 2   主题: [原创]hibernate配置与用法        下一篇 
jinzhu.tian
注册用户
等级:上尉
经验:502
发帖:12
精华:0
注册:1970-1-1
状态:离线
发送短消息息给jinzhu.tian 加好友    发送短消息息给jinzhu.tian 发消息
发表于: IP:您无权察看 2014-7-8 18:20:38 | [全部帖] [楼主帖] 楼主

1.创建普通的java项目。

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

       2.引入jar包。

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

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

[html]view plaincopyprint?

<hibernate-configuration>  

<session-factory>  

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

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

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

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

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

</session-factory>  

</hibernate-configuration>  

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

4.建立实体User类:

[java]view plaincopyprint?

package com.bjpowernode.hibernate; 

import java.util.Date;  

public class User {   

private String id;   

private String name; 

public String getId() {      return id;   }   

public void setId(String id) {   this.id = id;   }  

public String getName() {  return name;   }    

public void setName(String name) {        this.name = name;      }  

}  

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

[html]view plaincopyprint?

<?xml version="1.0"?>  

<!DOCTYPE hibernate-mapping PUBLIC     

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

<hibernate-mapping>    

<class name="com.bjpowernode.hibernate.User">     

<id name="id">       

<generator class="uuid"/>     

</id>   

<property name="name"/>  

</class>  

</hibernate-mapping>  

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

 [html]view plaincopyprint?

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

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

[java]view plaincopyprint?

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

Configuration cfg = new Configuration().configure();            

SchemaExport export = new SchemaExport(cfg);      

export.create(true, true);  

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

Configuration cfg = new Configuration().configure();      

//建立SessionFactory     

SessionFactory factory = cfg.buildSessionFactory();   

//取得session    

Session session = null;  

try {      

session = factory.openSession(); 

//开启事务   

session.beginTransaction();  

User user = new User();    

user.setName("张三");   

//保存User对象     

session.save(user);     

//提交事务    

session.getTransaction().commit();    

}catch(Exception e) {      

e.printStackTrace();    

//回滚事务    

session.getTransaction().rollback(); 

}finally {   

if (session != null) {  

if (session.isOpen()) {   

 //关闭session   

session.close(); 

 第八步,我们可以看到,没有我们熟悉的insert into表的sql语句了,这也是hibernate的优点,对jdbc封装的彻底,减少了我们对数据的操作时间。




赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-7-15 8:28:36 | [全部帖] [楼主帖] 2  楼

“然后如下图”,那张图好像没有?



赞(0)    操作        顶端 
guo.ye
注册用户
等级:少校
经验:1216
发帖:39
精华:0
注册:1970-1-1
状态:离线
发送短消息息给guo.ye 加好友    发送短消息息给guo.ye 发消息
发表于: IP:您无权察看 2014-7-15 10:09:17 | [全部帖] [楼主帖] 3  楼

一般必须的包有:

jta.jar------标准的JTA API
commons-logging.jar------日志功能
commons-collections.jar------集合类
antlr.jar
dom4j.jar------XML配置和映射解释器
Hibernate3.jar------核心库
asm.jar------ASM字节码库 如果使用“cglib”则必要 
asm-attrs.jar------ASM字节码库 如果使用“cglib”则必要 
ehcache.jar------EHCache缓存 如果没有其它的缓存,则它是必要的 
cglib.jar------CGLIB 字节码解释器 如果使用“cglib”则必要 


以下包可选: 

versioncheck.jar------版本检查   
swarmcache.jar
jboss-cache.jar
jgroups.jar
xml-apis.jar
c3p0-0.9.1.jar------C3PO JDBC链接池   
connector.jar
jboss-system.jar------使用TreeCache时必要 
jacc-1_0-fr.jar
checkstyle-all.jar
junit.jar
javassist.jar------字节码解释器   
ant-lanuncher.jar
jaas.jar
jdbc2_0-stdext.jar------JDBC扩展API   
ant-antlr.jar
jboss-jmx.jar
cleanimports.jar
xerces.jar------JDK版本低于1.4时必要 
jaxen-1.1-beta-7.jar------如果想提高启动性能,使用 
ant-junit.jar
ant-swing.jar
ant.jar
proxool.jar------Proxool JDBC连接池   
concurrent.jar------使用TreeCache需要 
syndiag2.jar


希望能能帮助楼上的!



赞(0)    操作        顶端 
总帖数
3
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论