逆向思维:借助hibernate自动建表--------为开发提速

简介:

  Hibernate的ORM关系映射底层框架,为我们的开发提供了很多便利,可以说是一个非常棒的J2EE框架,我这里也不

打算过多介绍,有段时间没发帖了,这段时间过的挺乱的,又要想着考试,又很渴望学技术,所以总是在犹豫,该看会考

试的书,复习一下,还是继续我的技术积累和探索。实在是不想看那些无聊的东西,虽然那些对我以后的发展很有帮助。

咳~~~有时候真的有休学的念头,但是中国这个社会,没文凭又不好混。再加上父母的期待,我实在不忍心舍弃这些我费

了11年(5+3+3)得到的东西。

           切入主题,逆向思维,借助hibernate实现快速开发。前提,打算在项目里使用hibernate框架开发底层。仅此而已。

一般情况下,开始一个项目,首先是系统的分析需求,然后就是设计数据库,然后找个数据库客户端开始建表,建字段这是个

漫长的过程,然后开工。如果使用hibernate框架(我当然非常推荐使用),jdbc有点麻烦,很多重复的体力活,也不易维护

拓展。当然我也不否定现在有许多J2EE开源框架autoJava,rapid-framework可以帮助我们自动生成增删改查等等,为我们

提供便利。但是要使用这些框架,一是还要学习这些开源框架的思想和设计思路及使用方法,二是和我们的项目匹配问题。

所以我并不打算使用这些开源框架。

           常规的思路是,设计好数据库,建好表,搞好外键,借助MyEclipse(也可以是其他IDE),自动生成映射,或者自己

写映射。这样的话就是两步。比较死板。如果新手的话,也可能产生的映射与设计思路有差别。还要不断的修改表和映射。

我推荐一个方法,是借助hibernate自动建表,首先要了解hibernate.cfg.xml中的各种属性,原来我一直不太了解(一直

都是让MyEclipse自动生成),这里面的奥妙,最近好好看了看,思路也清晰了不少。也发现了一个提高开发速度的方法。

首先介绍其中的一个属性hbm2ddl.auto,这个就是这个方案的核心属性,有四个值:create,create-drop,update,

validate。

贴出来我的源码:

复制代码
<!--  启动时删数据库中的表,然后创建,退出时不删除数据表
<property name="hbm2ddl.auto">create</property>
-->
<!--  启动时删数据库中的表,然后创建,退出时自动删除所有表
<property name="hbm2ddl.auto">create-drop</property>
-->
<!--  自动修改,如果表结构与实体类不一致,那么就修改表使它们一致,数据会保留
<property name="hbm2ddl.auto">update</property>
-->
<!--  自动校验,如果表结构与实体类不一致,那么不做任何操作,报错
<property name="hbm2ddl.auto">validate</property>
-->

复制代码

 

本来这个属性的产生是为了测试数据的,我觉得利用这个自动建表非常方便。利用这段代码:
<property name="hbm2ddl.auto">create</property>

这样的话,我们开发就是一步了,不用数据库客户端建表和外键了,直接写数据库实体对象,然后自动生成数据表。看

来如果用Mysql的话,Sqlyogent....是不用装了,嘿嘿。Mysql被sun公司收购了,并且投入大精力发展,以后Mysql

会越来越强大的,与Java的联系也可能会更紧。Oracle之类的也一样,跨数据库是hibernate的一大特点。封装了各个数

据库的操作语句。即使你不会写各个数据库不同的操作语句,也可以使用他们,发挥他们的最大潜力。真的太爽了。

hibernate通过映射文件建表,所以使用我这种开发方案也需要对XXX.hbm.xml配置有足够的了解,起码应该会写外键关

联,一对多,一对一,多对多,组件映射都很方便的支持。

以后开发思路不是设计数据库了,而是设计实体类,直接写POJO,然后写映射,让hibernate帮我们生成数据库表,

是不是省了一步呢。不过要注意的是建好表后就把这段代码删了:<property name="hbm2ddl.auto">create</property>

因为每加载一次项目,就会重建一次表,数据清空,所以如果表建好,就可以把这句删了,或注了。

 本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/12/28/1363941.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Java 数据库连接 API
解锁高效开发秘籍:深入探究 Hibernate 如何优雅处理一对多与多对多关系,让数据映射再无烦恼!
【9月更文挑战第3天】Hibernate 是 Java 领域中最流行的 ORM 框架之一,广泛用于处理实体对象与数据库表之间的映射。尤其在处理复杂关系如一对多和多对多时,Hibernate 提供了丰富的 API 和配置选项。本文通过具体代码示例,展示如何使用 `@OneToMany`、`@JoinColumn`、`@ManyToMany` 和 `@JoinTable` 等注解优雅地实现这些关系,帮助开发者保持代码简洁的同时确保数据一致性。
29 4
|
1月前
|
SQL Java 数据库连接
Hibernate 批量操作来袭!掌握最佳实践,轻松应对数据洪流,开启高效开发新时代
【9月更文挑战第3天】在软件开发中,高效数据操作至关重要。作为流行的Java持久化框架,Hibernate提供了强大的数据库操作功能。本文探讨了Hibernate批量操作,包括批量插入、更新和删除的最佳实践,通过使用原生SQL和`Session`的`createNativeQuery()`方法,结合`addBatch()`及`executeBatch()`方法实现高效批量操作。合理设置批量大小、事务管理和性能测试是优化的关键。在实际开发中,应根据业务需求和性能要求选择合适的方法,以提升程序性能和可维护性。
69 3
|
2月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
37 1
|
2月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
62 0
|
SQL XML Java
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
|
SQL Java 数据库连接
2021-5-14hibernate核心开发接口(API)(下)
persist() delete() 代码: update() 代码: 根据id 查询get() 根据id查询 load()
137 0
2021-5-14hibernate核心开发接口(API)(下)
|
XML Java 数据库连接
2021-5-14hibernate核心开发接口(API)(上)
0. hibernate应用程序体系结构视图 1. Hibernate 核心接口API ① Configuration接口 ② SessionFactory接口 ③ Session接口 概述 session对象的获取 a. 获取方式(两种): b. 两种方法的比较 session中的常用方法 CURD(增删查改) CURD-定义工具类 提取共享代码 创建HbnUtils工具类 类、表结构 CURD增删改的实现 save() persist() delete() update() 根据`id` 查询get() 根据`id`查询 load() `get()`和`load()` 区别
113 0
2021-5-14hibernate核心开发接口(API)(上)
|
XML Java 数据库连接
Hibernate简单注解开发和事务处理(四)下
Hibernate简单注解开发和事务处理(四)
257 0
Hibernate简单注解开发和事务处理(四)下
|
XML Java 数据库连接
Hibernate简单注解开发和事务处理(四)上
Hibernate开发时,有两种形式,一种是XML配置的方式,另外一种是注解形式的开发。 XML配置是,需要写一个实体类User,还要在它的同级目录下创建一个相对应的User.hbm.xml, 而注解方式比较简单,只需要在User类中添加相应的注解即可。
183 0
Hibernate简单注解开发和事务处理(四)上
|
SQL Java 数据库连接
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作者。
下一篇
无影云桌面