`
bzqgo
  • 浏览: 8680 次
社区版块
存档分类
最新评论

通过hibernate实体java文件 立即生成数据库table

 
阅读更多

我们在开发的时候有的时候可能想在创建数据库的实体文件后立即创建数据库表, 已核验实体文件的正确性, 以往可能需要重启项目,并且项目中需要要必要的配置,比较麻烦,并且比较费时,其实可以通过简单的配置即可立即生成数据库表;

样例文件

package secfox.soc.emergency.domain;

import java.util.Date;

import secfox.soc.melon.persistence.BaseDomain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name="T_EMERGENCY")
@NamedQueries({
	//获取所有的数据
	@NamedQuery(name="emergency.findAll", query="select a from Emergency a "),
})
public class Emergency extends  BaseDomain<Long>{
	@Id
	@Column(name="PK")
	@GeneratedValue(generator="GEN_SEQ_ALARM")
   private Long id;
	
	//报告人
	@Column(name="REPORTER")
   private String reporter;
	//联系电话
	@Column(name="PHONE")
   private String phone;
	//传真
	@Column(name="FAX")
   private String fax;
	//电子邮件
	@Column(name="EMAIL")
   private String email;
	//通讯地址
	@Column(name="ADDRESS")
   private String address;
	//应急相应名称
	@Column(name="NAME")
   private String name;
	//发生时间
	@Column(name="OCCTIME")
   private Date occtime;
	//发现时间
	@Column(name="FINDTIME")
   private Date findtime;
	//信息系统说明
	@Column(name="INSTRUCTION")
   private String instruction;
	//信息系统负责部门
	@Column(name="DEPARTMENT")
   private String department;
	//信息系统负责人
	@Column(name="MANAGER")
   private String manager;
	//信息安全事件描述
	@Column(name="DESCRIBtion")
   private String describtion;
	//信息安全事件类型
	@Column(name="TYPE")
   private String type;
	//信息安全事件级别
	@Column(name="LEVEL")
   private String level;
	//初步原因判断
	@Column(name="REASON")
   private String reason;
	//影响范围和严重程度
	@Column(name="EFFECTRANGE")
   private String effectrange;
	//受影响资产
	@Column(name="EFFECTPROPERTY")
   private String effectproperty;
	//已采取措施
	@Column(name="STEP")
   private String step;
	//计划采取措施
	@Column(name="PLANSTEP")
   private String planstep;
	//领导小组意见
	@Column(name="LEADOPTION")
   private String leadoption;
	//总局应急意见
	@Column(name="HEADOPTION")
   private String headoption;
	//省局应急办意见
	@Column(name="SHENGOPTION")
   private String shengoption;
	//信息安全主管意见
	@Column(name="MANAGEOPTION")
   private String manageoption;
	//信息状态
	@Column(name="STATE")
	   private String state;
	//工作流id
	@Column(name="WORKFLOWID")
	private String workflowid;
	
	@ManyToOne(targetEntity = PlanEmergency.class, fetch = FetchType.EAGER, optional = true)
	@JoinColumn(name = "FK_PLAN", nullable = true, unique = false)	
	private PlanEmergency planEmergency;
	 
public String getWorkflowid() {
		return workflowid;
	}
	public void setWorkflowid(String workflowid) {
		this.workflowid = workflowid;
	}
public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
public String getReporter() {
		return reporter;
	}
	public void setReporter(String reporter) {
		this.reporter = reporter;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getFax() {
		return fax;
	}
	public void setFax(String fax) {
		this.fax = fax;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getOcctime() {
		return occtime;
	}
	public void setOcctime(Date occtime) {
		this.occtime = occtime;
	}
	public Date getFindtime() {
		return findtime;
	}
	public void setFindtime(Date findtime) {
		this.findtime = findtime;
	}
	public String getInstruction() {
		return instruction;
	}
	public void setInstruction(String instruction) {
		this.instruction = instruction;
	}
	public String getDepartment() {
		return department;
	}
	public void setDepartment(String department) {
		this.department = department;
	}
	public String getManager() {
		return manager;
	}
	public void setManager(String manager) {
		this.manager = manager;
	}
	 
	public String getDescribtion() {
		return describtion;
	}
	public void setDescribtion(String describtion) {
		this.describtion = describtion;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getLevel() {
		return level;
	}
	public void setLevel(String level) {
		this.level = level;
	}
	public String getReason() {
		return reason;
	}
	public void setReason(String reason) {
		this.reason = reason;
	}
	public String getEffectrange() {
		return effectrange;
	}
	public void setEffectrange(String effectrange) {
		this.effectrange = effectrange;
	}
	public String getEffectproperty() {
		return effectproperty;
	}
	public void setEffectproperty(String effectproperty) {
		this.effectproperty = effectproperty;
	}
	public String getStep() {
		return step;
	}
	public void setStep(String step) {
		this.step = step;
	}
	public String getPlanstep() {
		return planstep;
	}
	public void setPlanstep(String planstep) {
		this.planstep = planstep;
	}
	public String getLeadoption() {
		return leadoption;
	}
	public void setLeadoption(String leadoption) {
		this.leadoption = leadoption;
	}
	public String getHeadoption() {
		return headoption;
	}
	public void setHeadoption(String headoption) {
		this.headoption = headoption;
	}
	public String getShengoption() {
		return shengoption;
	}
	public void setShengoption(String shengoption) {
		this.shengoption = shengoption;
	}
	public String getManageoption() {
		return manageoption;
	}
	public void setManageoption(String manageoption) {
		this.manageoption = manageoption;
	}
	
	public PlanEmergency getPlanEmergency() {
		return planEmergency;
	}
	public void setPlanEmergency(PlanEmergency planEmergency) {
		this.planEmergency = planEmergency;
	}
public Long getId() {
	System.out.println("得到id值:"+id);
	return id;
}
public void setId(Long id) {
	this.id=id;
}
@Override
public boolean equals(Object obj) {
	// TODO Auto-generated method stub
	return false;
}
@Override
public int hashCode() {
	// TODO Auto-generated method stub
	return 0;
}
@Override
public String toString() {
	// TODO Auto-generated method stub
	return "Emergency [id="+id+",reporter="+reporter+"]";
}
}


配置hibernate配置文件

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
	<!--
		?useUnicode=true&characterEncoding=UTF-8设置数据库编码,mysql安装时默认为Latin1
	-->
<hibernate-configuration>
	<session-factory>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
			<property name="connection.url">jdbc:mysql://10.70.177.158:3306/ums</property>
			<property name="connection.username">soc</property>
			<property name="connection.password">soc</property>
			<property name="dialect">org.hibernate.dialect.MySQLDialect</property>		
		<property name="hbm2ddl.auto">update</property>
		<!--是否在控制台显示SQL语句,开发阶段开启,便于调试-->
		<property name="show_sql">true</property>
		<!--是否在控制台格式化显示SQL语句,方便查看-->
		<property name="format_sql">true</property>
		<!--
			<property name="cache.use_second_level_cache">true</property>
			<property name="cache.use_query_cache">true</property> <property
			name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
		-->
			<mapping class="secfox.soc.emergency.domain.Emergency" />
			<mapping class="secfox.soc.emergency.domain.EmergencyApproval" />
			<mapping class="secfox.soc.emergency.domain.EmergencyDispose" />
			<mapping class="secfox.soc.emergency.domain.PlanEmergency" />
			
				
		
		
	</session-factory>
</hibernate-configuration>

对应java执行程序

   
import org.hibernate.cfg.AnnotationConfiguration;  
import org.hibernate.cfg.Configuration;  
  

 
  
public class HibernateAnnotationTest  {  
	public static void main(String[] args) { 
        Configuration cfg = new AnnotationConfiguration().configure("/me/hibernate.cfg.xml");  
        cfg.buildSessionFactory();  
    }  
} 



其实只需要这么简单的配置即可实现,不妨可以试验下!

分享到:
评论

相关推荐

    JAVA通过实体生成数据库表

    在这个场景中,"JAVA通过实体生成数据库表"指的是使用特定的工具或框架,根据预先定义好的Java实体类,自动生成对应的数据库表结构。 首先,我们需要理解什么是实体类。在Java中,实体类通常是对应数据库中的一张表...

    hibernate映射文件生成数据库

    在提供的压缩包`FanxiangShengCheng`中,可能包含了具体的实体类、映射文件以及示例代码,用于演示如何通过Hibernate映射文件生成数据库。案例可能会展示如何配置Hibernate环境,如何编写映射文件,以及如何运行`...

    hibernate利用配置文件反向生成数据库所有配置文件及方法

    本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...

    hibernate自动生成数据库文件

    当需要自动生成数据库文件时,Hibernate提供了一个名为`Hibernate Tools`的扩展,它包含了逆向工程的功能,可以从现有的Java实体类生成数据库模式。 1. **Hibernate Tools**:这是一个用于增强Hibernate功能的工具...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    通过将Java对象模型映射到关系型数据库表上,Hibernate为数据持久化提供了强大的支持,同时保持了代码的简洁性和可维护性。 #### 二、权限与配置 在部署Hibernate之前,必须确保具备适当的权限,并进行正确的配置...

    根据hibernate反向生成数据库的java代码

    "根据Hibernate反向生成数据库的Java代码"这一主题涉及到的主要知识点包括Hibernate的逆向工程、实体类生成、数据库元数据以及Java持久化接口。 1. Hibernate逆向工程: Hibernate的逆向工程工具,也被称为...

    根据数据库表生成实体、hibernate配置文件和实体映射文件

    本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...

    java根据实体类生成Hibernate映射文件

    总的来说,通过编写Java程序自动根据实体类生成Hibernate映射文件,可以提高开发效率,减少手动维护映射文件的工作量。这个过程涉及到Java反射、XML处理以及对Hibernate映射机制的理解,对于深入掌握Java与数据库的...

    Java根据实体创建Mysql数据库表

    Hibernate是一个强大的Java持久化框架,它提供了对JPA(Java Persistence API)的支持,并且可以直接通过配置与数据库进行交互。 1. **配置Hibernate**: - 创建`hibernate.cfg.xml`配置文件,设置数据库连接信息...

    HIBERNATE符合Java习惯的关系数据库持久化

    3. **实体类和表映射**:Hibernate通过`@Entity`注解标识Java类作为数据库表的映射对象。每个字段对应表中的列,可以使用`@Id`定义主键,`@Column`定义列名等。另外,`@Table`注解用于指定表名,`@GeneratedValue`...

    strtus2+Spring+hibernate整合通过实体类生成数据库表

    本文将详细讲解如何通过这三个框架的整合,利用实体类生成数据库表。 Struts2作为MVC(Model-View-Controller)框架,负责处理用户的请求并展示结果。它提供了一种组织应用程序的方式,使得业务逻辑与视图和控制...

    MySQL表自动生成Java实体类

    7. **运行脚本/工具**: 执行这个自动化过程,生成的Java实体类文件将被放置在指定的输出路径下,可以直接引入到Java项目中使用。 通过这样的自动化过程,开发者可以从繁琐的手动编码工作中解脱出来,专注于业务逻辑...

    mysql数据库生成java实体类

    MySQL数据库生成Java实体类是一种常见的开发任务,尤其是在基于Java的后端开发中,它能够极大地提高开发效率。这个小工具的目的是将MySQL数据库中的表结构转换为对应的Java类,这样开发者就不需要手动创建这些表示...

    MyEclipse 2014 使用hibernate3 生成数据库实体类 和 xml映射文件

    本文将深入探讨如何在MyEclipse 2014环境中利用Hibernate 3这一强大的ORM(对象关系映射)框架,生成数据库实体类和XML映射文件。这将帮助开发者有效地将Java对象与数据库表进行绑定,实现数据的透明操作。 首先,...

    hibernate实体生成工具

    **hibernate实体生成工具**是开发者在使用Hibernate框架时常用的一种辅助工具,它能够自动生成与数据库表对应的Java实体类,大大节省了手动编写代码的时间,提高了开发效率。Hibernate是一个强大的对象关系映射(ORM...

    hibernate实体映射文件字段设置默认值

    本文将详细探讨如何通过Hibernate实体映射文件来设置字段的默认值。 #### 实体映射文件的基本结构 首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml &lt;hibernate-mapping&gt; ...

    根据数据库生成实体类的一个工具

    通过使用这些注解,生成的JavaBean类可以直接与Hibernate框架配合,实现对象到数据库的无缝转换。 该工具的模板配置功能意味着用户可以根据需求定制生成的JavaBean样式。这可能包括字段的命名规则、是否生成equals...

    hibernate-符合Java习惯的关系数据库持久化

    3. **实体类和映射文件:** 在Hibernate中,Java类代表数据库中的表,使用注解或XML映射文件定义类与表之间的关系,如@Entity、@Table、@Column等。 4. **Session接口:** Session是Hibernate的主要工作接口,用于...

    Hibernate通过配置文件自动生成表

    本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识点。 **一、Hibernate概述** Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,...

    java根据数据库表或视图创建实体

    6. **注解应用**:在生成的实体类中,可能会使用Java注解(如`@Entity`、`@Table`、`@Column`等)来提供额外的信息,帮助ORM框架更好地理解数据库结构。 7. **自定义配置**:用户可能需要对生成的实体类进行特定的...

Global site tag (gtag.js) - Google Analytics