Hibernate
来源:互联网 发布:主流数据库 对比 编辑:程序博客网 时间:2024/06/11 00:55
hibernate是javaweb开发中 的框架之一,工作在持久层
hibernate让java程序员在编程过程中,尽可能的摆脱对数据库的直接操作,避免编写sql语句,因为当数据库中表过多,字段过多(几十个,几百个字段),程序员的插入和修改的操作既简单有繁琐。
为了更加高效的做开发,hibernate把对数据库的操作都封装成对象,让程序员们完全面向对象编程,不尽效率高,让我们更加爱上编程,因为编程不是做无趣的事情,而是做有意义的事情
首先hibernate是如何把数据库封装成对象让我们操作的呢?
(一).hibernate中定义一个javabean类(什么是Javabean呢?就是一个一般的Java类,没有特殊的操作方法,只有属性和set/get方法和构造)
但是hibernate这里的javabean类唯一不同的是在编写上有一定的限制:
javabean + 映射文件
编写规范:
必须是一个公共的具体的类(public class)
必须有一个无参构造器
字段私有,必须提供公共的访问字段的方法(get和set)
必须有一个oid属性和主键对应(这里是类和表对应)
字段尽量使用包装类修饰
类尽量不要使用final修饰(若使用final修饰,load方法和get一样了)
hibernate使用配置文件让javabean和数据库的表对应(注意:这个表只是我们需要的表,数据库里面可以没有,因为创建表这个粗活hibernate可以自己做)
(二)上面说了对象映射给表,也就是这里操作对象就是操作表,所以就把sql操作编程了 操作对象。
下面来讲讲怎么想操作表一样操作对象(多表操作,单表明天讲,因为今天的内容比较多,我先讲一下,防止明天忘了)
1.实体之间的关系和设计
hibernate中的一对多
①什么叫一对多,怎么通过对象实现一对多
一对多就是一个表的一条记录可以指向另一个表的多条记录,比如用户和订单:一个用户可以有多个订单,但是一个订单只能是某一个用户的。
hibernate中实现对象(实体)的一对多;在一的一方的类中添加一个集合来保存多的一方的对象
在多的一方的类中添加一个一的一方的对象就实现了一对多(但是要在配置文件中做一定的配置)
2.级联
具有方向性 操作主体 的时候,将其关联的对象进行相同的操作
级联保存更新
在主体的xml文件中配置cascade="save-update"
级联删除
在主体上配置cascade="delete"
默认删除
删除已被引用的一的一方
先把从表中指定的外键置为null 在删除主表中的记录
3.冗余sql
当保存对象的时候,执行插入语句,之后还会执行update语句,虽然不影响结果,但是这个多余的update语句影响效率,所以可以在一的一方放弃外键维护权,set标签上inverse="true".
今天先说到这,太晚了。。。。。。未完待续
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- hibernate
- Linux C 判断网络是否连接
- UVALive4671 K-neighbor substrings
- maven+springmvc错误 JAX-RS (REST Web Services) 2.0 can not be installed
- linux服务器启动tomcat很慢解决方法
- React全栈 读书笔记 【第三章 初始React】
- Hibernate
- 第一次使用MySQL client连接到远程MySQL server时的常见报错及处理
- 拆点最短路( 新板子get
- JavaServer Faces 2.0 can not be installed解决方案
- 数据结构基础五-----《线性结构的两种常见应用之一 队列》
- 4-11固定定位的用途返回顶部按钮
- Angular4+NodeJs+MySQL 入门-01
- pl/sql oraclev_name|| 判断 循环 语句
- PHP RES加密如何避免密文过长和乱码