Author:ZhangGuozhong
Date:2007-5-12
1.为什么要使用Hibernate?
有对比才有问题,才会看出原因?
在以前所用的JDBC数据库方面时,我们会发现:
1).在业务逻辑中混合JDBC..即操作大量的sql语句.
2).数据库迁移或者改变时,就要修改大量的代码.
3).当底层改变时,也须要修改大量的程序.
4).在调试时,工作量也很大.
基于以上四点不难看出,问题就在于耦合程度高.而Hibernate的出现,也就是在于提供一个持久化层,用来解耦!
2.持久化层(对象---关系)
其实写持久化层,也就是在写持久化类,建立对象关系映射(ORM映射).
Hibernate让普通的Java对象变成持久化类。一个持久化类很像JavaBean,属性通过get和set方法访问,对外隐藏了内部实现的细节.(初次理解,就可当为实体Bean来使用).
Hibernate对属性使用的类型不加限制。所有的Java JDK类型和原始类型(比如String,char和float)都可以被映射,也包括Java集合框架中的类。可以把它们映射成为值,值集合,或者与其他实体相关联。id是一个特殊的属性,代表了这个类的数据库标识符(主键),它对于类似于Cat这样的实体是必需的(详见后面XML配置)。
持久化类不需要实现什么特别的接口,也不需要从一个特别的持久化根类继承下来。Hibernate也不需要使用任何编译器处理,比如字节码增强操作,它独立的使用Java反射机制和运行时类增强(通过CGLIB)。所以,在Hibernate中,持久化类的类不需要任何前提条件,我们就可以把它射成为数据库表(详见XML)。
那么到底如何在配置文件XML中配置中,想必都期待己久了吧,呵,我们慢慢来...
XML配置实体与数据库的映射(ORM.xml):
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="net.sf.hibernate.examples.quickstart.Cat" table="CAT">
<id name="id" type="string" unsaved-value="null" >
<column name="CAT_ID" sql-type="char(32)" not-null="true"/>
<generator class="increment"/>
</id>
<property name="name">
<column name="NAME" sql-type="varchar(16)" not-null="true"/>
</property>
<property name="sex"/>
<property name="weight"/>
</class>
</hibernate-mapping>
说明:
XML声明不必去研究,我们一起来看hibernate-mapping之间的内容,大家知道,我们要做的是关于实体与数据库的映射,那么就必然有一个实体类与数据库中的某一张表去映射,这样才会一一对映.对吧?所以在class标记中name属性为所要映射的实体类名,table为所要映射的数据库表
名....go on
这样一来,我们再看class标记下面的内容:
1).首选是id标记,id也就是上面所说的"id是一个特殊的属性,代表这个类中的主键id---即实体中的主键id,clolumn的name属性为数据库中字段的名.亦可写成<id name="id" column="CAT_ID" type="string"> 即将实体与数据库对映字段写入一个标记中.
2).generator标记:
Hiernate附带了几种不同的标识符生成器,用于不同的场合(包括数据库本地的顺序(sequence)生成器和hi/lo高低位标识模式)。我们在这里使用increment生成器,并指定CAT表的CAT_ID字段(作为表的主键)存放生成的标识值(知道就可以了,不用多研究)。
3).接下来就是要对数据库中其它字段与实体进行映射:
property标记.可以如上写,亦可写成简单模式:<property name="name" column="NAME" type="string" not-null="true"/>其它的对应sex,weight...
2.
WEB服务器配置:
1.建立web的Hibernate工程,还要导入相应的.jar包,如果用JCreater练手,那么就要手动导入,类似于导servletApi.jar包一样,如果没有,呵,找老师或者找同学要一下吧...
2.连接配置文件:hibernate.properties文件,将hibernate.properties文件存放到web工程WEB-INF\classes\根目录下
1).如果是桥连,将下面文件写入到hibernate.properties里.(.properties为文件后缀名)
hibernate.dialect=net.sf.hibernate.dialect.SQLServerDialect
hibernate.connection.driver_class=sun.jdbc.odbc.JdbcOdbcDriver
hibernate.connection.url=jdbc:odbc:数据源名
hibernate.connection.username=sa
hibernate.connection.password=
hibernate.show_sql=truehibernate.properties
2).如果是直连,同上,改变内容
hibernate.dialect=net.sf.hibernate.dialect.SQLServerDialect
hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver
hibernate.connection.url=jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=数据库名
hibernate.connection.username=sa
hibernate.connection.password=
hibernate.show_sql=true
3.实体与库表(ORM.xml)文件放在字节码文件下:即java源文件经过编辑之后,生成的.class所在包中,并且要配置到当前所映射的实体包下的.class所在包中.
分享到:
相关推荐
本资源"零基础学Java[1].Web开发:JSP.Servlet.Struts.Spring.Hibernate.Ajax(PPT).rar"提供了一套完整的入门教材,涵盖了从基础到进阶的关键知识点。 首先,我们从基础开始,讲解【HTML相关技术基础知识】。HTML...
3. `src/main/webapp`:Web应用资源目录,包括静态资源(如HTML、CSS、JavaScript)、Web-INF下的`web.xml`部署描述符,以及视图解析器相关目录。 4. `pom.xml`:Maven项目配置文件,定义了项目依赖,包括SpringWeb...
4. **CORS跨域处理**:跨域资源共享(CORS)是一种W3C标准,允许浏览器向不同源的服务器发送Ajax请求。在SpringMVC中,可以通过添加过滤器或者使用`@CrossOrigin`注解来启用CORS,以支持前端跨域请求。 5. **...
它将多个类文件、资源文件以及其他元数据打包成一个单一的可执行文件,方便部署和运行。Java的类加载器可以自动识别并加载jar包中的类,使得开发者可以轻松地引用和使用第三方库。在开发环境中,通常会使用构建工具...
- **对JCA的支持**:解释了Hibernate如何支持Java Connector Architecture (JCA),以实现与外部资源的集成。 - **上下文相关的会话(Contextual Session)**:介绍了如何利用Spring等框架提供的上下文来管理Session...
总的来说,SMART系统的设计与开发涉及了Java Web开发的多个层面,从选择和使用合适的技术栈到构建高效稳定的系统框架,再到编写详细的设计文档和共享公共资源。学习并掌握这些知识点对于提升Java Web开发技能,尤其...
7. **部署**:最后,项目打包成WAR文件,部署到Web服务器,如Tomcat或Jetty,即可运行。 在压缩包文件中,`index.html`可能是项目的首页,`WEB-INF`目录存放了Web应用的配置文件和其他非公开资源,`order`可能是一...
本文将介绍如何基于Spring、Hibernate和Flex这三个开源框架整合出一个新的Web应用开发模型,用于构建教学资源库系统。 #### 二、系统技术架构设计 ##### 2.1 数据库设计 系统采用了MySQL作为数据库管理系统。...
"快来拍砖"是一种网络用语,意味着欢迎读者提出批评和建议,表明这个资料可能是社区共享的学习资源,期待大家的反馈。 从标签“ssh”来看,这是SSH(Struts、Spring、Hibernate)框架的简称,进一步确认了资料内容...
开发者可以在这个结构下找到web.xml(部署描述符)、Spring的配置文件(如applicationContext.xml或dispatcher-servlet.xml)、Hibernate的配置文件(如hibernate.cfg.xml)以及实体类、DAO(数据访问对象)、...
4. **部署文件**:如WEB-INF目录下的web.xml,定义了Servlet容器的配置。 通过对这些文件的分析和理解,开发者可以深入学习和掌握Struts、Hibernate、Spring的整合使用,为构建自己的企业级应用打下坚实的基础。
一、Java Web基础 Java Web开发主要基于Servlet、JSP(JavaServer Pages)和JavaBean等技术。Servlet是Java定义的一种服务器端程序,用于扩展Web服务器的功能;JSP则是一种动态网页技术,允许在HTML中嵌入Java代码...
9. **部署与运行**:项目完成后,我们需要将所有资源打包成WAR(Web Application Archive)文件,然后部署到Tomcat、Jetty等Java Web服务器上进行运行。 10. **测试与优化**:最后,对网站进行功能测试、性能测试和...
《JAVA WEB程序开发范例宝典4-10章源代码》是一份涵盖JAVA WEB开发重要实例的资源集合,主要用于帮助开发者深入理解并实践JAVA在Web应用中的运用。由于文件大小的限制,这个压缩包包含了第4至10章的源代码,未能一并...
Java开发中,jar(Java Archive)包是Java平台特有的库文件格式,用于打包类文件、资源文件等,便于代码的组织、复用和部署。在给定的标题和描述中,提到了几个关键的jar包,它们分别是Spring、Struts、Hibernate、...
`jar`文件是一种特殊格式的归档文件,它包含了多个Java类文件、资源文件以及元数据,便于代码的分发、部署和运行。本篇文章将详细讲解`jar`包在Web开发中的作用、常见用途以及如何使用它们。 一、`jar`包的基本概念...
虽然"新建文件夹"并未明确指出包含文件上传功能,但在某些学生管理系统中,可能会涉及到学生的作业提交或者资源共享,这需要用到文件上传下载功能。 8. **前端技术**: - HTML/CSS/JavaScript:构建用户界面,...
**标题解析:** "reslet2.0+spring3.0+hibernate3.3框架集成" 这个...总的来说,这个项目结合了Reslet的RESTful优势、Spring的全面功能和Hibernate的ORM便利,为Java Web开发提供了一种不同于传统SSH框架的解决方案。
本项目是针对校园内二手商品交易需求而设计的一款系统,采用Java编程语言进行开发,旨在提供一个便捷、安全的线上交易平台,促进学生之间的资源共享和交流。系统包括源代码、部署视频以及数据库等关键组成部分,为...
【标题】"hibernate-c3p0-4.3.0.Beta5.zip" 提供的是Hibernate ORM框架与C3P0数据源的一个特定版本的集成。Hibernate是Java领域中广泛使用的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作...