2023年JPA学习笔记.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年JPA学习笔记.pdf》由会员分享,可在线阅读,更多相关《2023年JPA学习笔记.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录 目 录 1 0、J P A基 础 0 21.1 J P A 基 础 2 1.2 J P A开 发 过 程.31.3 实 体 的 生 命 周 期 及 实 体 管 理 器 常 用 方 法。4二、环 境 搭 建 5 2.1 添 加 J P A 支 持.62.2 添 加 配 置 文 献 0 62.3 测 试 配 置 6 2.4 环 境 搭 建 附 表.错 误!未 定 义 书 签。三、常 用 注 解.123.1 批 注 完 全 参 考 12 03.2 工 D相 关 的.错 误!未 定 义 书 签。3.3 主 键 生 成 策 略.133.4 字 段、添 加 字 段、添 加 表 关 联.错 误!未
2、定 义 书 签。3.5 映 射 相 关 14 3.6 其 他 14 o四、J P A 映 射.1 44.1 一 对 一 映 射 15 4.1.1 共 享 主 键 映 射。1 54.1.2 关 联 外 键 映 射.174.1.3 添 加 表 关 联.174.2 对 多 关 联 18 o4.2.1 添 加 字 段 的 一 对 多、多 对 一 关 联.1 84.2.2添 加 表 的 一 对 多、多 对 一 关 联.194.3 多 对 多 关 联.2 04.4 继 承 映 射.错 误!未 定 义 书 签。五、JPQ L 21 0六、常 见 异 常 22。一、J P A基 础 1.loJPA 基 础 J
3、P A:j ava p ersist e nee api0支 持 X M L、JDK5.0 注 解 俩 种 元 数 据 的 形 式,是 S U N 公 司 引 入 的 JPA ORM规 范 元 数 据:对 象 和 表 之 间 的 映 射 关 系 实 体:e ntity,需 要 使 用 Ja v a x.pe r siste n ce.E nt i ty 注 解 或 xm I 映 射,需 要 无 参 构 造 函 数,类 和 相 关 字 段 不 能 使 用 final关 键 字。游 离 状 态 实 体 以 值 方 式 进 行 传 递,需 要 s e r i a l i z a b l eJ P A
4、 是 一 套 规 范、有 很 多 框 架 支 持(如 H i b e r n a t e 3.2 以 上、T o p 1 i n k,一 般 用 Hi b e r n a t e 就 彳 亍 o r a c I e 可 以 用 t o p l i n k)0oJPQL1、与 数 据 库 无 关 的,基 于 实 体 的 查 询 语 言 2、操 作 的 是 抽 象 持 久 化 模 型。3、J P Q L 是 一 种 强 类 型 语 言,一 个 J P Q L 语 句 中 每 个 表 达 式 都 有 类 型,。4、E J B Q L的 扩 展。5、支 持 p r o j e c t i o n(可
5、以 查 询 某 个 实 体 的 字 段 而 不 需 要 查 询 整 个 实 体)、批 量 操 作(u p d a t e d e l e t e)、子 查 询、j o i n、g ro u p b y h a v i ng(g ro u p b y聚 合 后 h a v i n g 聚 合 函 数 比 较 条 件)弱 类 型 语 言:没 有 明 显 的 类 型、根 据 情 况 变 化、容 易 犯 错。强 类 型 语 言:没 个 变 量 都 有 固 定 的 类 型。不 容 易 犯 错。虽 然 J P A规 范 中 明 确 表 达 无 法 访 问 一 个 集 合 关 系 字 段。抽 象 模 型 类
6、 型:J P Q L规 范 将 一 个 实 体(属 性)中 所 饮 食 的 各 种 类 型 称 为 抽 象 模 型 类 型。状 态 字 段。关 联 字 段 查 询 多 个 字 段 查 出 来 的 是 个 对 象 值 数 组1.2JP A开 发 过 程 oJP A 配 置 文 献 声 明 持 久 化 单 元 0配 置 文 献 per s istence.x ml编 写 带 标 注 的 实 体 类。编 写 Dao类 x m I配 置 0事 务 类 型 分 为:RESOURCE_LOCAL本 地 事 务、JTA(java事 务 A P 工)。注 解 oEntity 将 Java B e a n 标
7、注 为 一 个 实 体 n ame属 性 0 00 T able o 数 据 库 中 的 表,nam e 名 称、cata I o g 数 据 库 名 S ec。n da r yT a b le/S e c o n d a r y Tabi e s 多 个 表 Id 定 义 了 实 体 的 主 键 信 息 o oGenerate d V a lue逐 渐 省 城 策 略 o o G e n e r ate d Value(S t r a t egy=Gen erationType.S E QUENCE)o oS e quen c e G e n erator(na m e=SEQ_ T E S
8、T”,sequenc e Name=U s er_ SEQ”,allo c a t i o n S ize=2 5)co I umn 属 性、字 段 相 应 的 表 字 段 Temp。ral 0属 性 是 时 间 类 型 的 话 可 以 细 分 0 o o D ATE o o j a va.sq I.Date0 T IME o j a v a.s q l.Time oT IMESTAMP j a v a.s q l.T im e s ta m po L o b o标 注 CLOB、BLOB B a s e 是 否 延 迟 加 载 B ase(f e t c h=FETC HTYPE.LAZY/
9、FETCHTYPE.E A G E R)o Tra n s i e n t o实 体 b e a n 中,所 有 非 s t a t i c、非 t r a n s i e n t 状 态 变 量、字 段 都 要 被 持 久 化 假 如 有 字 段、变 量 在 数 据 库 中 没 有 相 应,标 注 为 tr a n s i e n t 就 可 以 不 被 持 久 化,标 注 方 式:标 注 在 字 段 上 0 标 注 在 变 量 上 实 体 类 写 法:1、必 须 有 无 参 的 构 造 函 数 2、没 有 f i n a l 类 型 的 变 量 或 方 法 3、不 可 以 是 p u b
10、l i c 类 型 的,只 能 通 过 g e t、s e t 方 法 读 写 0管 理 实 体 oP e r s i s t e n ceo oEn t i t y M anager F a c t o r yoEnt i tyM anag e ro oPer s i s t e n c e.c r e a te E n tity M a n ag e r F a c t o r y(p e r s i s t e n ee.xm l中 酉 己 置 的 p e r s i s t e n c e u n i t).c r e a t e E n t i t y Man a g e r()获
11、取 E n tity M an a g e r1.3 实 体 的 生 命 周 期 及 实 体 管 理 器 常 用 方 法 o o E nti t yM a nag e r 声 明 周 期 0oo 数 据 库 o o el、e新 实 体(new)o o o e存 在 不 存 在 O O 0o 2v 持 久 化 实 体(ma nag e d)存 在 o 3、分 离 的 实 体(detached)o 存 在 o o 4 v 删 除 的 实 体(r emov e d)o不 存 在 J a v a 对 象。实 体 管 理 器 不 存 在 存 在 0 o。存 在 0 0 0 不 存 在 o 不 存 在 e
12、存 在 o 0存 在 0 0D O o n ew。0o o o o 1 p ersi s t()oo o f ind()o o X oc o mmit()、c I ear()o DB T T T T t om a nagedo T T T T TT detache do o o o 1 me rg e()0 0 0 X 0 0 0o o o o o o 1 r e mov e()o o o or emoved常 用 方 法 o ol p e rsi s t(Obj e ct)o o 0 持 久 化 0 o2 remo v e(Objec t)o o o o o 删 除 对 象o t3 find
13、(Class e nt i tyC las s,Object key)o 根 据 主 键 查 询 4x f 1 u s h()o o实 体 与 底 层 同 步,执 行 sq Io o 5%c reateQuer y()创 建 JPQL查 询 对 象 o O5 K C r e ateN a tiveQuery()o根 据 普 通 S Q L 查 询 5 c r e a teN amedQuery()o o o o 命 名 查 询 NamedQu er i e 标 注 o o 5 me r g e(Object)o o 将 一 个 d e tach e d 的 实 体 持 久 化 到 Entit
14、y M a n ager 中 o o5 close()o o o o 关 闭 管 理 器 j a vax.p e rsistence.Que r y o o oi nt e x ecuteUpdate()执 行 更 新、册 U除、添 力 口 Ob j ec t g e t Singl e R esult()执 行 查 询(返 回 一 条 记 录)0List g e t Re s ul t List()0 执 行 查 询(返 回 结 果 链 表)Que r y se t Parame t e r(i nt p o sition,o b jec t v alu e)给 Query对 象 设 立 参
15、 数 Qu e ry se t MaxResul t s(int maxRes u It)o o 给 Q u e r y 对 象 设 立 返 回 数 Query setF irstResult(int f irs t Res u It)o 给 Query 对 象 设 立 返 回 偏 移 0 0参 数 查 询(只 能 用 一 种)o o 命 名 参 数 查 询 s elect u f r o m User w h er e id=:ui d n;o osetP a rame t er(uid”,v alue);0 0 0 位 置 参 数 查 询 P e r s o n person=em.fin
16、d(Pers o n.cla s s,1);/相 称 于 Hiber n ate 的 getPer son p e rson=em.g e tRefer e n ce(Per s o n.c I as s f 1);o o/相 称 于 Hi b erna t e 的 load返 回 一 个 代 理 对 象/注 意 延 迟 加 载 时 的 事 务 没 关 闭 的 时 候 才 好 用 find假 如 找 不 到 返 回 的 是 个 n u 11,这 时 候 下 面 在 调 用 null 的 方 法 报 nu I Ip o i nt异 常 refe r e n c e 相 称 于 延 迟 加 载 假
17、 如 找 不 到,会 在 第 一 次 使 用 就 报 EntityNotFound异 常 0 0 0。回 调 函 数(相 称 于 拦 截 器,下 面 的 方 法 执 行 前 后 调 用 指 定 的 方 法)o o P r epersi s t o o o oo o o oP o stPers i s to oPreRemo v eo o PostRem o veo o o oPr e U p dateo o o P ostU p da t eo o o oPos t Loa d o 0 载 入 实 体 时(find、查 询、refresh)二、环 境 搭 建 2.1 添 加 JPA支 持 1
18、准 备 JP A 用 到 的 j a r包(J P A 支 持 包)2、w i ndo w o T pref e re n c e s T Java B u ildPa t h User Libra r i e so o o-n e w User Libraryo T A d d Jars3、项 目 o 右 键 T pro p erties(alt+E n te r)T Java Build P a th T Lib r ari e so o T A dd Librar y Us e r L ibrary T 自 己 定 义 的 JPA 支 持 包 2.2 添 加 配 置 文 献 0 1、项
19、目 中 S R C 目 录 下 添 加 METAI N F 目 录(与 We b 项 目 下 ME T A-I N F 同 名)o 2 v 在 新 添 力 口 的 METAI N F 中 添 力 口 配 置 文 献 pers i stences.x mlop e r s istence.xml 配 置 信 息(H i b e rnate)。数 据 库 连 接 信 息 查 询。重 要 配 置 信 息:0 事 务 类 型:本 地 事 务、J T A 事 务 JPA供 应 商 数 据 库 驱 动、U R L、Us e r、Password3、在 S R C 目 录 下 添 加 log4 j.p r
20、ope r ti e s 文 献(显 示 数 据 库 操 作 信 息 的)2.3 测 试 配 置 I、M y SQL测 试 数 据 库。2、实 体 注 解 03、J U N I T 测 试 方 法 2.4 环 境 搭 建 附 表 persistenc e.xm I 配 置 信 息 ooor g.hiberna t e.e j b.Hi b er n a t e P e r s i s tence00o.!参 数:数 据 库 驱 动 名、地 址、用 户、密 码、方 言、显 示 执 行 S Q L 语 句o P ro p e r ty nam e=h i b e m a t e.c o n n e
21、 c tio n,d r iv e r _ c la ss v a lu e=/o o o oo o o o o o 0 0 0 00 a 00V p r o pe r t y nam e=mi n P o o l S i z e v a lu e=5/o o o o o oo o ooo o oo o o o oo0 0自 动 创 建 I更 新 I验 证 数 据 库 表 结 构。假 如 不 是 此 方 面 的 需 求 建 议 s e t v a lu e=n o n eHO容 易 导 致 数 据 丢 失,一 般 在 测 试 的 时 候 才 用 p ro p e r t y n a m e=h
22、 ib e r n a te.h b m 2 d d i.a u t o v a l u e=c r e a te v a l i d a t e o验 证 数 据 库 表 结 构 c r e a t e 0 每 次 加 载 H i b r n a t e 都 会 删 除 上 一 次 的 表 结 构,根 据 m o d e l重 新 生 成 c r e a t e d ro p 每 次 加 载 创 建,s e s s i o n F a c t o r y 关 闭 表 就 自 动 删 除 up d a t e 力 口 载 H i b e r n a t e就 更 想 你 表 结 构 环 境 测
23、 试 代 码 实 体 注 解 E n tity T a b l e(name=nPe r so n n)pu b lie cla s s P e rso n(oIdo C o 1 umn(name=np id)privat e I n t e g e r id;oColumn(n a m e=n p name*)o p ri v a t e S t r i n g n a m e;p u b l i c I n t e g e r g e t l d()o r e t u r n i d;O p u b lic v o id s e t I d(I n t e g e r id)o t h i
24、 s.id=i d;o)p u b l i c S t r in g g e tName()o r e t ur n n a me;oopu b l i e v o id se tN a m e(S t r in g nam e)o ot h i s.name=nam e;0)JUN I T 测 试 方 法 p u b l i c E n tity M a n a g e r t e s t G e tEM()o oEnt i tyM anage r F a c t o r y e mf=P e r s i s t e n c e.c re a t eE n t i t yM a na ge
25、r Fa c t o r y(”J P An);o E n t i t y M a n a g e r em=e m f.c r e a t e E n ti t yM a na g e r();o o re tu r n em;o)p u b l i c v o id t e s t A d d P e rs o n()o P e r s o n p=new P e rs o n();op.s e t I d(1);op.setN a m e(a der);o o E nt i t y Manager em=tes t GetEM();Entity T ran s a c ti o n e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 JPA 学习 笔记
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内