`
norce
  • 浏览: 6587 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

hibernate 利用注解生成数据库表以及插入数据

阅读更多

由本人在学习中总结出来,若有不妥还望大家留下意见呀~
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注解

    * 9.increnment 插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,所以在多个实例运行的时候不能使用这个方法。 * 例:@GeneratedValue(generator = ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    Hibernate+中文文档

    5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings...

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    支持多数据库的ORM框架ef-orm.zip

    最大限度利用编译器减少编码错误的可能性 API设计和元数据模型(meta-model)的使用,使得常规的数据库查询都可以直接通过Criteria API来完成,无需使用任何JPQL/HQL/SQL。可以让避免用户犯一些语法、拼写等错误。...

    Hibernate中文详细学习文档

    5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings...

    Hibernate 中文 html 帮助文档

    5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) ...

    hibernate 体系结构与配置 参考文档(html)

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

    最全Hibernate 参考文档

    5.4.2. 使用 JDK 5.0 的注解(Annotation) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合...

    Hibernate教程

    Hibernate参考文档 目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第...

    activiti工作流oa项目

    activiti工作流oa项目,项目完整,包含前台和后台,是maven结构的java ...完整的项目资源,采用了hibernate的注解功能可以直接生成数据库表,需要更改jdbc.properties就可以运行项目了.不过需要个人手动插入数据库相应数据

    hibernate3.04中文文档.chm

    符合Java习惯的关系数据库持久化 目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 ...

    Hibernate3+中文参考文档

    5.4.2. 使用 JDK 5.0 的注解(Annotation) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) 6.2.1. 集合外键(Collection foreign keys) 6.2.2. 集合...

    Hibernate参考文档

    5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings ) ...

    hibernate 框架详解

    触发器实现的主键生成器(Primary keys assigned by triggers) 6.1.5. composite-id 6.1.6. 鉴别器(discriminator) 6.1.7. 版本(version)(可选) 6.1.8. timestamp (optional) 6.1.9. property 6.1.10. ...

    基于JavaWEB+SSM+mysql框架构建的在线商城系统源码+数据库+项目说明(课程设计).zip

    * [小小商城项目概述 —— 需求分析、数据表设计、原型设计、多层结构设计、项目规划][4] * [SSM开发 | 合理配置 mybatis-generator,隔离机器生成代码和额外增加代码][5] * [SSM开发 | 开发自定义插件,使 ...

    BOS 技术整理

    @Temporal 控制数据表保存日期哪个部分(日期、时间、日期时间) @OneToMany(mappedBy 相当于 inverse ) @ManyToOne 结合 @JoinColumn 添加一列外键 @ManyToMany 一方写 mappedBy 放弃外键维护、另一方 @...

Global site tag (gtag.js) - Google Analytics