星期二, 十二月 29, 2015 21:20:00
使用注解的方式进行操作hibernate定义实体
步骤:
1.引入hibernate-annotations.jar
"hibernate-commons-annotations.jar"
"ejb3-persistence.jar"
2.建一个Teacher类
3.在数据库中建teacher表
create table teacher(id int primary key,name varchar(20),title varchar(20));
4.在Teacher加入注解:@Entity //主键@Id
/*1.实体类(使用annotation进行实现,告诉hibernate是实体类,
* 不需要再建立Teacher.hbm.xml文件进行映射)
* 2.hibernate.cfg.xml进行配置即可
* 3.建立一个TeacherTest
*/
5.在hibernate.cfg.xml进行配置
<mapping class="com.zhuhw.hibernate.Teacher"/>
6.建立TeacherTest类
//因为使用的annotation,所以Configuration要使用AnnotationConfiguration
Configuration cf = new AnnotationConfiguration();
运行即可
代码案例:
package com.zhuhw.hibernate; import javax.persistence.Entity; import javax.persistence.Id; /*1.实体类(使用annotation进行实现,告诉hibernate是实体类, * 不需要再建立Teacher.hbm.xml文件进行映射) * 2.hibernate.cfg.xml进行配置即可 * 3.建立一个TeacherTest */ @Entity public class Teacher { private int id; private String name; private String title; //主键 @Id public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
<?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> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- JDBC connection pool (use the built-in) --> <!-- <property name="connection.pool_size">1</property> --> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <!-- <property name="hbm2ddl.auto">update</property>--> <!-- hibernate去哪里找这个配置文件 --> <mapping resource="com/zhuhw/hibernate/Student.hbm.xml"/> <mapping class="com.zhuhw.hibernate.Teacher"/> </session-factory> </hibernate-configuration>
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; import com.zhuhw.hibernate.Student; import com.zhuhw.hibernate.Teacher; public class TeacherTest { public static void main(String[] args){ Teacher t = new Teacher(); t.setId(2); t.setName("yuzhou"); t.setTitle("aaaa"); //因为使用的annotation,所以Configuration要使用AnnotationConfiguration Configuration cf = new AnnotationConfiguration(); SessionFactory sf = cf.configure().buildSessionFactory(); Session session = sf.openSession(); //在hibernate中执行操作要在一个事务里面 session.beginTransaction(); session.save(t); session.getTransaction().commit(); session.close(); sf.close(); } }
运行结果:
Hibernate: insert into Teacher (name, title, id) values (?, ?, ?)
总结:
1.请务必建立自己动手查一手文档的能力
2.重要的是
1.要建立了自己动手查一手文档的信心
2.还有建立自己动手查一手文档的习惯
3.主动学习,放弃被动接受灌输的习惯
星期二, 十二月 29, 2015 22:10:48
相关推荐
3. 实体类与表映射:理解Hibernate的注解或XML方式来定义对象与数据库表之间的映射关系,例如@Entity、@Table、@Column等注解的使用。 4. SessionFactory与Session:掌握SessionFactory的创建,它是整个应用程序的...
在day02的内容中,我们可能会学习如何创建实体类,编写对应的映射文件,以及如何使用注解(@Entity, @Table等)进行映射,这些将帮助我们理解对象和表之间的映射规则。 此外,Session是Hibernate的主要工作接口,它是...
3.1 Hibernate注解:使用@Entity、@Table、@Column等注解定义实体类,使得Java类与数据库表关联。 3.2 主键生成策略:通过@Id和@GeneratedValue注解设置主键生成策略,如.AUTO、.SEQUENCE、.TABLE等。 3.3 关联...
"传智博客Hibernate框架2016版笔记资料day01~02" 提供了两天的课程内容,通常会包含Hibernate的安装配置、对象关系映射(ORM)原理、实体类与表的映射、配置文件详解、基本的CRUD操作、查询语言(HQL)的使用、 ...
3. **实体类定义**:创建与数据库表对应的Java实体类,使用注解或XML文件描述实体类与数据库表的映射关系。 4. **SessionFactory初始化**:通过`Configuration`类读取配置文件,创建`SessionFactory`实例,它是整个...
### Hibernate常用注解详解 #### 一、JPA与Hibernate注解基础 JPA(Java Persistence API)是一种标准规范,用于实现对象关系映射(ORM),允许...理解和熟练掌握这些注解对于使用Hibernate进行持久化操作至关重要。
1. `@Entity`:此注解标记一个类作为Hibernate管理的实体Bean。例如: ```java @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId...
JPA允许使用POJO(Plain Old Java Object)作为实体对象,并通过注解的方式进行数据映射,极大地简化了持久层的开发工作。本文档主要介绍了EJB3.0中的JPA实体注解规范及其在Hibernate中的扩展用法。 #### 二、EJB...
在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。本文将详细解析Hibernate中的注解使用,帮助理解如何通过注解简化数据库操作。 首先,实体Bean是...
- 映射文件(XML格式)或注解的使用,定义实体间的关联关系。 - 数据库表结构,展示了一对多和多对多关系在数据库层面是如何表示的。 - 测试类,用于演示如何通过Hibernate进行关联查询、插入、更新和删除操作。 - ...
3. **实体类与映射文件**:介绍如何定义Java实体类,并使用Hibernate的注解或XML映射文件将其与数据库表关联。 4. **Session与Transaction**:学习Hibernate的Session接口,它是操作数据库的主要接口,同时理解事务...
在实际项目中,我们还会学习到如何通过配置XML或使用注解来定义实体类和数据库表之间的映射,以及如何使用SessionFactory和Session对象进行数据库操作。SessionFactory是一个线程安全的工厂类,用于创建Session对象...
9. **实体生命周期**:Hibernate定义了持久化对象的生命周期状态,包括临时态、瞬时态、持久态和脱管态,理解这些状态有助于正确处理对象。 10. **性能优化**:笔记中可能涉及查询优化、批处理、缓存策略等,以提升...
### Hibernate注解详解 ...以上是对Hibernate注解的基础介绍及其使用示例,这些注解可以帮助开发者更方便地管理和操作数据库表结构及数据。在实际开发中,合理运用这些注解能够有效提升开发效率和程序质量。
【Hibernate注解详解】 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在...在实际应用中,开发者可以根据需求灵活组合和使用这些注解,以实现各种复杂的数据库映射和操作。
如果项目使用了JPA规范,那么可以在实体类中使用注解来定义关联。例如,`@ManyToOne`、`@OneToMany`、`@OneToOne`和`@ManyToMany`等。然后通过`EntityManager`或`EntityManagerFactory`执行JPQL(Java Persistence ...
- 查询数据时,可以使用Session的`load()`或`get()`方法获取实体,也可以使用HQL(Hibernate Query Language)或Criteria API进行复杂查询。 4. **级联操作**: - Hibernate支持级联操作,如`CascadeType.ALL`,...
此外,还将讲解实体类和映射文件的定义,例如使用Hibernate注解来声明实体类和属性,以及编写对应的.hbm.xml映射文件。 第二天的内容通常涉及到对象关系映射的深入探讨,包括一对一、一对多、多对一和多对多关系的...
Hibernate提供了HQL(Hibernate Query Language)和Criteria API,它们允许开发者用面向对象的方式进行数据库查询。HQL类似于SQL,但更加面向对象;Criteria API则提供了一种更安全、类型安全的查询方式,避免了SQL...