- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲 单表映射实体Bean
内容回顾;第4讲 单表映射的实体Bean;4.1 实体Bean概述;4.2创建单表映射实体Bean;persistence.xml内容结构;实体Bean的创建及应用示例:;假设数据表结构如下:;③创建实体Bean:;;④在项目中的META-INF目录下创建persistence.xml :;⑤创建会话Bean:;⑦创建JSP文件:;运行结果:;4.3持久化相关注释;@javax.persistence.Id
指定实体Bean的主键
@javax.persistence.GeneratedValue
指定主键值生成方式,需要与@Id结合使用
generator属性:定义主键值生成器的名称。如果实体的主键值生成策略不是AUTO或IDENTITY,则需要提供SequenceGenerator或者TableGenerator注释,然后将generator属性值设置为注释的name属性值
strategy属性:指定字段值生成策略,它可取以下四种值:
TABLE
SEQUENCE
IDENTITY
AUTO;@javax.persistence.Column
指定实体Bean的成员属性映射到数据表中的哪一个字段以及该字段的一些结构信息
name属性:指定成员属性映射到表中的哪个字段。如??不指定映射字段,则映射的字段名称和属性名称相同。
unique属性:指定字段是否唯一
length属性:用于定义字符型字段的最大字符长度
nullable属性:指定字段是否允许为空
示例:
@Column(name=“username”,length=20,nullable=false);@javax.persistence.Temporal
指定java.util.Date或java.util.Calendar类型成员属性与数据库类型date或time或timestamp的映射
value属性:指定映射的数据库类型,可取以下三种值:
TemporalType.DATE
TemporalType.TIME
TemporalType.TIMESTAMP
示例:
@Temporal(value=TemporalType.DATE);@javax.persistence.PersistenceContext
用于动态注入EntityManager对象,从而可以通过EntityManager来实现对实体Bean的创建、更新、删除和查询。
注: EntityManager由容器自动管理和配置, 其主要负责将一组类映射到数据库中,(这组类 被称为持久化单元,持久化单元需要在 persistence.xml中定义)
unitName属性:指定持久化单元名称
示例:
@PersistenceContext(unitName=“sise”);@javax.persistence.Transient
指定成员属性不持久化。
示例:
@Transient
Public String getFirstName(){….};@javax.persistence.Lob
指定大文本数据。当属性的类型为byte[]、Byte[]或java.io.Serializble时,@Lob注释将映射为数据库的Blob(二进制数据)类型;当属性为char[]、Character[]或java.lang.String时, @Lob注释将映射为数据库的Clob(字符数据)类型
示例:
@Lob
Public String getContent(){….}
;@javax.persistence.Basic
用于对添加了@Lob注释的大数据类型数据进行延时加载
FetchType属性:指定是否延时加载,默认为立即加载,取值包括:LAZY和EAGER,默认为EAGER
示例:
@Lob
@Basic(fetch=FetchType.LAZY)
Public String getContent(){….};注:映射的表名或列名与数据库保留字相冲突(即同名)的解决方案:可在映射的表名、列名上添加一个单引号(针对MySql)或使用[] 将表名或列名括起来(针对SQL Server)
文档评论(0)