java_web

来源:互联网 发布:mac ppt演讲者模式切换 编辑:程序博客网 时间:2024/05/20 04:14

今天讲了hibernate框架

讲了框架的正向生成数据库,

逆向(包括注解方式和加xml方式,现在企业90%用注解方式)从数据库生成相应的类

说一下开发环境,jdk6,tomcat6,eclipse-jee-kepler-SR2-win32,数据库用的mysql-5.5.19-win32,数据库的集成界面用的SQLyog-11.2.7-0.x86


步入正题


一、正向生成数据库


先生成一个web项目



直接finish


把相应的包拷贝到lib文件里





在src文件目录下生成相应的包和类,其中包括每个类的属性

,并在类中生成相应的get、set函数,无参,有参构造函数




在src目录下生成相应的xml配置文件



此xml文件拷贝到src文件下



其中文件里的内容如下,


解释一下,第二行是mysql的驱动,第三行是与数据库用户名对应的的密码,第四行是数据库的地址,第五行是数据库的用户名,

第六行是数据库的方言,这个解释一下(

dialect就是“方言”,因为hibernate是要把Java对象转换成关系数据库来描述的,而关系数据库虽然有一些统一的标准,如SQL-92等,但是实际上各数据库如Oracle, MySQL, MS SQL Server等等为了提高性能或增加功能都提供了一些额外的标准或语法,因此,hibernate为了更好适配各种关系数据库,针对每种数据库都指定了一个方言dialect。
第七行是 是否显示所生成 SQL 语句
第八行
其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。
create:
每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:
最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。


这几行分别是把上述生成的xml文件导入进去,以便在数据库中生成相应的表















原创粉丝点击