由本人在学习中总结出来,若有不妥还望大家留下意见呀~
1.java实体类注解
@Entity
@Table(name="Category")
@Id
@GeneratedValue 默认为sql语句中的主键自增长
@ManyToOne(fetch= FetchType.LAZY) //只生成一条sql语句,简单语句合并
在hibernate.cfg.xml中配置实体类
<mapping class="com.sl.entity.Topic" />
若不适用注解,则配置xml文件,如之前所试的stu.hbm.xml <mapping resource=""/>
2.生成table语句
新建一个java类,使其根据注解生成sql语句
//若不是用的注解而是用的xml连接类和表格的,则应为 new Configuration().configure()
SchemaExport se = new SchemaExport(new AnnotationConfiguration().configure());
se.setOutputFile("createTable.sql");
se.create(true, true);
3.生成table数据
private static SessionFactory sf = (new AnnotationConfiguration().configure()).buildSessionFactory();
Session session = sf.openSession();
//开启事务
session.beginTransaction();
。。。。
session.save(c);
session.getTransaction().commit();
session.close();
具体代码实现:
1.java注解实体类
package com.sl.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Msg {
private int id;
private String count;
/**所属主题*/
private Topic topic;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
@ManyToOne
public Topic getTopic() {
return topic;
}
public void setTopic(Topic topic) {
this.topic = topic;
}
}
2.hibernate.cfg.xml文件
<mapping class="com.sl.entity.Category" />
3.生成数据库表的java文件
package test;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class CreateTable {
// private static SessionFactory sf;
public static void main(String[] args) {
SchemaExport se = new SchemaExport(new AnnotationConfiguration().configure());
se.setOutputFile("createTable.sql");
se.create(true, true);
}
}
4.数据插入到数据表
package test;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.sl.entity.Category;
import com.sl.entity.Msg;
import com.sl.entity.Topic;
public class InitTable {
private static SessionFactory sf = (new AnnotationConfiguration().configure()).buildSessionFactory();
public static void main(String[] args) {
Session session = sf.openSession();
//开启事务
session.beginTransaction();
for (int i = 0; i < 10; i++) {
Category c = new Category();
c.setName("bankuai"+i);
session.save(c);
}
for (int i = 0; i < 10; i++) {
Category c = new Category();
c.setId(1);
Topic t = new Topic();
t.setCategory(c);
t.setTitle("theme"+i);
t.setCreateDate(new Date());
session.save(t);
}
for (int i = 0; i < 10; i++) {
Topic t = new Topic();
t.setId(1);
Msg m =new Msg();
m.setTopic(t);
m.setCount("msg"+i);
session.save(m);
}
session.getTransaction().commit();
session.close();
}
}
相关推荐
对于使用Hibernate框架的开发者来说,IDEA的一个强大功能是能够根据数据库表自动生成带有注解的实体类,极大地提高了开发效率。下面将详细介绍如何在IDEA中配置和使用这个功能。 1. **安装Hibernate插件** 首先,...
本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...
在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列对应起来,从而实现了对象关系映射(ORM)。 1. **实体类注解**: - `@Entity`:标记一个Java类为数据库中的一个实体表,相当于传统的...
在配置过程中,勾选"Enable Hibernate Annotations Support"和"hibernate 3.3 Advance Supper Libraries"是为了启用Hibernate注解功能,这是EJB注解的基础。Hibernate 3.3及以上版本支持注解,使得我们可以直接在...
使用Hibernate注解时,主要有以下几个方面的知识点: 1. 映射实体:使用@Entity注解来声明一个Java类作为实体类,这表明该类的实例将被映射到数据库的表中。@Table注解用于指定该实体类映射到数据库中的具体表名。 ...
4. **实体类设计**:实体类是与数据库表对应的Java类,需要使用注解来标注属性与数据库表的对应关系。 5. **CRUD操作**:通过注解,我们可以轻松实现创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete)...
这包括创建、修改和删除表,以及插入和查询数据。这样,你可以在不离开Eclipse环境的情况下完成大部分数据库相关的任务。 总结来说,Eclipse Hibernate Synchronizer插件是一个强大的工具,它增强了Eclipse IDE的...
2. **实体类设计**:根据数据库表结构,创建对应的Java类,通常包含私有属性、getter和setter方法,以及@Entity注解表示这是个持久化类。如果表中有主键,还需添加@Id注解来指定主键字段。 3. **映射文件或注解**:...
在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...
通过配置文件或注解,Hibernate可以将Java对象与数据库表进行映射,实现了数据的透明访问。 在动态数据库进化版中,我们可能涉及到以下几个关键知识点: 1. **动态SQL**:传统的Hibernate使用预定义的HQL...
自定义注解使得代码更加可读,易于维护,并且可以自动化一些常规任务,例如生成数据库表。在本案例中,我们将探讨如何利用自定义注解实现在Java类定义后自动创建对应的数据库表,以适应SQL Server和Oracle这样的关系...
### Hibernate注解配置详解 #### 一、概述 Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互过程。在使用Hibernate的过程中,开发者可以通过注解来实现对象与数据库表之间...
- 可以选择创建XML映射文件(`.hbm.xml`),或者使用Java注解来描述实体类与数据库表之间的映射关系。 - 映射文件中包含字段到列的映射,以及非持久化属性等信息。 4. **SessionFactory和Session** - `...
本篇文章将详细讲解如何利用Hibernate在Java项目中建立数据库连接,以及提供一个实用的应用示例。 一、Hibernate概述 Hibernate是Java领域中流行的ORM框架,它允许开发者使用面向对象的方式来操作数据库,而无需...
在实际开发中,这些注解帮助开发者无需编写大量的SQL语句,即可完成数据模型到数据库表的映射,大大提高了开发效率。通过灵活运用这些注解,可以构建出复杂的数据模型并轻松地与数据库进行交互。同时,Hibernate 4 ...
### Hibernate注解详解 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用程序中实现数据库操作。它通过提供强大的映射工具和服务,将面向对象的数据模型映射到基于SQL的关系数据库中。...
标题“Hibernate基础和入门:新建表和插入表”表明这篇内容将主要围绕Hibernate这一Java持久化框架的基础知识展开,重点讲解如何使用Hibernate创建数据库表以及进行数据插入操作。Hibernate是一个强大的ORM(对象...
5. 高级映射注解:例如@Formula注解允许开发者插入数据库特定的SQL表达式,@SecondaryTable注解用于映射实体到多个表。 6. 缓存注解:@Cacheable注解可以指定实体或集合是可缓存的,以及使用的缓存策略。 7. 其他...
实体生成是Hibernate中的一个重要环节,它允许开发者将数据库表映射为Java类,使得我们可以通过操作对象的方式来处理数据库数据,而无需直接编写SQL语句。本文将深入探讨Hibernate配置以及如何自动生成实体类。 1. ...