`

day_02使用注解的方式进行操作hibernate定义实体

阅读更多

星期二, 十二月 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

 

0
0
分享到:
评论

相关推荐

    黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02

    3. 实体类与表映射:理解Hibernate的注解或XML方式来定义对象与数据库表之间的映射关系,例如@Entity、@Table、@Column等注解的使用。 4. SessionFactory与Session:掌握SessionFactory的创建,它是整个应用程序的...

    Hibernate-day02

    在day02的内容中,我们可能会学习如何创建实体类,编写对应的映射文件,以及如何使用注解(@Entity, @Table等)进行映射,这些将帮助我们理解对象和表之间的映射规则。 此外,Session是Hibernate的主要工作接口,它是...

    黑马程序员_hibernate框架开发2016版讲义和笔记资料_day1_day2_day3_day4

    3.1 Hibernate注解:使用@Entity、@Table、@Column等注解定义实体类,使得Java类与数据库表关联。 3.2 主键生成策略:通过@Id和@GeneratedValue注解设置主键生成策略,如.AUTO、.SEQUENCE、.TABLE等。 3.3 关联...

    传智博客Hibernate框架2016版笔记资料day01~02

    "传智博客Hibernate框架2016版笔记资料day01~02" 提供了两天的课程内容,通常会包含Hibernate的安装配置、对象关系映射(ORM)原理、实体类与表的映射、配置文件详解、基本的CRUD操作、查询语言(HQL)的使用、 ...

    Hibernate_day01.zip

    3. **实体类定义**:创建与数据库表对应的Java实体类,使用注解或XML文件描述实体类与数据库表的映射关系。 4. **SessionFactory初始化**:通过`Configuration`类读取配置文件,创建`SessionFactory`实例,它是整个...

    hibernate常用注解

    ### Hibernate常用注解详解 #### 一、JPA与Hibernate注解基础 JPA(Java Persistence API)是一种标准规范,用于实现对象关系映射(ORM),允许...理解和熟练掌握这些注解对于使用Hibernate进行持久化操作至关重要。

    Hibernate注解、注释大全

    1. `@Entity`:此注解标记一个类作为Hibernate管理的实体Bean。例如: ```java @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId...

    EJB3.0-JPA实体的注解规范以及Hibernate特有的扩展

    JPA允许使用POJO(Plain Old Java Object)作为实体对象,并通过注解的方式进行数据映射,极大地简化了持久层的开发工作。本文档主要介绍了EJB3.0中的JPA实体注解规范及其在Hibernate中的扩展用法。 #### 二、EJB...

    Hibernate注解详解(超全面不解释).pdf

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。本文将详细解析Hibernate中的注解使用,帮助理解如何通过注解简化数据库操作。 首先,实体Bean是...

    Hibernate_day03.zip

    - 映射文件(XML格式)或注解的使用,定义实体间的关联关系。 - 数据库表结构,展示了一对多和多对多关系在数据库层面是如何表示的。 - 测试类,用于演示如何通过Hibernate进行关联查询、插入、更新和删除操作。 - ...

    Hibernate_day01资料

    3. **实体类与映射文件**:介绍如何定义Java实体类,并使用Hibernate的注解或XML映射文件将其与数据库表关联。 4. **Session与Transaction**:学习Hibernate的Session接口,它是操作数据库的主要接口,同时理解事务...

    Hibernate_day04.zip

    在实际项目中,我们还会学习到如何通过配置XML或使用注解来定义实体类和数据库表之间的映射,以及如何使用SessionFactory和Session对象进行数据库操作。SessionFactory是一个线程安全的工厂类,用于创建Session对象...

    传智播客2016hibernate框架学习笔记

    9. **实体生命周期**:Hibernate定义了持久化对象的生命周期状态,包括临时态、瞬时态、持久态和脱管态,理解这些状态有助于正确处理对象。 10. **性能优化**:笔记中可能涉及查询优化、批处理、缓存策略等,以提升...

    Hibernate注解详解.pdf

    ### Hibernate注解详解 ...以上是对Hibernate注解的基础介绍及其使用示例,这些注解可以帮助开发者更方便地管理和操作数据库表结构及数据。在实际开发中,合理运用这些注解能够有效提升开发效率和程序质量。

    Hibernate注解大全收藏

    【Hibernate注解详解】 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在...在实际应用中,开发者可以根据需求灵活组合和使用这些注解,以实现各种复杂的数据库映射和操作。

    day36 04-Hibernate检索方式:多表连接查询

    如果项目使用了JPA规范,那么可以在实体类中使用注解来定义关联。例如,`@ManyToOne`、`@OneToMany`、`@OneToOne`和`@ManyToMany`等。然后通过`EntityManager`或`EntityManagerFactory`执行JPQL(Java Persistence ...

    hibernate一对多项目

    - 查询数据时,可以使用Session的`load()`或`get()`方法获取实体,也可以使用HQL(Hibernate Query Language)或Criteria API进行复杂查询。 4. **级联操作**: - Hibernate支持级联操作,如`CascadeType.ALL`,...

    黑马程序员hibernate框架开发2016版视频day1-day4源码笔记

    此外,还将讲解实体类和映射文件的定义,例如使用Hibernate注解来声明实体类和属性,以及编写对应的.hbm.xml映射文件。 第二天的内容通常涉及到对象关系映射的深入探讨,包括一对一、一对多、多对一和多对多关系的...

    韩顺平hibernate3.3视频教程源码4-5day

    Hibernate提供了HQL(Hibernate Query Language)和Criteria API,它们允许开发者用面向对象的方式进行数据库查询。HQL类似于SQL,但更加面向对象;Criteria API则提供了一种更安全、类型安全的查询方式,避免了SQL...

Global site tag (gtag.js) - Google Analytics