登录网站,浏览更多精彩内容
您需要 登录 才可以下载或查看,没有账号?加入我们
×
『课程介绍』:7 Y }: E) y+ A. Q" M- a x8 U$ c" V/ S3 n; S
通过对本课程的学习,能够对JPA能够有全面的认识,简化现有Java EE和Java SE应用开发工作。用来操作实体对象,执行CRUD操作,框架在后台替代我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
V: o7 x Q" I* x『课程目录』: . a/ ^ e4 ?6 B H) s5 c
1_JPA概述3 o) D2 E0 X |9 A
2_JDBC的优缺点& L2 @& {- E/ e. w! r, b+ ~
; T [& F5 b/ u2 B" f8 _3_JPA的优缺点
- C. E* u5 z1 ` r5 m* Z1 ?% ?4_ORM概念- ?' |) i( t, a: J8 D/ a+ q$ C2 Q0 P& O6 R4 f, w6 L
5_JPA历史
5 I; |1 H! m: l) {" z, ^& Q6_JPA资料准备
4 g5 ?. G) Q8 ]4 ~6 o# G) W& ?7_导入JPA的jar文件3 ?, @9 T+ \, n& r/ }4 F( }1 Q) P* i9 z
8_如何配置核心文件persistence.xml1 s9 B3 t: T: N/ d0 |' P
8 u5 Q7 q/ A, n9_持久类Employee
) g, Z( ~4 ^7 M. ?, \10_测试代码(一)+ S6 M) _8 y8 r. R2 r2 V, l9 Z8 @! c7 s3 ^
11_测试代码(二)2 S. }' v; k9 W8 D' M( ]
12_JPAUtils
8 b* K6 m- ]# C& x# I J13_JPA-crud% d+ l* `7 ]5 c( o& Z
14_保存的原理9 w$ F% u! O, ?; n' y
15_获取的原理 Q. J1 d# W" r+ ~8 J; y3 [8 p5 B; C& e+ ^, P: P% \
16_配置自动生成表概述& P8 ~& P( T5 I9 x% s: S2 g" E# p1 Q3 ?
17_映射信息配置(一)
/ W' S" m: D9 v+ W18_映射信息配置(二). k, C9 G( A: D9 c6 Q# C
19_总结&面试题5 j" x4 X* k* N+ v
20_练习作业. t% `! _. A) Q3 Z j* O5 O j6 z: ]" d
21_练习作业讲解
1 j8 p3 B0 H, b7 \% @22_抽取BaseDao+ k! J( _. V0 L" u& r- v6 _2 {! X, r, w+ h9 G: H! b# F
23_核心API简介
0 P3 b3 F* t( ~9 C0 k2 o24_EntityManagerFactory7 x5 I3 [9 c, T; T" f, v
! [4 N" l) c& S" k25_EntityManager. P" S9 _. T8 Y9 d
0 u; Y9 d v' R, Z# R2 a+ s! T3 J26_一级缓存命中的条件/ _1 m' K' j i/ ^$ U% C1 F
! {: [9 ~* }) d$ M" g `- I27_JTA事务
6 {2 I. K: M$ n9 M0 ?/ m9 H28_主键生成策略# Z3 U, ]8 U6 y; s# s, n* `3 b0 ]
29_JPA持久对象的4种状态# U# p7 Z, n/ O% y! `/ i6 I0 m D- q" A) Q* H) N
30_脏数据更新/ g: W; E# K# E1 j6 \
& j) Q( g# L& L7 K31_entityManager的方法改变持久对象的状态. ^! v/ C$ {) h8 \
: u2 J9 h" E( F' h& y32_单向多对一建表0 Z/ L; A2 _/ p* r9 I Q* v2 C8 F" U" ]( t4 V
33_单向多对一-错误保存
# w( X- Z: U; V) k: {34_单向多对一-正确保存$ v5 R9 g7 A, e3 t* ]- @2 d
35_单向多对一-延迟加载(懒加载)- K2 C: L2 G6 m# J9 c
36_可以通过多方.get一方是否为null,来判断是否有外键的关联 L7 {/ n0 ~9 i D
* r6 Y9 o2 M+ d8 O ~* p5 ?37_主键生成策略-SEQUENCE7 P1 R( R5 R- D7 F: I
38_总结; P% O, j8 L9 T; i% {8 I- J
39_域对象(domain对象)之间的关系! u" M8 u5 Q; K5 W
40_单向一点多-建表+ r# q% n0 R, l9 I9 U. X: t5 f" G. b
41_单向一点多-一方处理必须发出额外的update语句. G$ W+ ?6 y" w: w& E
42_单向一点多-延迟加载配置
4 u% b7 G) H; W% k5 T% q43_单向一点多-正确判断一方产品类型是否有多方产品. I9 W' d2 G r" s% F+ M+ h
, h% f/ y0 x0 `) T' W44_集合映射2 h* Z" ~+ ]; @6 v9 L
6 ]( s, w5 t( V# l5 L8 j& G4 }$ x45_双向一点多映射正确配置-mappedBy
+ A/ e% |2 |* B1 i) `- }' k" S/ r' L& I46_级联保存4 W. }" j- ~# H
47_级联删除6 O: S4 v5 K4 k" J2 m9 ]0 X+ ]2 I0 e1 b) G3 d- J' H; J
48_删除一方,不删除多方,使用jpql的update,delete语句实现3 K1 O: B( K* c5 g
0 S' v# `, }5 l49_其他级联操作" ~6 ?+ x5 L0 k1 ]
50_多对多数据表的结构' O+ r! D$ |% S: G9 N4 v" @4 F0 [' {5 Y* f+ s
51_多对多建立模型4 F' q6 P( g, h: v2 t; a) ?( u5 k
+ ?: \4 r' q9 U7 P52_单向多对多-保存) H! p' Z2 t$ @$ ?% i- P7 l4 b
53_单向多对多-默认延迟加载查询
4 P* m) }* S' f54_双向多对多-配置模型-建表3 A" q- t* t6 s6 ] J( Z, V0 x5 e9 R( C- V
55_双向多对多-级联保存
! s9 f- Q1 B6 @$ V( u56_双向多对多-级联操作
2 G9 x# j! Y1 o- N0 z' O57_唯一外键一对一
' b/ W) Q# |) f2 A$ y58_共享主键一对一1 t: K' }: x8 G1 i4 h# y
59_练习作业
5 j9 }( i8 x1 x* F- }, [60_总结3 s+ P! B) U) @% j% B% U# b% N+ w: Z
61_E-R图说明+ h- D' ?( O0 w* ?* g' K) E
/ [1 F! M1 s$ }$ K62_模型映射- j3 ^- O J# \8 @6 k. T6 S$ y" K, @" [$ j s' \" |
63_简单查询, z& _( t+ p; n* j3 ^( x
$ j% U- n2 d( r7 o4 i! l6 ~64_Distinct/ k% d# O$ H( I8 f
6 X; G6 y" r: |8 } O0 x( h65_集合的操作(size)4 r+ B. V% G5 u7 y2 Z4 H% V1 m2 P
66_LEFT JOIN" ]. E. ?; O9 ?- L% f/ J2 B+ K H2 O0 }& v6 \. F* j+ b
67_聚集函数+GROUP+HAVING6 M& K. ?: `& `# n2 d9 q+ w7 a) Z/ @ c) A) ^6 {! n' R% R: U g
68_无关子查询( t+ {: b) G3 k2 g6 d4 B# w T# a$ o; v3 n, ~7 I6 {( s" J% k
69_SQL-查询出没有留移动电话(types=CELL)的员工(in)3 C9 w7 p4 G' ^
70_SQL-查询出没有留移动电话(types=CELL)的员工(EXISTS); U/ ^7 R! L. T9 C/ k8 j4 Z( c- D2 G
3 }/ o. u* [$ O9 G71_JPQL-in-exists7 c1 R; l' y) p( P5 S$ {! m
" K4 f6 \9 S% f a0 N9 I6 m; `72_分页5 o' }& o7 q6 F* m9 u7 Z, y8 ^' L1 e/ p4 ]* a$ d
73_原生SQL查询: u) R6 Z- Y, p9 i. I
74_一级缓存4 [7 W+ `; w" @
8 B5 h3 Z3 ]. k S6 @75_配置domain类的二级缓存: `8 J- c B' {! L& G2 D7 c6 g
! k. ^/ M' P( t" G0 n76_domain类里面集合的二级缓存6 x" m [% T: r6 P
9 a3 {2 z$ i8 n6 x1 a( b9 Z- B77_查询缓存+依赖于二级缓存4 C0 Q& H g: c& B5 R
78_面试题+什么场景使用二级缓存 @5 O/ m& o" M5 a. l6 Q Z7 Z S
+ D; z6 Y: q) Z79_可选ehcache.xml4 u% P. a5 s- e- h- o* k# m. @" }, G. n! D. i
80_缓存命中条件: |2 w, Z- a0 ]. l; f" X- ^
; ]$ y' j5 I6 T81_总结+ v" ~9 z0 p" B( A( T0 H; a5 L6 `# ^
82_创建动态工程: Q, x7 S! ?# z& J
83_直接拷贝原来的内容. R4 ]: I8 n( U( ]
84_JPAUtils0 W- B# ^+ u8 g' D1 r- E% u+ Z! R% e0 X& U- [ v; s) S& N7 j6 _
85_建立单向多对一模型&自动建表) A0 C' p! Q/ i! \6 H% [5 h
$ c5 B4 g* Z' ~4 ~1 v x2 x86_BaseDao/ t$ u8 ]" L: U) C3 T v I. S
87_子类Dao" a3 i3 n. }% v9 D
88_Service5 j( ~- M. n+ T, L0 M6 y' s+ c7 I: H
89_Junit* l ]. X1 \ O8 i
90_添加struts2-Jar文件 D# T: V$ H2 }0 b* p* A0 v6 C% G$ w4 F
91_web.xml+struts.xml' l6 \: K* V" l
92_成功显示列表数据- }1 ~( D9 o! t) y1 b
" c. v0 E( a5 p5 V# J A6 p5 ?93_寻找最合适关闭EntityManager地方3 X* B+ \' X+ Q
/ }8 J* `) q1 U94_复习过滤器链& U+ |" U2 _+ Z9 J, ^
5 `5 h3 E# o, B1 j6 M: c: C95_OpenEntityManagerViewFilter; b3 ~6 L+ c1 y6 [: i! ^) K( @7 x9 e* t$ d. ]4 J5 R# i
96_ProductAction8 i Y" c3 }4 T" W7 U" p# r1 ~. b# a! I. F
97_产品页面管理# D9 Y* W0 l; o: w3 B( M$ m- i
' _2 @! G, R& z- ^$ Y+ ^& [98_处理产品类型页面管理: q0 l- Y' ?# e' ?5 l3 K! F1 I
+ U' n' E7 t6 {: p1 K99_处理产品类型为请选择& k# ?# j+ d8 L: `3 D
100_NamedQuery+sql
3 \: v- _' {$ B9 D, f* S101_NamedQuery+jpql
- t5 a6 v) {/ p; C8 ]102_正常流程购买流程! }: ]0 X2 _8 v W
103_模拟第一类丢失更新* e5 F9 c; u1 h2 d) U4 m, n
104_事务并发的必要性
' p8 R i$ S9 c3 a, k105_事务并发带来的问题3 o7 S9 X- O. N2 r1 B/ W
106_悲观锁7 v4 q' K2 S' f6 A
107_乐观锁/ M" n) \) C6 y, D! O! _. v/ n& R, p. g' q9 c4 Q: i) w( W, u7 r
108_如何优化JPA2 x& \# ]3 @6 |, o" l# R- |- ?3 ]4 X9 k0 r. q4 S! c- Z
109_总结& A
- X$ \. [2 H; x) C# R1 Q# c* N$ LH. n: w1 z0 y, S& i: v
, L, l. _4 Z" T, G1 H4 m1 }( x
8 A O2 n ~% x5 w8 V |
|