﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-tbwshc-随笔分类-hibernate</title><link>http://www.blogjava.net/tbwshc/category/53693.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 28 Jun 2013 09:47:10 GMT</lastBuildDate><pubDate>Fri, 28 Jun 2013 09:47:10 GMT</pubDate><ttl>60</ttl><item><title>hibernate操作数据库的执行步骤</title><link>http://www.blogjava.net/tbwshc/archive/2013/06/28/401056.html</link><dc:creator>chen11-1</dc:creator><author>chen11-1</author><pubDate>Fri, 28 Jun 2013 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/tbwshc/archive/2013/06/28/401056.html</guid><wfw:comment>http://www.blogjava.net/tbwshc/comments/401056.html</wfw:comment><comments>http://www.blogjava.net/tbwshc/archive/2013/06/28/401056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tbwshc/comments/commentRss/401056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tbwshc/services/trackbacks/401056.html</trackback:ping><description><![CDATA[<font style="background-color: #c7edcc" face="Verdana">先举个hibernate执行SQL的例子：<br />　　[java] view plaincopy<br />　　public boolean addUser(UserDO userDO) {<br />　　boolean b = false;<br />　　if (userDO != null) {<br />　　try {<br />　　getHibernateTemplate().save(userDO);<br />　　b = true;<br />　　} catch (Exception e) {<br />　　b = false;<br />　　}<br />　　} else {<br />　　b = false;<br />　　}<br />　　return b;<br />　　}<br /><font style="background-color: #c7edcc" face="Verdana">一、hibernate操作数据库的执行步骤，其实很简单，可以自己实现一个小的hibernate框架：<br />　　1、运用java反射机制，获得user对象的类型user.class<br />　　2、参考对象-关系映射元数据(可能是DO的spring注解，可能是hibernate配置文档)，找到和user类对应的表为user表，并建立对象域跟表属性的对应<br />　　3、根据以上映射信息，生成SQL语句<br />　　4、通过JDBC API来执行SQL语句<br />　　二、hibernate的核心接口：<br />　　1、Configuration接口：配置hibernate，根启动hibernate，创建sessionfactory对象。hibernate通过configuration实例来获得对象-关系映射文件中的元数据，以及动态的配置hibernate属性，然后创建sessionfactory实例。具体执行过程如下：<br />　　[java] view plaincopy<br />　　Configuration config=new Configuration();<br />　　创建configuration实例，configuration类的构造方法中把applicationContext.xml文档加载到内存，<a style="color: #000000" href="http://www.tbwshc.com">tb</a>读取文档中sessionFactory Bean的配置。然后运用java反射机制，获得userDO对象的类型UserDO。configuration类的addClass方法<br />　　[java] view plaincopy<br />　　config.addClass(userDO.class);<br />　　该方法将hbm.xml文档或者通过hibernate注解形式的&#8220;对象-关系映射元数据&#8221;读入内存，找到和UserDO类对应的表为USER表，并建立对象域跟表属性的对应。<br />　　2、sessionfactory接口：初始化hibernate，充当数据存储源的代理，创建session对象。一个sessionfactory实例对应着一个数据存储源。重量级，一个数据库只创建一个sessionfactory实例，它需要一个很大的缓存，用来存放预定义的SQL语句及映射的元数据等。<br />　　3、session接口：负责保存、更新、删除、加载和查询对象。session对象不是线程安全的，因此应该避免过多个线程共享一个session实例。当session执行sql时候，session会针对上面生成的对象和关系映射，动态组成sql语句。<br />　　4、transaction：事务管理接口。它对底层的事务接口做了封装。<br />　　5、query：执行数据库查询。query实例封装了一个HQL语句，HQL语句是面向对象的，它引用类名和类的属性。<br />　　三、hibernate的使用步骤：<br />　　1、创建hibernate配置文件<br />　　2、创建持久化类<br />　　3、创建对象-关系映射文件<br />　　4、通过hibernate API编写数据库访问代码</font></font><img src ="http://www.blogjava.net/tbwshc/aggbug/401056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tbwshc/" target="_blank">chen11-1</a> 2013-06-28 17:01 <a href="http://www.blogjava.net/tbwshc/archive/2013/06/28/401056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>