我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > 项目开发中基类BaseDao的实现
总共48086条微博

动态微博

查看: 1208|回复: 1

项目开发中基类BaseDao的实现

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-06-12 13:14:14 |只看该作者 |倒序浏览
    项目开发中基类BaseDao的实现
    / ~8 r9 d$ n" C# w: S  V% \
    1. package cn.itcast.dao;
      1 b" }: G5 a0 C) u" S
    2. . G/ k; G) m1 a- L" ]. K
    3. import java.io.Serializable;
      ) G3 k5 s& o  s( p
    4. import java.util.List;: o; i+ A/ C, C: _, E# p& ?( L9 Z( X

    5. * }4 E/ \+ T+ x7 y. u* T" Z
    6. /**
      8 R% l, Z/ Q6 J, z) M1 D
    7. * BaseDao
      ( A. G2 Q7 N9 R1 m4 q+ v/ O0 J
    8. * @author Administrator
        `# t/ t3 \9 ^7 w9 O' k* B0 L
    9. *2 J9 ~- z. p! c5 p) g8 {& i
    10. * @param <T>
      3 M( g% O+ l. X; h+ @5 f. |
    11. */, N+ q6 n1 \$ l/ h/ t. D3 m
    12. public interface BaseDao<T> {
      ; t9 T4 p+ q" I# d' c
    13.     /** 0 f# ^' ~7 A, z; t6 D3 ?0 l
    14.      * 保存一个对象
      * S( o% |& N: j8 \7 [" n  Y1 u7 U
    15.      *  1 o9 r  d7 y4 s% Z
    16.      * @param o
      4 y% V& @$ x' c8 p- U/ B
    17.      * @return ; a2 j, g1 [* K: z
    18.      */  
      6 E6 f1 ^/ V6 e4 k) Q- z9 T
    19.     public Serializable save(T o);  % |0 w4 u- Q: z! r7 p  O; a5 Q- k% Y
    20.   
      9 Q7 t. v, e# K0 K. ^
    21.     /**
      5 Y7 Y6 H6 u, H
    22.      * 删除一个对象 3 U: W$ }/ x6 N3 L9 q" k
    23.      *  ( l2 h( m9 a9 q0 c/ t
    24.      * @param o
      " k; K$ W3 z5 ~* D) A6 t5 q
    25.      */  & {5 |& x" j- W9 t
    26.     public void delete(T o);  / t! N3 z8 }% v3 U6 g
    27.   # S' v) `) M$ P- n2 h  Y
    28.     /** ( I/ I' ^7 v5 f) @8 x; P2 ^" p" C1 ~
    29.      * 更新一个对象
      , H- z6 c3 R5 d1 Z% {
    30.      *  % d% t: q: l7 B5 Q2 a. R& @
    31.      * @param o
      0 Z# f5 D) m; l6 d$ A5 x0 w1 [# t
    32.      */  % t. d/ X4 Q4 z
    33.     public void update(T o);  
      ' Q0 u8 a7 q- G% e
    34.   
      7 h, m6 X' w; N, K" x- I  h
    35.     /** # j/ m6 \& m  i$ |; A" V
    36.      * 保存或更新对象
      1 C8 c. J  Y' u3 B2 h
    37.      *  
      " s2 v, g* l7 Z+ H
    38.      * @param o 0 y% J7 K8 E, V
    39.      */  ' m8 P* L/ h9 ~  ]3 N. ^7 x6 Y
    40.     public void saveOrUpdate(T o);  
      6 R% g, t, z. Y4 k
    41.   
      " E. E* i3 g1 r" X1 _3 G
    42.     /** 6 Y" R) ~& H* C# S8 e7 i! g: B& J
    43.      * 查询 ) G" j7 o& c9 w- y8 d4 z
    44.      *  
      1 p0 u0 D( t& o3 E" S, ]
    45.      * @param hql " O; h* V( J# F7 T! M2 N/ o
    46.      * @return 3 g/ P/ p, t1 m: o. R% k
    47.      */  
      ' }+ x& L2 o( |% L( g$ s
    48.     public List<T> find(String hql);  . t  m5 i/ y0 i
    49.   ' T) D; {' T" D8 g% j- _6 c
    50.     /** ( A) c$ H7 ?9 \. J
    51.      * 查询集合 # I+ D% I. o' o2 d1 }
    52.      *  
      # h9 N. g: M1 w: X6 d/ L. ]9 O6 i; |
    53.      * @param hql
      % w; L- l. ?! x9 p) u
    54.      * @param param
      # n% \( m0 X" Y, _
    55.      * @return $ i% ~- p3 q% H) R. y3 P( e
    56.      */  0 N1 b( o* ]5 C  {* U
    57.     public List<T> find(String hql, Object[] param);  ( c$ x5 ^! w" s; o/ b, m" o
    58.   % C5 y. ?- Z* E) o
    59.     /**
      " v. p" @9 w7 c3 `' j9 n) M: n
    60.      * 查询集合 8 ]5 n. i5 X: x" f
    61.      *  
        C1 q( A0 v$ k! g8 u4 ~1 N
    62.      * @param hql
      : E& e6 o) `, a6 G. w# l+ U
    63.      * @param param
      . x5 j3 f! m  O8 }' u" p
    64.      * @return ' Z5 O) q4 h: N$ ?5 p
    65.      */  ) h' P7 @  w, \' ^- {  w; p: y: X. _$ }
    66.     public List<T> find(String hql, List<Object> param);  ( @1 e3 d) @8 U- d: O7 G
    67.   
      2 @* y  x$ i; D$ l9 z! \
    68.     /** " p7 c( }+ j+ S) g; D
    69.      * 查询集合(带分页)
      . p" }2 I+ _; o5 E2 t
    70.      *  
      7 U$ _6 l% S. ?5 ~$ R
    71.      * @param hql . R6 \3 n* w+ ]7 ?6 S8 h, R: K
    72.      * @param param & X  f: t+ o  i" ?. ]( S
    73.      * @param page
      3 D9 M$ |9 G/ ?5 `/ E
    74.      *            查询第几页
      8 p% K0 |' `9 ^7 Q7 g- R
    75.      * @param rows
      0 ]- A7 e. r2 d0 m# S
    76.      *            每页显示几条记录 + j  ?+ i* \$ _; I  c2 c  C
    77.      * @return
      9 z, |7 \" t6 \7 l7 L2 q' f
    78.      */  
      ) q! T  F2 b/ q5 v  d
    79.     public List<T> find(String hql, Object[] param, Integer page, Integer rows);  
      # {/ H3 e( ]. Y% s
    80.   
      % v, W3 j# ^% `9 D6 n' P
    81.     /**
      3 }+ s& T) [& L1 r4 L  n1 b7 S1 g# U
    82.      * 查询集合(带分页) ! W) H3 k. V! j
    83.      *  ; Q$ U% I5 S2 g9 Y  [0 f8 g- J
    84.      * @param hql
      3 t; k- V3 J2 e- s
    85.      * @param param 4 k$ a% j8 {) F! v% H; k% ^
    86.      * @param page
      7 b1 ?, X4 L. M& A- e
    87.      * @param rows : [  R/ e. D4 i4 w9 N4 b' m
    88.      * @return 2 M. R6 f# n4 E( Q& P
    89.      */  ( W+ @$ J/ ~; _  Z8 v' }- V
    90.     public List<T> find(String hql, List<Object> param, Integer page, Integer rows);  * w% f, c0 ^# p  ~
    91.   ; z) M4 ^0 R! J$ f- V+ V2 ?% A
    92.     /**
      5 w- j# s1 n# f" k  Q
    93.      * 获得一个对象
      # n6 `  W5 L. c& n' @
    94.      *  1 I: {2 P$ U6 Z, a
    95.      * @param c . @5 ]9 c: L) F' [9 j, r' h
    96.      *            对象类型
      2 Q0 x, c% }# |; E
    97.      * @param id ( t: }. i" U3 F: W0 q" E. a
    98.      * @return Object 9 \* Q: |6 z( }1 B2 k
    99.      */  
      9 z+ |6 }+ r9 Q
    100.     public T get(Class<T> c, Serializable id);  
      5 L, p9 `7 A4 C& c1 q( @
    101.   9 C' M* l! m0 N2 G' p8 Q# f! g
    102.     /** & x3 n/ J4 G2 Q. l9 I/ M9 T0 U! h
    103.      * 获得一个对象
      9 `& G3 t- e/ ]9 a
    104.      *  4 L, W! Q; }4 b) N
    105.      * @param hql
      0 ?4 W( l5 {) }
    106.      * @param param
      % F4 Z2 F: T$ S
    107.      * @return Object 7 {& ~: Y9 Y/ k4 q6 {0 D# J
    108.      */  * P/ g  Y+ ?) j# d4 _0 B% U8 k/ n
    109.     public T get(String hql, Object[] param);    O+ V+ [' s0 {# ?1 Y8 ]
    110.   * v' ^3 h) T' g) p3 P4 B: B
    111.     /** : d' o: D0 M8 m3 M5 D7 }. l+ U
    112.      * 获得一个对象
      5 U% T# B2 E  O
    113.      *  
      ! `1 w9 K& i2 g& l
    114.      * @param hql 5 e1 a+ f4 B! [6 `
    115.      * @param param
      $ t. j, T! x1 d( L1 p4 |: |
    116.      * @return
      , v+ l* K- v/ y
    117.      */  
      : I& q+ R0 t- D7 M4 F- L, q8 ^7 s7 ?
    118.     public T get(String hql, List<Object> param);  
      7 g  `) k/ j1 q, V
    119.   2 k1 p3 j$ k" a/ s
    120.     /**
      . p: K; G( M. ]0 k' T8 D
    121.      * select count(*) from 类
      $ w& d, Y( p8 B" I3 X+ Q# j3 G
    122.      *  
      % @+ c) X  ^# e  L  T: `
    123.      * @param hql
      ) m9 k' `4 `9 Q# F
    124.      * @return
      3 Q! K- d1 B4 \' I
    125.      */  
      , Q# e' W5 a/ X8 G8 d! }8 f
    126.     public Long count(String hql);  9 G6 X2 `* R0 r/ s6 i! M
    127.   3 K" A6 ^! [+ r9 ~4 x+ L
    128.     /**
      ; P* i7 [& T4 T5 q  ~
    129.      * select count(*) from 类
      + s7 }* ]: k3 p* R5 Z& g
    130.      *  
      1 E" w( c7 G) _: H
    131.      * @param hql 3 `3 Q0 q1 y/ B; ?- I
    132.      * @param param
      9 |2 K* ^5 c; ^' R: B) F
    133.      * @return
      * z  i$ u* d6 B! `5 u
    134.      */  % W! j/ A4 a' B8 q; d
    135.     public Long count(String hql, Object[] param);  
      " a" U- |* k. a
    136.   
      2 @2 Q8 O% g+ Z* V8 n5 K
    137.     /** ; \# M; S( T7 F8 k
    138.      * select count(*) from 类 4 a! V3 ^! W6 c
    139.      *  
      . g/ a3 L2 L/ V' C
    140.      * @param hql
      # D3 M& L5 {: i+ R, E( w9 F
    141.      * @param param
      / E6 w. |; \  U' _
    142.      * @return
      $ V4 k* ]+ K( t! \6 o0 W) _+ O
    143.      */  + l+ h" W! D' d; s/ {
    144.     public Long count(String hql, List<Object> param);  
      1 Q. i0 R2 S: [
    145.   
      + ?: w- v) M% Q" U5 I
    146.     /**
      9 w& e5 M7 Z4 D; ^2 `; y
    147.      * 执行HQL语句 9 @% K8 P& K" S, s
    148.      *  0 ~* Y! ~) d6 i1 V) V+ U( G
    149.      * @param hql
      " {8 Q, z) p' O& h0 F: v& h
    150.      * @return 响应数目 $ a* ]" A4 @. V! N
    151.      */  
      + @( u8 ~. _2 d1 v: R
    152.     public Integer executeHql(String hql);  
      4 S& w/ E$ t6 h3 Q
    153.   
      ' k0 @* `4 T4 r& x' B
    154.     /** 6 ?% j0 }' B0 u. I
    155.      * 执行HQL语句 ' W; T2 H0 G& Y8 L
    156.      *  5 S7 B" o# l( L4 e9 x/ ?0 p
    157.      * @param hql 7 M" ]6 ~. y4 a$ @
    158.      * @param param # `. W. \1 R: w+ d
    159.      * @return 响应数目 # r1 q7 T9 J5 b
    160.      */  0 i" T; j  J$ E
    161.     public Integer executeHql(String hql, Object[] param);  3 ^/ _  X" ~, x% f* R9 e2 \- g4 p
    162.   1 N; z4 C' y* |9 u' @% V6 J
    163.     /** 2 M7 H1 g0 _: W. r
    164.      * 执行HQL语句
      $ H) @+ q4 s0 Z# K4 i% W
    165.      *  
      0 t+ Z+ [1 X& T4 C  I
    166.      * @param hql
      : M! n+ B# l; h. B
    167.      * @param param - m, G1 y" h, ?1 x3 h
    168.      * @return : v( T9 p! A% c, s" M' c, q& o
    169.      */  6 y/ D1 e& N: g$ }' Y1 O' q; h
    170.     public Integer executeHql(String hql, List<Object> param);  + s0 Q$ i4 U+ ~0 m' X# W2 W" K# m
    171.   
      * [% `! E- m4 ^; ~
    172. }
    复制代码
    1. package cn.itcast.dao;
      3 d  [  Y* u$ A' {( [) k/ w
    2.   H. w$ e* C7 N$ F7 D' T/ h
    3. import java.io.Serializable;
      4 f+ U0 e; n  o
    4. import java.util.List;  Y$ q# H7 ]1 T
    5. 1 D& M5 W3 p4 `5 d" e# z; r
    6. /**
      $ A" l9 S/ r9 C+ q# x% s  X. p
    7. * BaseDao" D. z2 T" {) K  o( d6 A6 z" C
    8. * @author Administrator* q) N) P- k. F+ p
    9. *
      / g" O1 p! x, I9 j% o
    10. * @param <T>
      8 a' S, x. n/ e- V1 z0 y3 i" c
    11. */: K/ ^! O' ^: R1 \. |
    12. public interface BaseDao<T> {
      " w$ I& b" c2 y5 _% ?( i
    13.     /**
      # ]4 y% f: W- P, ]- X/ b  P
    14.      * 保存一个对象
      : m8 K+ `6 S/ w  \* I1 F
    15.      *  2 C- S4 q% A' }0 \3 E! B
    16.      * @param o ; r+ M: z! I: G. v1 l/ U* ^
    17.      * @return
      ) A3 [  e( E& c1 G" t
    18.      */  $ a6 i0 r" h% j# g; Z
    19.     public Serializable save(T o);  8 ~" V$ T1 |4 }- e
    20.   % ?8 K4 x. P, d; n* a! l- m0 L
    21.     /**
      3 Z7 F1 L; T: ^" i& b. V$ n4 w
    22.      * 删除一个对象 $ }/ F  C# q2 B  P
    23.      *  
      # \8 F3 x' x6 N( a7 o, e2 d2 A/ v
    24.      * @param o " s% d$ z! G- L# g1 c8 W
    25.      */  
      ! j4 d. ~4 F8 N0 B  N
    26.     public void delete(T o);  $ H9 U7 C" q( B8 f
    27.   
      $ h+ b8 C# l$ l' g: ?! m
    28.     /** ) R% u$ {( d* @0 K3 p
    29.      * 更新一个对象 0 t% ^5 A4 g0 b& h3 {6 Y4 g
    30.      *  
      7 R8 \4 A# X0 Q1 @
    31.      * @param o
      2 P1 r/ Q" O" N/ P8 |4 j
    32.      */  
      ( t4 ^1 n) B1 v+ y
    33.     public void update(T o);  5 k0 ?1 t% P( I: R1 g
    34.   
      # K9 o' [- l' t4 [7 {! f- {6 D
    35.     /**
      ! _: n/ j! Q9 m- V9 N
    36.      * 保存或更新对象 + Q( [5 {1 U/ k0 i) d* l3 a5 w
    37.      *  
      # f8 M+ }1 G& a( O; A5 Z
    38.      * @param o ( Y9 w: G0 s" h8 i2 \
    39.      */  
      - C" u7 a2 V; G0 x' n" d
    40.     public void saveOrUpdate(T o);  
      3 F3 ^# ~1 u) ]/ c4 I0 r! O+ ?
    41.   & u' m+ `9 w) O5 }
    42.     /** + D4 {3 u7 v8 K8 ]5 L  ^& J
    43.      * 查询 ' o; q! j6 j! n1 e* d
    44.      *  
      " V+ _. _& o( j, v
    45.      * @param hql
      , l- W1 A" k8 a& b/ ~% \7 w8 y
    46.      * @return , {+ x# Y8 c; t8 N+ c/ B. q
    47.      */  ) R2 k& U1 j9 T$ D' _1 E' I6 i$ R
    48.     public List<T> find(String hql);  3 k# S% n. B; b) {9 S3 G
    49.   
      ) ^* J! a; Q9 C5 ?
    50.     /** # I. ^) Y$ Z' }+ f9 N
    51.      * 查询集合
      # V1 W- F3 q# L& V
    52.      *  ; L- X8 w1 d. u* C; \
    53.      * @param hql 8 S) m) Z* N. a6 t
    54.      * @param param # E7 W- y1 L  q$ J
    55.      * @return
      : W  G* T: N/ r
    56.      */  : j% q2 v4 e7 |# V$ B
    57.     public List<T> find(String hql, Object[] param);  4 g$ @# C/ h/ a: W4 ?2 {
    58.   
      6 N/ Y. E! m$ A0 C; |( D2 e; A' j
    59.     /**
      2 i4 P- e& s4 V( O! e' Q/ v  _3 E- Y( N  q
    60.      * 查询集合
      ' g/ v- Z7 g0 s& B8 S4 _6 E, V- v
    61.      *  3 r2 H( ]+ E! h" a' S* k$ L
    62.      * @param hql + Z* q6 i% t+ G" [
    63.      * @param param
      7 B6 Q: _3 W# y: a% i
    64.      * @return
      4 ?' s/ a; y) I8 L& W' M% w2 q
    65.      */  
      8 R3 X3 F) a9 a0 r  `  r" j
    66.     public List<T> find(String hql, List<Object> param);  + t9 q4 {9 P8 o( M6 E" y" K
    67.   ) r: u' |) C% N" b) x% |% b0 Y
    68.     /**
      ( N5 M6 |" J% e
    69.      * 查询集合(带分页)
      2 D8 T$ F9 }* j2 l/ u+ N* Y; d
    70.      *  
      7 |9 B% ^( x. b2 R# ]7 ?
    71.      * @param hql
      ) Y* r3 z( y- C: N- M5 D& H
    72.      * @param param 3 x! W9 d9 p+ e* r4 q
    73.      * @param page 1 c( r; x0 r' |6 _: k4 ]
    74.      *            查询第几页 2 N; {# f" D& m' e8 M/ {4 X
    75.      * @param rows 8 \5 G' G. Q; h/ F
    76.      *            每页显示几条记录 2 G. i) j2 r: ~2 I  Y+ a8 \3 m
    77.      * @return & Q  d- a3 U8 S4 h" f- j% Y- P
    78.      */  4 S; F5 s6 Z; W7 r
    79.     public List<T> find(String hql, Object[] param, Integer page, Integer rows);  2 w$ M4 L8 u& ^6 S
    80.   " m3 ]* w1 y6 S9 s1 R4 ~
    81.     /** 0 A! B1 O. V( A+ X) m8 n* F
    82.      * 查询集合(带分页) " }) W9 d* f3 C( `: \
    83.      *  . k5 `; I, g; M1 }  n( I  E3 T
    84.      * @param hql
        d: [* r6 |3 d3 d5 u1 V. c
    85.      * @param param
        q  U  Y$ ~) U  Q  M- w  @( q
    86.      * @param page
      1 _2 R  S/ O+ t5 p" F5 @
    87.      * @param rows 5 x5 k& P: X* @3 s: s
    88.      * @return
      * L' m' M2 K+ L: P: s0 R* B' Z! K% {
    89.      */  0 q9 g; t$ t' i& I  }' ?2 l: c
    90.     public List<T> find(String hql, List<Object> param, Integer page, Integer rows);  : P9 z% u+ @* M& z
    91.   
      6 [* V+ f) M/ A# J7 j
    92.     /**
      0 c9 J+ J# w) P* r: X1 V' ]( \
    93.      * 获得一个对象
      5 n( ~3 s/ o8 ~  I! d/ b% N
    94.      *  
      : y- i1 m  {, X$ K+ V  V
    95.      * @param c
      / c' t( G4 Q1 q
    96.      *            对象类型 6 S) @( {5 ~" q; q4 a  ^- w
    97.      * @param id
      0 Q0 g8 F' ]+ T0 a% \. V
    98.      * @return Object # I! _( v7 Z& t( x" F
    99.      */  
        M: c' a" y* ~1 w9 s( h1 v
    100.     public T get(Class<T> c, Serializable id);  
      , A7 Y, W3 D) j7 O1 k. J
    101.   + j9 |# f9 h" U4 M: d' @% e
    102.     /** ; C" Y0 w& a5 P' y
    103.      * 获得一个对象   d6 M; Y6 G& y
    104.      *  
      $ M5 `- B: a. j6 a5 y" J4 \5 W
    105.      * @param hql 1 C5 q7 j' t! o8 m8 S' j+ ~6 d! `! b
    106.      * @param param ' N/ w& l4 D6 G+ X5 }* }' I8 b& }
    107.      * @return Object
      3 v0 K5 C/ g- U/ m' q
    108.      */  : l/ Z& z& `# G
    109.     public T get(String hql, Object[] param);  
      - N$ [9 f/ S; }& O; q
    110.   # I  b& q! ]  a5 [' \
    111.     /**
      . V( M  c  H; l  _
    112.      * 获得一个对象 * i, X/ Z- l  B* {6 t- Y
    113.      *  8 u1 x8 [9 y" r% l2 L
    114.      * @param hql
        S* `( i1 B8 Q
    115.      * @param param
      0 O3 e; r& u2 X# }
    116.      * @return & ?; G: L2 m3 k1 \" w- \5 o( D
    117.      */  3 v+ g9 N- _! q& W
    118.     public T get(String hql, List<Object> param);  
      4 S5 q5 w/ G8 @; i! A" Z& l2 i) {
    119.   : s. f7 L0 T; G. f. y+ E
    120.     /**
      ; X  ?$ n# b1 U
    121.      * select count(*) from 类
      0 f4 _& z$ M( ^* `. [
    122.      *  
      " i' \: e+ u2 E8 E7 }
    123.      * @param hql ' @, N: t) k, E* Y( n# c% a
    124.      * @return
      + Y8 U% V  P+ I& w" R3 d/ q
    125.      */  
      $ r5 ^2 y. X: y% d# J$ |. e
    126.     public Long count(String hql);  ) T' K4 W& X, l" \
    127.   * G+ ^- b& T: H% ]
    128.     /**
      " g- @8 h- Y$ N* {  j1 y% S
    129.      * select count(*) from 类
      ) ^) Q/ ]: g8 D6 n
    130.      *  
      5 j6 N! z* \% ]$ h7 J/ x
    131.      * @param hql # v" T( @- w  k2 y# V! \
    132.      * @param param
      ; K( `4 k& o% U2 e0 I8 N- h! j
    133.      * @return + D9 S6 _4 t2 n# L2 b2 R/ ^
    134.      */  8 y  C, `; N$ u; R4 T1 E- n. d
    135.     public Long count(String hql, Object[] param);  
      2 ^" }+ o9 {4 j1 V7 _9 }
    136.   8 h: }/ ~  {  [
    137.     /** ) n$ Y0 m: b3 {1 S* p, R
    138.      * select count(*) from 类
      , a' |6 i+ [* E; f" k! c
    139.      *  ! P7 r8 h; _$ K0 P
    140.      * @param hql 5 |& h9 {3 e% ~& f# W6 h
    141.      * @param param
      % T3 x$ @/ m  a% |
    142.      * @return * u4 J! e- l0 d, F5 ]0 e
    143.      */  
      : ]6 U! O8 _! _$ x8 N
    144.     public Long count(String hql, List<Object> param);  
      7 \5 L8 n2 ?  J$ R' _
    145.   
      " r7 X) g' {: Z9 k0 A
    146.     /** 5 ]8 n8 t: {% \2 Q1 b4 z4 r9 V
    147.      * 执行HQL语句 & m+ M! S) n3 Q# e3 m' z
    148.      *  
      " _# @) d; ^: T2 D. ]; x$ {
    149.      * @param hql , t! a% P/ c+ d' F+ |# H- O
    150.      * @return 响应数目 3 `" l# e4 n( R: i( t6 Z
    151.      */  
        X, ]( k2 R5 A" u
    152.     public Integer executeHql(String hql);  3 U  I5 d% N8 d3 W4 x
    153.   0 [3 [! q. ~2 ~- o" p' c* a
    154.     /**
      ' O* ]& z; n- n  y1 ^
    155.      * 执行HQL语句
      1 R8 }3 V- z: _0 x
    156.      *  / Z: x& g: V# v, K
    157.      * @param hql 4 Q& o2 ?* v; e' [2 L0 O
    158.      * @param param
      : p$ Q4 ^7 g% x
    159.      * @return 响应数目
      4 ~: s4 d/ U/ z2 `3 O. `
    160.      */  
      3 Z$ Z! J$ g5 `( ^
    161.     public Integer executeHql(String hql, Object[] param);  $ Z% E# K9 N/ i7 b3 Z4 e
    162.   ! [1 c# k- m8 s& S  @
    163.     /** + x( r# y2 f+ D! Z& e# Q
    164.      * 执行HQL语句
      - D" Y5 P( K* i  ?" R
    165.      *  3 m; {+ a8 R& z0 y# S; y
    166.      * @param hql
      5 t: ]5 {7 X, K
    167.      * @param param 5 s; _3 N( i+ Y6 a
    168.      * @return ( I7 w% W5 }' p. L) b& `* u
    169.      */  
      6 j# x6 i8 J2 z3 I
    170.     public Integer executeHql(String hql, List<Object> param);  
      % U4 c: k6 B2 c. Q& y7 l
    171.   . s* r1 U# G, j" ]
    172. }
    复制代码
    1. package cn.itcast.dao;7 A- T) A' c  p  S$ v- \' ~; x

    2. * c6 P( `5 i' i& L6 [, E
    3. import cn.itcast.entity.TEmail;
      ; w3 R1 f5 F0 d& {& w
    4. 6 I) i" v2 X0 b% M$ V* @
    5. /**
      . a# w* h6 G/ C5 }
    6. * EmailDao
      3 |! b5 ]7 F0 U% @
    7. * @author Administrator
      + a- j. j. j9 _* X# F' |2 |2 W
    8. *
      . O& ^! }" x, p
    9. */- U2 N0 ~* j. [9 e0 S

    10. " S- S6 x9 u5 G+ h, S( f
    11. public interface TEmailDao {0 D/ y1 l9 a4 c" I
    12.     public TEmail Login(String LoginName,String Password);
      9 K* l) [+ h/ D5 O, F# u
    13.     % Z$ h. G; a0 h( h& D; m
    14.     public TEmail FindByEmail(String param);* ]8 [" S7 y7 [$ q6 O0 d# ^4 T4 s: ]" X
    15.     ! \0 M2 f8 y- Y8 n7 c. ^! ?
    16.     public Integer count(String param);
      + N5 G: [5 N2 v
    17.    
      5 A/ j% ]3 j' Q+ Q3 k% V
    18.     public void saveOrUpdate(TEmail T);/ r. T, M7 M3 H% m- h+ F5 {( k' ^
    19.     + t0 ]( Z- Y# V4 {
    20.     public void save(TEmail T);% B$ H0 N  E  d. w0 [
    21.    
      - V; R" q+ M+ s- H. a1 ^5 h9 {6 X
    22.     public void update(TEmail T);4 w$ d0 v/ t* x2 z6 ^
    23.     9 F5 K' }/ Z3 {- y" q$ }
    24.     public TEmail get(Integer id);
      4 z$ N! d- o! F* U2 ~7 j
    25. }
    复制代码
    1. package cn.itcast.daoImpl;
      ( V  J3 Y  A7 Q9 e+ R

    2. " I+ ]$ K0 c2 j* i1 }+ u" e, O1 e! z. `$ g
    3. import cn.itcast.dao.BaseDao;
      & @/ N' k  t, F& z1 w- @1 f/ y
    4. import cn.itcast.dao.TEmailDao;. I, _+ {( z) F$ u8 m; O8 a* y
    5. import cn.itcast.entity.TEmail;2 Y# n1 P8 M$ ~8 Y) q
    6. : s9 C) {' a3 b! y
    7. /**3 x" n; `$ G$ P: }
    8. * EmailDao实现类调用BaseDao实现EmailDao中的方法
      5 V6 V  V* F" R$ Z" a# m: d3 k
    9. * @author Administrator
      8 l  c' g2 }/ S3 d2 d0 ~6 m
    10. */ M, O5 ~: r: @- b* z0 Y
    11. */! `0 L8 m$ o2 D7 F% l; N5 a  T
    12. public class TEmailDaoImpl implements TEmailDao {
      9 J. c" X2 x: R) g2 T
    13.     private BaseDao<TEmail> baseDao;
        s* \  K& x- Z5 f/ T0 Y* X
    14.    
      / k$ f1 c7 \% C2 o) B
    15.     public BaseDao<TEmail> getBaseDao() {
      + t  a5 G$ [. A# O0 T+ I, V
    16.         return baseDao;$ t0 A' H0 s. o# q% Z+ |1 R2 }
    17.     }* t" C( E& o' o

    18. % O% ^. n; s8 L& x- N* x8 G
    19.     public void setBaseDao(BaseDao<TEmail> baseDao) {$ q' R! o$ X! T2 U' e, C
    20.         this.baseDao = baseDao;
      1 m1 ]7 |- Z: K: I/ u
    21.     }
      8 j. n# R  w$ r+ y$ h
    22. / `/ r; v5 d& {" {5 M
    23.     public TEmail Login(String LoginName,String Password) {5 T# I3 l+ K+ j( d5 g
    24.         String hql="From TEmail where loginName=? and password=?";: o# a7 T; j" }) H) I
    25.         return baseDao.get(hql, new Object[]{LoginName,Password});
      ( \5 t$ P! I; W& F. u' g( F
    26.     }
      0 f- F& c- O% c; J

    27. * ^9 M. Z8 C% c
    28.     public TEmail FindByEmail(String param) {* O: i4 m- }7 [9 R  b
    29.         String hql="From TEmail where email=?";
      . \& }5 c& f  D! i0 e. {
    30.         return baseDao.get(hql, new Object[]{param});% u8 K$ V; a5 u: x
    31.     }
      # s  ^* s2 [& g7 |8 g

    32. 3 s1 B, S7 K( Q( Z( V5 e
    33.     public Integer count(String param) {  F% R6 n: K0 Z# C8 ^6 V
    34.         String hql="Select count(*) From TEmail where email=?";4 N0 w2 Z; @/ A7 i( r' Q# l& |
    35.         Long s=baseDao.count(hql, new Object[]{param});
        T+ B3 g2 k7 q4 L
    36.         return s.intValue();
      : `7 ?. S+ n/ a3 z+ g3 v- ^: O* }
    37.     }
      : g) I- t2 ^) P* S# Q' e+ E' f) J6 w
    38.    
      , ]& K  |, `4 W5 ]% c
    39.     public void saveOrUpdate(TEmail T){. m$ p/ h3 P; p1 D) J, r0 v% h; u( o( K9 p
    40.         baseDao.saveOrUpdate(T);- D2 p  @' q/ D/ X9 e
    41.     }
      " [  @: j# q8 h; k( ]. O! x& v
    42.    
      5 j, G, L& x# x0 z# U2 Z- w+ L
    43.     public void save(TEmail T){/ s+ q# v9 @8 G" n) ^+ d
    44.         baseDao.save(T);- Z" i+ \" }- D9 C8 h
    45.     }' Z/ W" A& D/ Y0 W
    46.    
      8 C$ D& J0 J' z" V9 c# q, U
    47.     public void update(TEmail T){
      8 u' h+ ]6 z  Z6 M
    48.         baseDao.update(T);
      2 g5 {: z/ B4 }: h# b  z, y
    49.     }
      2 f( D7 i2 r- g7 K, M

    50. 2 r) J+ l$ Q( h: k/ X
    51.     public TEmail get(Integer id) {
      % V! ]0 d8 j% ?$ U- R" V' Q# F
    52.         return baseDao.get(TEmail.class, id);0 m+ s  |$ Y+ u' P5 P
    53.     }
      ( {# H0 g) o+ ^$ ~" ]5 U4 H! T
    54.     $ P, w8 G, q5 K; u# ^
    55.     8 w7 |- B0 H3 R5 J1 l+ Q2 T! A4 a  q
    56. }
    复制代码

    ) i5 g: W) y. l' O
    $ ]6 @, i) @/ X3 G/ h# o
    0 o+ f9 D) T$ R/ V

    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    16

    主题

    5

    听众

    213

    金钱

    三袋弟子

    该用户从未签到

    沙发
    发表于 2015-10-27 09:59:31 |只看该作者
    我都是手写dao层,累额
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表