SSH Hibernate:持久层

作者 : 开心源码 本文共982个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共121人阅读

SSH Hibernate: 持久层

ORM框架 Object Ralational Mapping

对象 关系(关系型数据库) 映射

web

service

DAO

———————————–

DB

使用面向对象的方式 操作数据库

ORM框架:

hibernate JDO OBJ TopLink MyBatis …

JPA(标准)

版本: 2 3 4 5

3.6 (3.2 开始支持注解方式开发)

用hibernate:

1 导入jar包 hibernate3.jar

lib/required/*.jar

lib/jpa/*.jar

数据库驱动包

2 hibernate的配置文件: 1 hibernate的总体配置文件 src/hibernate.cfg.xml

数据库连接信息 和少量其余总体配置

2 映射配置文件 实体类 和 数据库表的对象

类名 ——- 表名

属性 ======== 字段

通常映射文件和类型相同 放在同一个包下

***.hbm.xml

——- 主键列和属性的对应

Configuration —— 类

SessionFactory 接口

Session 接口

Tranaction 接口

根据主键查询 session get() load()

get方法和load方法的区别:

1 get方法立即加载 向数据库发送sql 查询数据

load方法 延时加载 执行load时,没有发送sql 而是生成一个代理商对象

当第一个去取非主键属性值时,再发送sql 查询数据

2 当查不到数据时, get 返回null

load 抛异常

封装工具类:

crud save() update() delete() get/load saveOrUpdate()

实体对象在hibernate中的三种状态:

1 瞬时 (transient) 刚new出来的对象

1 生命周期没有被session管理 2 不和数据库中的任何一条数据对应只考虑主键能否对应)

2 持久化 (persistant) session.save(user) session.saveOrUpdate(user)

1 生命周期被session管理 2 和数据中的一条数据对应(只考虑主键能否对应)

3 脱管 (detached)

1 生命周期没有被session管理 2 和数据库中的一条数据对应

修改和删除 只能操作持久化和脱管状态的对象

大字段入库 数据库 blob 类 byte[]

type=”binary”

web项目 文件选择框 把文件存到数据库 (strut2)

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » SSH Hibernate:持久层

发表回复