- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲单表映射的实体Bean第4讲单表映射的实体Bean
内容回顾 什么是EJB的注释? 如何在Bean中注入其他EJB ?实验步骤是怎样的? 如何在Bean中注入资源?实验有哪几个步骤? 第4讲 单表映射的实体Bean 4.1 实体Bean概述 4.2 创建单表映射的实体Bean 4.3 持久化相关注释 4.1 实体Bean概述 在EJB3.0中,实体Bean只是作为一个普通的JAVA对象,通过元数据将实体和数据库表之间建立起映射关系。 在EJB3.0中,客户端并不直接与实体Bean打交道,客户端对数据库的访问请求需要通过会话Bean或MDB,在会话Bean或MDB中通过实体Bean间接操作数据库。 4.2创建单表映射实体Bean 创建语法: 必须使用@Entity定义实体Bean 实体Bean必须是可序列化的 每个实体Bean都必须有且仅有一个主键,主键既可以是基本类型,也可以是一个类。 每个实体Bean必须包含一个无参构造方法 根据需要映射的数据表结构声明成员变量,并为每个成员变量定义Getter和Setter方法,并在每个成员属性的Getter方法前面使用相应的注释进行设置 必须在应用的类路径下的META-INF目录下加入持久化配置文件persistence.xml 作为实体Bean在内存中的标识符 persistence.xml内容结构 实体Bean的创建及应用示例: ①创建数据库并设置数据源 ②创建一个EJB3.0项目 ③创建实体Bean ④在项目中的META-INF目录下创建persistence.xml ⑤创建会话Bean ⑥部署EJB3.0项目 ⑦创建一个Web项目及JSP文件 ⑧部署Web项目 ⑨启动服务器运行客户端JSP文件 假设数据表结构如下: 在实体Bean中需要使用相对应的类型 ③创建实体Bean: 主键注释必须放在主键的Getter方法前面,否则会影响其它成员属性的注释,使它们无效 最好重写hashCode()和equals() ④在项目中的META-INF目录下创建persistence.xml : ⑤创建会话Bean: 注入实体管理器,以实现实体Bean的创建、更新、删除和查询 ⑦创建JSP文件: 运行结果: DATE TIMESTAMP TIME 4.3持久化相关注释 @javax.persistence.Entity 常用属性:name属性,用于指定实体Bean的名称,缺省时实体Bean的名称默认为Bean类名 示例: @Entity(name=“person”) @javax.persistence.Table 常用属性:name属性,指定映射表的名称,如果缺省@Table注释,则默认采用实体名称作为映射表的名称 示例: @Table(name=“person @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的创建、更新、删除和查
您可能关注的文档
最近下载
- (高清版)-B-T 34590.4-2022 道路车辆 功能安全 第4部分:产品开发:系统层面.pdf VIP
- 《中国人德行》译后评析.pdf VIP
- 中国女性早期乳腺癌患者维生素 D 缺乏管理专家共识(2023版) .pdf VIP
- 81家规模化牧场奶牛酮病、生产性能、疾病及淘汰情况调查分析.pdf VIP
- 规模化牧场牛乳体细胞综合防控措施.doc VIP
- 规模化牧场奶牛呼吸道疾病诊断与防控要点.docx VIP
- 社群健康助理员考试题和答案.docx VIP
- 规模化牧场犊牛疾病诊断与防控要点.pdf VIP
- 广东省金山中学、中山一中、佛山一中、宝安中学2025届高三下学期第二次联考数学试题.docx
- 儿童,颜色,填涂画.docx VIP
文档评论(0)