`

Hibernate 注解和配置文件由ORM框架连接库

阅读更多
Hibernate 注解和配置文件由ORM框架连接库



xml优点
 不需要改变和重新编译代码,就可以灵活配置
xml缺点:
◆ 描述符多,不容易记忆,掌握。要深入了解还得看DTD文件
◆ 无法做自动校验,需要人工查找
◆ 读取和解析xml配置要消耗一定时间,导致应用启动慢,不便于测试和维护
◆ 当系统很大时,大量的xml文件难以管理
◆ 运行中保存xml配置需要消耗额外的内存
◆ 在O/R Mapping的时候需要在java文件和xml配置文件之间交替,增大了工作量 
◆ 标签语义不清,需要大量试验才能掌握。
◆ 细节太多。有时没规律可循,需要大量试验才能掌握。

annotation优点
◆ 描述符减少。以前在xml配置中往往需要描述java属性的类型,关系等等。而元数
据本身就是java语言,从而省略了大量的描述符
◆ 编译期校验。错误的批注在编译期间就会报错。
◆ 元数据批注在java代码中,避免了额外的文件维护工作
◆ 元数据被编译成java bytecode,消耗的内存少,读取也很快,利于测试和维护
Annotation缺点
没法灵活部署
语义有的不是很清楚

Annotation放在field上,还是放在还是放在method上?
推荐放在method上,这样更灵活
也有可能没有成员变量,但是有getter/setter,
     比如一个订单求总价
Getter/setter和成员变量的名字最好一致;
Annotation要么全加在field上,要么全加在method上






1.通过配置 bean.hbm.xml
a.hibernate.cfg.xml文件里面

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/beichuang</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123456</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="connection.autocommit">true</property>
		<property name="show_sql">true</property>
		
    <mapping resource="com/chuanxi/training/bean/Team.hbm.xml"></mapping>
    <mapping resource="com/chuanxi/training/bean/Student.hbm.xml"></mapping>
    <mapping resource="com/chuanxi/training/bean/Admin.hbm.xml"></mapping>
    <mapping resource="com/chuanxi/training/bean/Log.hbm.xml"></mapping>
  </session-factory>
</hibernate-configuration>

b.team.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.chuanxi.training.bean">
    <class name="Team" table="team">
         <id name="id" column="team_id">
             <generator class="identity"/>
         </id>
         <property name="name" column="name"></property>
         <property name="leader" column="leader"></property>
         <property name="slogan" column="slogan"></property>
         <set name="members" inverse="true" lazy="false">
             <key>
                <column name="team_id"/>
             </key>
             <one-to-many class="com.chuanxi.training.bean.Student"/> 
         </set>
    </class>
</hibernate-mapping>



2.Hibernate的注解

a.hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/beichuang</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123456</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="connection.autocommit">true</property>
		<property name="show_sql">true</property>
		
    <mapping class="com.org.momo.bean.Team"></mapping>
    <mapping class="com.org.momo.bean.Student"></mapping>
    <mapping class="com.org.momo.bean.Log"></mapping>
    <mapping class="com.org.momo.bean.Admin"></mapping>
  </session-factory>
</hibernate-configuration>


b.team.java
package com.org.momo.bean;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;



@Entity
@Table(name="team")
public class Team {

	@Id
	@Column(name="team_id")
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Integer id;
	@Column(name="name")
	private String name;
	@Column(name="leader")
	private String leader;
	@Column(name="slogan")
	private String slogan;
	
	@OneToMany(mappedBy="team",fetch=FetchType.EAGER)
	private Set<Student> members;
	
	public Team() {
		
	}
	
	public Team(String name, String leader, String slogan) {
		this.name = name;
		this.leader = leader;
		this.slogan = slogan;
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getLeader() {
		return leader;
	}
	public void setLeader(String leader) {
		this.leader = leader;
	}
	public String getSlogan() {
		return slogan;
	}
	public void setSlogan(String slogan) {
		this.slogan = slogan;
	}
	public Set<Student> getMembers() {
		return members;
	}
	public void setMembers(Set<Student> members) {
		this.members = members;
	}
}



分享到:
评论

相关推荐

    自己动手模仿Hibernate写数据库框架

    博文链接虽然没有提供,但通常这类博客会包含作者在模仿Hibernate过程中的代码示例和实现思路,帮助读者理解如何构建类似功能的框架。 【标签】"源码"和"工具"表明我们将会关注源代码级别的实现,以及这个自定义...

    生成hibernate配置文件和xml的辅助类generate

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过Java对象来操作数据库,而无需直接编写SQL语句。本文将详细介绍如何生成Hibernate配置文件和XML映射文件的辅助类,以及这个过程...

    hibernate框架jar包整合

    - `dom4j.jar`:用于XML处理,因为Hibernate的配置文件和HQL查询是基于XML的。 - `slf4j-api.jar` 和 `slf4j-log4j12.jar`:日志框架接口和实现,用于记录Hibernate的操作日志。 - `commons-collections.jar`:...

    Spring + JPA + Hibernate配置

    Hibernate是JPA的一个实现,它是一个强大的ORM框架,提供了更丰富的功能和更好的性能优化。Hibernate不仅支持JPA规范,还提供了一套自己的API,包括 Criteria 查询、HQL(Hibernate查询语言)等,使得数据操作更加...

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    SpringMVC、spring、hibernate简单整合实例(注解开发,附开发流程)

    Hibernate作为ORM框架,消除了Java与数据库之间的直接交互,将对象与数据库表进行映射。使用@Entity注解定义实体类,@Table指定对应的数据库表,@Id定义主键,@GeneratedValue自动生成主键值。通过Session和Criteria...

    hibernate的资料文件下载

    1. **对象关系映射**: Hibernate通过XML配置文件或注解来定义对象与数据库表之间的映射关系,使得我们可以直接操作对象,而无需编写SQL语句。 2. **Session接口**: Hibernate的核心接口是Session,它提供了与数据库...

    Hibernate配置

    2. **Maven或Gradle**:选择一个构建工具管理项目依赖,包括Hibernate库和其他必要的库。 3. **数据库驱动**:根据使用的数据库(如MySQL、Oracle等),添加对应的数据库驱动到项目中。 **三、配置Hibernate** 1. *...

    spring+hibernate+webwork相关配置

    标题 "spring+hibernate+webwork相关配置" 指的是一个集成开发环境的配置,其中涵盖了三个关键的技术框架:Spring、Hibernate和WebWork。这些框架在Java Web开发中非常常见,主要用于实现依赖注入、持久化管理和MVC...

    hibernate同时配置多个数据库连接

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在某些复杂的应用场景下,我们可能需要同时连接并操作多个不同的数据库,例如,一个用于存储主业务...

    hibernet支持xml配置文件跳转

    在Java的持久化框架Hibernate中,XML配置文件是至关重要的组成部分,它定义了数据库连接、实体映射以及事务管理等核心设置。标题“hibernate支持xml配置文件跳转”指出,Hibernate允许开发者直接从代码中跳转到XML...

    Spring整合Hibernate案例

    - **配置SessionFactoryBean**:将DataSource与Hibernate配置文件链接起来,并设置其他属性如缓存策略、实体扫描路径等。 - **定义SessionFactory的Bean**:在Spring配置文件中声明SessionFactory Bean,方便其他...

    第25,26讲 --搭建和配置Spring与Hibernate整合的环境

    Hibernate是一个流行的ORM框架,它允许开发者用面向对象的方式来处理数据库操作,极大地减少了编写SQL代码的工作量。Hibernate通过实体类、映射文件或注解将Java对象与数据库表进行绑定,实现了对象与关系数据之间的...

    spring+hibernate配置与jar的配置下载

    - **hibernate.cfg.xml**:这是Hibernate的核心配置文件,用于定义Hibernate的工作环境。通常情况下,你需要指定数据库连接信息(如URL、用户名、密码等)、事务管理方式、缓存策略等设置。可以通过以下步骤在项目...

    struts + hibernate + spring 用到的jar包

    Spring允许开发者通过配置文件或注解来管理对象的生命周期和相互依赖关系,降低了代码的耦合度。此外,Spring还提供了事务管理、数据访问抽象、Web MVC框架等功能,可以无缝集成其他框架如Struts和Hibernate。 在...

    Struts和Hibernate分页及查询

    1. **配置Struts和Hibernate**:首先,需要在项目中引入Struts和Hibernate的相关库,配置Struts的struts-config.xml文件和Hibernate的hibernate.cfg.xml配置文件。 2. **定义实体类**:根据数据库中的表结构,创建...

    用Hibernate框架+jtds链接数据库驱动

    4. **配置SessionFactory**:在Java代码中,通过`Configuration`类加载配置文件,创建`SessionFactory`,它是Hibernate的核心,负责管理会话。 ```java Configuration config = new Configuration().configure(...

    马士兵hibernate学习笔记(原版)

    11. **0/R Mapping框架**:除了Hibernate,还有其他如MyBatis等ORM框架,它们各有特点,了解这些框架可以帮助开发者选择最适合项目的解决方案。 通过这份笔记的学习,读者不仅可以掌握Hibernate的基本用法,还能...

    SSH框架整合原代码

    3. Hibernate框架:Hibernate是一个ORM框架,它简化了Java应用与数据库之间的交互。通过XML映射文件或者注解,Hibernate可以将Java对象自动持久化到关系数据库中,减少了对JDBC的直接操作。在SSH整合中,Hibernate...

Global site tag (gtag.js) - Google Analytics