<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.blogjava.net/amigoxie/archive/2007/08/15/136828.html -->
<HTML><HEAD id=Head><TITLE>Hibernate3.x调用存储过程 - 阿蜜果 - BlogJava</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META id=metaKeywords content=Hibernate3.x调用存储过程 name=keywords><LINK id=MainCss
href="Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files/style.css" type=text/css
rel=stylesheet><LINK id=RSSLink title=RSS
href="http://www.blogjava.net/amigoxie/rss.aspx" type=application/rss+xml
rel=alternate>
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY>
<FORM id=Form1 name=Form1 onsubmit="javascript:return WebForm_OnSubmit();"
action=136828.html method=post>
<DIV><INPUT id=__EVENTTARGET type=hidden name=__EVENTTARGET> <INPUT
id=__EVENTARGUMENT type=hidden name=__EVENTARGUMENT> <INPUT
id=" __VIEWSTATE" type=hidden name=__VIEWSTATE> </DIV>
<SCRIPT type=text/javascript>
<!--
var theForm = document.forms['Form1'];
if (!theForm) {
theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</SCRIPT>
<SCRIPT src="Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files/WebResource.axd"
type=text/javascript></SCRIPT>
<SCRIPT language=JavaScript>
function ctlent(evt,id)
{
if(evt.ctrlKey && evt.keyCode == 13)
{
try
{
TempSave(id);
}
catch(ex)
{
}
finally
{
__doPostBack('AjaxHolder$PostComment$btnSubmit','')
}
}
}</SCRIPT>
<SCRIPT language=JavaScript>function SetReplyAuhor(author){document.getElementById('AjaxHolder_PostComment_tbComment').value+="@"+author+"\n";document.getElementById('AjaxHolder_PostComment_tbComment').focus();return false}</SCRIPT>
<SCRIPT src="Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files/ScriptResource.axd"
type=text/javascript></SCRIPT>
<SCRIPT
src="E:\南凌科技\java相关文档\Hibernate\Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files\ScriptResource(1).axd"
type=text/javascript></SCRIPT>
<SCRIPT
src="E:\南凌科技\java相关文档\Hibernate\Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files\ScriptResource(2).axd"
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
<!--
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
// -->
</SCRIPT>
<!--done-->
<DIV id=centerbody align=center>
<DIV id=header><!--done-->
<DIV class=header>
<DIV class=headerText><A class=headermaintitle id=Header1_HeaderTitle
href="http://www.blogjava.net/amigoxie/">阿蜜果</A>
<DIV
id=headersubtitle> 不骄,不矜,勤工,好学,才是好女子<BR></DIV></DIV></DIV></DIV>
<DIV id=mytopmenu>
<DIV id=mylinks><!--done--><A class=menu id=MyLinks1_HomeLink
href="http://www.blogjava.net/">BlogJava</A> <A class=menu
id=MyLinks1_MyHomeLink
href="http://www.blogjava.net/amigoxie/">首页</A> <A class=menu
id=MyLinks1_NewPostLink
href="http://www.blogjava.net/amigoxie/admin/EditPosts.aspx?opt=1">新随笔</A>
<A class=menu id=MyLinks1_NewArticleLink
href="http://www.blogjava.net/EnterMyBlog.aspx?NewArticle=1">新文章</A>
<A class=menu id=MyLinks1_ContactLink accessKey=9
href="http://www.blogjava.net/amigoxie/contact.aspx?id=1">联系</A>
<A class=menu id=MyLinks1_Syndication
href="http://www.blogjava.net/amigoxie/rss">聚合</A><A id=MyLinks1_XMLLink
href="http://www.blogjava.net/amigoxie/rss"><IMG
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
src="Hibernate3_x调用存储过程 - 阿蜜果 - BlogJava.files/xml.gif"></A>
<A class=menu id=MyLinks1_Admin
href="http://www.blogjava.net/amigoxie/admin/EditPosts.aspx">管理</A> </DIV><!--done-->
<DIV class=blogStats>posts - 187, comments - 762, trackbacks - 0
</DIV></DIV>
<DIV id=main>
<DIV id=centercontent><!--done-->
<DIV class=post>
<DIV class=postTitle><A class=postTitle2 id=viewpost1_TitleUrl
href="http://www.blogjava.net/amigoxie/archive/2007/08/15/136828.html">Hibernate3.x调用存储过程</A>
</DIV>
<P>原文出处:<STRONG><SPAN>http://tech.it168.com/j/d/<ST1:CHSDATE Year="2007"
Month="5" Day="14" IsLunarDate="False" IsROCDate="False"
w:st="on">2007-05-14</ST1:CHSDATE>/200705141007843.shtml</SPAN></STRONG><BR>说明:该文不得转载</P>
<P><STRONG><SPAN>摘要:</SPAN></STRONG><SPAN>本文以详尽的实例展示了<SPAN>hibernate3.x</SPAN>中调用存储过程各步骤,从建立测试表、存储过程的建立、工程的建立以及类的编写和测试一步一步引导用户学习<SPAN>hibernate3.x</SPAN>中调用存储过程的方法<SPAN>.</SPAN></SPAN></P>
<P><SPAN>如果底层数据库(<SPAN>eg.
Oracle</SPAN>、<SPAN>mysql</SPAN>、<SPAN>sqlserver</SPAN>)等支持存储过程,可通过存储过程执行批量删除、更新等操作。本文以实例说明在<SPAN>hibernate3.x</SPAN>中如何调用存储过程。</SPAN></P>
<P><SPAN> </SPAN><SPAN>说明:本例<SPAN>hibernate</SPAN>所用版本为<SPAN>3.0</SPAN>,<SPAN>mysql</SPAN>所用版本为<SPAN>5.0</SPAN>,所用数据库驱动为<SPAN>mysql-connector-java-<ST1:CHSDATE
Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False"
w:st="on">5.0.4</ST1:CHSDATE>-bin.jar</SPAN>。</SPAN></P>
<P><STRONG><SPAN><SPAN>一.<SPAN>
</SPAN></SPAN></SPAN></STRONG><STRONG><SPAN>建表与初始化数据</SPAN></STRONG></P>
<P><SPAN> </SPAN><SPAN>在<SPAN>mysql</SPAN>的<SPAN>test</SPAN>数据库中建立一张新表:<SPAN>tbl_user,</SPAN>建表语句如下:</SPAN></P>
<P><SPAN> DROP TABLE IF EXISTS `user`;</SPAN></P>
<P><SPAN>CREATE TABLE `tbl_user` (</SPAN></P>
<P><SPAN> `userid` varchar(50) NOT NULL,</SPAN></P>
<P><SPAN> `name` varchar(50) default '',</SPAN></P>
<P><SPAN> `blog` varchar(50) default '',</SPAN></P>
<P><SPAN> PRIMARY KEY (`userid`)</SPAN></P>
<P><SPAN>) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</SPAN></P>
<P> </P>
<P><SPAN> </SPAN><SPAN>建表成功后,在该表中插入如下<SPAN>4</SPAN>条初始数据,对应的<SPAN>sql</SPAN>语句如下:</SPAN></P>
<P><SPAN>INSERT INTO `tbl_user` (`userid`,`name`,`blog`) VALUES ('ant',
'</SPAN><SPAN>蚂蚁<SPAN>', 'http://www.blogjava.net/qixiangnj');</SPAN></SPAN></P>
<P><SPAN>INSERT INTO `tbl_user` (`userid`,`name`,`blog`) VALUES ('beansoft',
'bean', 'http://www.blogjava.net/beansoft');</SPAN></P>
<P><SPAN>INSERT INTO `tbl_user` (`userid`,`name`,`blog`) VALUES ('sterning',
'</SPAN><SPAN>似水流年<SPAN>',
'http://www.blogjava.net/sterning');</SPAN></SPAN></P>
<P><SPAN>INSERT INTO `tbl_user` (`userid`,`name`,`blog`) VALUES ('tom', 'tom' ,
'http://www.blogjava.net/tom');</SPAN></P>
<P> </P>
<P><STRONG><SPAN><SPAN>二.<SPAN>
</SPAN></SPAN></SPAN></STRONG><STRONG><SPAN>建立存储过程</SPAN></STRONG></P>
<P><SPAN>为测试<SPAN>hibernate3.x</SPAN>中存储过程的调用,我们在<SPAN>user</SPAN>表中建立<SPAN>getUserList</SPAN>、<SPAN>createUser</SPAN>、<SPAN>updateUser</SPAN>和<SPAN>deleteUser</SPAN>这四�
java学习-hibernate资料
需积分: 0 61 浏览量
更新于2008-09-26
收藏 635KB RAR 举报
《Java学习:深入Hibernate3》
Hibernate,作为一个强大的对象关系映射(ORM)框架,是Java开发者必备的技能之一。Hibernate3是其历史版本中的一个重要里程碑,它在Hibernate2的基础上进行了许多改进和优化,使得数据库操作更为便捷,提高了开发效率。本资料集将围绕Hibernate3的核心概念、配置、实体映射、查询语言以及实战应用进行详细解析。
1. **核心概念**:Hibernate3主要基于Java的注解或XML配置文件,实现Java对象与数据库表之间的映射。实体类代表数据库表,实体类的属性对应表的字段。Hibernate通过Session接口管理对象的生命周期,包括持久化、加载、更新和删除等操作。
2. **配置**:在Hibernate3中,配置文件通常为`hibernate.cfg.xml`,其中包含了JDBC连接信息、方言设置、缓存策略等关键配置。同时,每个实体类可以通过注解或者XML文件(如`hibernate-mapping.xml`)进行映射配置。
3. **实体映射**:使用`@Entity`注解标记实体类,`@Table`指定对应的数据库表,`@Id`定义主键,`@Column`定义列。此外,还可以使用`@OneToMany`、`@ManyToOne`、`@OneToOne`、`@ManyToMany`来处理对象关系。
4. **HQL(Hibernate Query Language)**:Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近Java的编程风格。它可以进行条件查询、排序、分组等操作,并支持动态查询和关联查询。
5. **Criteria查询**:另一种强大的查询方式,通过构建Criteria对象,可以动态构造查询条件,灵活性高。
6. **事务管理**:Hibernate3提供了基于JTA和JDBC的事务管理机制,通过Session的beginTransaction、commit和rollback方法控制事务的开始、提交和回滚。
7. **缓存策略**:包括一级缓存(Session级缓存)和二级缓存(SessionFactory级缓存)。一级缓存默认开启,对同一个Session内的对象进行操作时,无需重复访问数据库;二级缓存则可跨Session共享数据,提高性能。
8. **实体状态管理**:Hibernate3将对象分为瞬时态、持久态、托管态和脱管态四种状态,理解这些状态有助于更好地掌握对象的生命周期。
9. **性能优化**:包括延迟加载(Lazy Loading)、批处理(Batch Processing)、预加载(Eager Loading)、缓存策略调整等手段,可有效提升应用程序的运行效率。
10. **实战应用**:结合实际项目,了解如何将Hibernate3应用于Web开发,如Spring+Hibernate整合,以及在MVC架构中的应用。
通过深入学习Hibernate3,开发者不仅可以掌握数据库操作的便利性,还能为后续的Hibernate4和Hibernate5升级打下坚实基础。本资料集将助你在Java ORM领域更进一步,熟练运用Hibernate3解决实际问题。
zhoutaobj
- 粉丝: 0
- 资源: 8
最新资源
- 连接ESP32手表来做验证20241223-140953.pcapng
- 小偏差线性化模型,航空发动机线性化,非线性系统线性化,求解线性系统具体参数,最小二乘拟合 MATLAB Simulink 航空发动机,非线性,线性,非线性系统,线性系统,最小二乘,拟合,小偏差,系统辨
- 好用的Linux终端管理工具,支持自定义多行脚本命令,密码保存、断链续接,SFTP等功能
- Qt源码ModbusTCP 主机客户端通信程序 基于QT5 QWidget, 实现ModbusTCP 主机客户端通信,支持以下功能: 1、支持断线重连 2、通过INI文件配置自定义服务器I
- Linux下TurboVNC+VirtualGL 使用GPU卡vglrun glxgears
- QGroundControl-installer.exe
- Linux下TurboVNC+VirtualGL 使用GPU卡vglrun glxgears
- 台球检测40-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 颜色拾取器 for Windows
- 数字按键3.2考试代码