精华内容
下载资源
问答
  • 使用Hibernate提供的SchemaExport自动生成表结构 1. 在hibernate.cfg.xml文件中添加配置文件映射2. 在单元测试中测试生成表结构public class TestStudents { @Test public void testSchemaExport(){ //创建配置...

    使用Hibernate提供的SchemaExport自动生成表结构

    1. 在hibernate.cfg.xml文件中添加配置文件映射

    这里写图片描述

    2. 在单元测试中测试生成表结构

    public class TestStudents {
        @Test
        public void testSchemaExport(){
            //创建配置对象
            Configuration config = new Configuration().configure();
            //创建服务注册对象
            /*ServiceRegistry serviceRegistry = 
                    new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();*/
            //创建sessionFactory
            //SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
            //创建session对象
            //Session session = sessionFactory.getCurrentSession();
            //创建SchemaExport对象
            SchemaExport export = new SchemaExport(config);
    
            export.create(true,true);
            //第一个true表示生成表结构,第二个true表示输出sql语句
        }
    }

    这里写图片描述

    展开全文
  • hibernate生成数据库表结构大概分为两步,当然也必须先搭好hibernate环境 把hibernate的包与数据库连接包都加到项目中。 第一步:配置文件,hibernate的配置文件,实体的配置文件就不详解了,这讲hibernate的配置...

    hibernate生成数据库表结构大概分为两步,当然也必须先搭好hibernate环境 把hibernate的包与数据库连接包都加到项目中。

    第一步:配置文件,hibernate的配置文件,实体的配置文件就不详解了,这讲hibernate的配置文件hibernate.cfg.xml如下:

    <?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>
     <property name="connection.url">
     	 jdbc:sqlserver://localhost:1433;DatabaseName=zsflow <!--数据库名  -->
     </property>
     <property name="dialect">
     	 org.hibernate.dialect.SQLServerDialect <!--连接数据库方言  -->
     </property>
     <property name="connection.driver_class">
      	 com.microsoft.sqlserver.jdbc.SQLServerDriver <!-- 连接类 -->
     </property> 
     <property name="connection.username">sa</property> <!-- 用户名  -->
     <property name="connection.password">sql,123</property>  <!-- 密码  -->
     <property name="show_sql">true</property>
     <mapping resource="com/gouge/main/bean/BwfConditionCofig.hbm.xml" />  <!-- 加载的hbm文件 -->
     <mapping resource="com/gouge/main/bean/BwfExecType.hbm.xml" />
     <mapping resource="com/gouge/main/bean/BwfReportConfig.hbm.xml" />
    </session-factory>
    </hibernate-configuration> 

    前面的5个property是配置的连接数据库的信息,后面的property是配置的实体类的配置文件如

     <mapping resource="com/gouge/main/bean/BwfConditionCofig.hbm.xml" />

    在这配置了的hbm文件都会生成数据库结构。

    第二步:写个java类,生成表结构。

    import java.io.File;
    
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    
    public class HibernateSchemaExport {
    	static Session session;
    
    	static Configuration config = null;
    	static Transaction tx = null;
    
    	public static void main(String[] args) {
    
    		try {
    			//加载hibernate 配置文件
    			config = new Configuration().configure(new File("resource/hibernate.cfg.xml"));
    			//创建sessionFactory
    			SessionFactory sessionFactory = config.buildSessionFactory();
    			//打开sessionFactory
    			session = sessionFactory.openSession();
    			//开启事物
    			tx = session.beginTransaction();
    			SchemaExport schemaExport = new SchemaExport(config);
    			//创建数据库表结构
    			schemaExport.create(true, true);
    			//提交事物
    			tx.commit();
    		} catch (HibernateException e) {
    			e.printStackTrace();
    			try {
    				tx.rollback();//回滚事物
    			} catch (HibernateException e1) {
    				e1.printStackTrace();
    			}
    		} finally {
    			System.out.println("创建表格成功");
    		}
    	}
    
    }

    执行上面的java类,就会创建好在hibernate.cfg.xml中配置好了的hbm文件的表结构。

    备注:hbm文件的建立与实体的创建在这就不详解了 截图如下:

    hbm文件:


    java实体类:

    展开全文
  • 使用hibernate中的相关配置和方法自动生成数据之间的关系
  • hibernate 自动生成表结构 方法: 在xx.cfg.xml 里面,或者你用spring 配置的文件,需要属性 &lt;property name="hibernate.hbm2ddl.auto" value=""/&gt;    value 值:validate ...

    hibernate 自动生成表结构 方法:

    在xx.cfg.xml 里面,或者你用spring 配置的文件,需要属性

    <property name="hibernate.hbm2ddl.auto" value=""/> 

     

    value 值:validate ,create ,create-drop,update

    create:

    每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

    create-drop :

    每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

    update:

    最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。

    validate :

    每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

     

    再说点“废话”:

    当我们把hibernate.hbm2ddl.auto=create时hibernate先用hbm2ddl来生成数据库schema。

    当我们把hibernate.cfg.xml文件中hbm2ddl属性注释掉,这样我们就取消了在启动时用hbm2ddl来生成数据库schema。通常只有在不断重复进行单元测试的时候才需要打开它,但再次运行hbm2ddl会把你保存的一切都删除掉(drop)---- create配置的含义是:“在创建SessionFactory的时候,从scema中drop掉所以的表,再重新创建它们”。

    注意,很多Hibernate新手在这一步会失败,我们不时看到关于Table not found错误信息的提问。但是,只要你根据上面描述的步骤来执行,就不会有这个问题,因为hbm2ddl会在第一次运行的时候创建数据库schema,后续的应用程序重启后还能继续使用这个schema。假若你修改了映射,或者修改了数据库schema,你必须把hbm2ddl重新打开一次。

     

    转:http://apps.hi.baidu.com/share/detail/34606532


    展开全文
  • Hibernate生成表结构两种方式

    千次阅读 2017-05-05 02:27:32
    生成表结构两种方式: 1,hbm2ddl.auto 自动生成表结构 <!-- create:先删除,再创建。 update:如果表不存在就创建,不一样就更新,一样就什么都不做。 create-dorp:初始化时创建表,SessionFactory执行...
    生成表结构两种方式:
    	1,hbm2ddl.auto			自动生成表结构
    		<!-- 
    			create:先删除,再创建。
    			update:如果表不存在就创建,不一样就更新,一样就什么都不做。
    			create-dorp:初始化时创建表,SessionFactory执行close()时删除表。
    			validate:验证表结构是否一致,如果不一致,就抛异常。
    		 -->	
    		<property name="hbm2ddl.auto">update</property>
    	2,使用SchemaExport工具类
    		//根据配置生成表结构
    		Configuration cfg = new Configuration().configure();
    		SchemaExport schemaExport = new SchemaExport(cfg);
    		//第一个参数script的作用: print the DDL to the console(打印生成脚本到控制台)
    		//第二个参数export的作用: export the script to the database(导出生成脚本到数据库)
    		schemaExport.create(true, false);


    展开全文
  • Hibernate连接MySql数据库生成表结构,本例演示了一种比较少见的方式
  • 到现在才发现Hibernate竟然有如此给力的功能,但同时又给像我这样对hibernate不够理解的人添加了很多烦恼,例如最近在开发测试一个定时任务的时候发现每次系统启动都会在一个task中添加一个多余的字段,...
  • Hibernate 经过配置,可以自动生成表结构,非常方便。 但在过程中,我遇到了几个坑。 不能生成外键的问题 标注了 @ManyToOne + @JoinColumn,但生成的表却不带 Foreign Key! 真是奇怪 后来发现,是 Hibernate 用的 ...
  • 通过hibernate手动创建表结构new SchemaExport(new Configuration().configure()).create(true, true);new SchemaExport(new AnnotationConfiguration().configure()).create(true, true);
  • Hibernate 自动建表 更新表结构

    千次阅读 2009-04-29 10:22:00
    hibernate.cfg.xml中添加:1.create 加载hibernate.cfg.xml时,创建新表(如果原来存在,先删除)2.update 加载hibernate.cfg.xml时,更新表结构(如果原表不存在,就创建新表;如果缺少相应的字段,就加入;对于...
  • 方案一  在hibernate.cfg.xml中添加:  1  2 ... 1 * validate 加载hibernate时,验证创建数据库表结构  2 * create 每次加载hibernate,重新创建数据库表结构。  3 * create-drop ...
  • 第一种方式: hibernate.cfg.xml文件中的hibernate.hbm2ddl.auto 属性配置,如下: &lt;!-- ... create:先删除,再创建 ... update:如果表不存在就创建,不一样就更新,... validate:验证表结构是否一致,如果...
  • spring+hibernate自动生成数据库表结构

    千次阅读 2013-06-19 18:26:39
    现在越来越多的java项目采用java EE开发,spring+hibernate+stuts或者spring+hibernate+jsp的模式越来越常见,于是,更多的是spring来整合和管理hibernate,而不是...也许你说可以从数据库导出表结构,然后再建立新
  • NULL 博文链接:https://microjava.iteye.com/blog/515233
  • org.hibernate.exception.SQLGrammarException 原因:应该是mysql5.5以后需要将hibernate.cfg.xml的mysql方言配置为MySQL5Dialect。 &amp;amp;lt;property name=&amp;quot;hibernate.dialec...
  • Hibernate中,在用Javabean自动生成MySQL的时候,在已经手动创建数据库的情况下,总是表结构生成失败,关键是还不报错,苦恼了半天,于是开始在寻找解决的方法。首先贴上我的代码。Javabeanpackage ...
  • "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <!-- dialect指定数据库使用的方言 --> ...
  • Hibernate 自动建表 更新表结构,就在hibernate.cfg.xml中添加: 1.create 加载hibernate.cfg.xml时,创建新表(如果原来存在,先删除) 2.update 加载hibernate.cfg.xml时,更新表结构(如果原表不存在,就创建...
  • 菜鸟学SSH——Hibernate与Spring配合生成表结构

    千次阅读 多人点赞 2014-05-23 11:59:10
    前几天向大家介绍了一种用工具类生成...即Hibernate与Spring配合生成表结构。 首先,要将Spring的信息配置的web.xml,配置Spring用于初始化容器对象的监听器。 web.xml <?xml version="1.0" encoding="UTF-...
  • key -- hbm2ddl.auto:自动生成表结构策略value -- update(使用最多):当数据库不存在表时,hibernate启动后会自动生成表结构。 当数据库表存在时,如果一样,则只会写入数据,不会改变表结构。 当数据库表存在时...
  • 今天说点基础的东西,说说如何通过SchemaExport跟Hibernate的配置文件生成表结构。其实方法非常简单,只需要两个配置文件,两个Java类就可以完成。 首先要生成表,得先有实体类,以Person.java为例: /** * ...
  • 采取spring + hibernate 组成动态多数据源(每个库的表结构相同)。 现程序升级需要对数据库表结构进行更改,将hibernatehibernate.hbm2ddl.auto 配置为update,结果只能修改defaultTargetDataSource 所连接的一...
  • [Hibernate体系结构的概要图] Hibernate体系结构的概要图 Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。...
  • 解析Hibernate结构

    千次阅读 2012-05-30 20:57:51
    在学习Hibernate的时候,首先要了解Hibernate的大体结构,这样才能更好的理解其中的知识,下面就开始分析Hibernate的体系结构  1.HIbernate简要的体系结构如下图所示:     通过上图能够发现HIbernate需要一...
  • NULL 博文链接:https://dreamzhong.iteye.com/blog/1256055
  • hibernate自动帮我们更新表结构

    千次阅读 2014-04-30 21:47:41
    hibernate配置文件中加入下面语句即可: <property name="hibernate.hbm2ddl.auto">update

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,584
精华内容 29,833
关键字:

hibernate表结构