5
5
import com .google .common .collect .Sets ;
6
6
import me .zhengjie .utils .WhereFun ;
7
7
import me .zhengjie .utils .WrapperUtils ;
8
- import org . springframework . beans . factory . annotation . Value ;
8
+ import me . zhengjie . utils . enums . DbType ;
9
9
import org .springframework .data .jpa .repository .JpaRepository ;
10
10
11
11
import java .io .Serializable ;
20
20
public class BaseDao <I extends IService <T >, J extends JpaRepository <T , ID >, T , ID extends Serializable > {
21
21
protected I mpService ;
22
22
protected J jpaRepository ;
23
- @ Value ("${db.type.switch:false}" )
24
- protected boolean dbSwitch ;
23
+ protected DbType dbType = DbType .JPA ;
25
24
26
25
public BaseDao (I mpService , J jpaRepository ) {
27
26
this .mpService = mpService ;
28
27
this .jpaRepository = jpaRepository ;
29
28
}
30
29
31
- public void save (T columnInfo ) {
32
- if (dbSwitch ) {
33
- jpaRepository .save (columnInfo );
34
- } else {
35
- mpService .save (columnInfo );
30
+ public T save (T t ) {
31
+ T t1 ;
32
+ switch (dbType ) {
33
+ case JPA :
34
+ t1 = jpaRepository .save (t );
35
+ break ;
36
+ case MYBATIS :
37
+ mpService .save (t );
38
+ t1 = t ;
39
+ break ;
40
+ default :
41
+ throw new IllegalStateException ("Unexpected value: " + dbType );
36
42
}
43
+ return t1 ;
37
44
}
38
45
39
46
public List <T > saveAll (List <T > entities ) {
40
- if (dbSwitch ) {
41
- return jpaRepository .saveAll (entities );
42
- } else {
43
- mpService .saveBatch (entities );
44
- return entities ;
47
+ List <T > result ;
48
+ switch (dbType ) {
49
+ case JPA :
50
+ result = jpaRepository .saveAll (entities );
51
+ break ;
52
+ case MYBATIS :
53
+ mpService .saveBatch (entities );
54
+ result = entities ;
55
+ break ;
56
+ default :
57
+ throw new IllegalStateException ("Unexpected value: " + dbType );
45
58
}
59
+ return result ;
46
60
}
47
61
48
62
public void delete (T entity ) {
49
- if (dbSwitch ) {
50
- jpaRepository .delete (entity );
51
- } else {
52
- mpService .remove (WrapperUtils .excute (entity , Wrappers .query (), WhereFun .DEFAULT ));
63
+ switch (dbType ) {
64
+ case JPA :
65
+ jpaRepository .delete (entity );
66
+ break ;
67
+ case MYBATIS :
68
+ mpService .remove (WrapperUtils .excute (entity , Wrappers .query (), WhereFun .DEFAULT ));
69
+ break ;
70
+ default :
71
+ throw new IllegalStateException ("Unexpected value: " + dbType );
53
72
}
54
73
}
55
74
56
75
public void deleteById (ID id ) {
57
- if (dbSwitch ) {
58
- jpaRepository .deleteById (id );
59
- } else {
60
- mpService .removeById (id );
76
+ switch (dbType ) {
77
+ case JPA :
78
+ jpaRepository .deleteById (id );
79
+ break ;
80
+ case MYBATIS :
81
+ mpService .removeById (id );
82
+ break ;
83
+ default :
84
+ throw new IllegalStateException ("Unexpected value: " + dbType );
61
85
}
62
86
}
63
87
64
88
public void update (T columnInfo ) {
65
- if (dbSwitch ) {
66
- jpaRepository .saveAndFlush (columnInfo );
67
- } else {
68
- mpService .saveOrUpdate (columnInfo );
89
+ switch (dbType ) {
90
+ case JPA :
91
+ jpaRepository .saveAndFlush (columnInfo );
92
+ break ;
93
+ case MYBATIS :
94
+ mpService .saveOrUpdate (columnInfo );
95
+ break ;
96
+ default :
97
+ throw new IllegalStateException ("Unexpected value: " + dbType );
69
98
}
70
99
}
71
100
72
101
public void batUpdate (List <T > entities ) {
73
- if (dbSwitch ) {
74
- jpaRepository .saveAll (entities );
75
- } else {
76
- mpService .saveOrUpdateBatch (entities );
102
+ switch (dbType ) {
103
+ case JPA :
104
+ jpaRepository .saveAll (entities );
105
+ break ;
106
+ case MYBATIS :
107
+ mpService .saveOrUpdateBatch (entities );
108
+ break ;
109
+ default :
110
+ throw new IllegalStateException ("Unexpected value: " + dbType );
77
111
}
78
112
}
79
113
80
114
public T selectById (ID id ) {
81
115
T t ;
82
- if (dbSwitch ) {
83
- t = jpaRepository .getOne (id );
84
- } else {
85
- t = mpService .getById (id );
116
+ switch (dbType ) {
117
+ case JPA :
118
+ t = jpaRepository .getOne (id );
119
+ break ;
120
+ case MYBATIS :
121
+ t = mpService .getById (id );
122
+ break ;
123
+ default :
124
+ throw new IllegalStateException ("Unexpected value: " + dbType );
86
125
}
87
126
return t ;
88
127
}
89
128
90
129
public List <T > selectAllById (Iterable <ID > ids ) {
91
130
List <T > t ;
92
- if (dbSwitch ) {
93
- t = jpaRepository .findAllById (ids );
94
- } else {
95
- t = mpService .listByIds (Sets .newHashSet (ids ));
131
+ switch (dbType ) {
132
+ case JPA :
133
+ t = jpaRepository .findAllById (ids );
134
+ break ;
135
+ case MYBATIS :
136
+ t = mpService .listByIds (Sets .newHashSet (ids ));
137
+ break ;
138
+ default :
139
+ throw new IllegalStateException ("Unexpected value: " + dbType );
96
140
}
97
141
return t ;
98
142
}
@@ -113,11 +157,11 @@ public void setJpaRepository(J jpaRepository) {
113
157
this .jpaRepository = jpaRepository ;
114
158
}
115
159
116
- public boolean isDbSwitch () {
117
- return dbSwitch ;
160
+ public DbType getDbType () {
161
+ return dbType ;
118
162
}
119
163
120
- public void setDbSwitch ( boolean dbSwitch ) {
121
- this .dbSwitch = dbSwitch ;
164
+ public void setDbType ( DbType dbType ) {
165
+ this .dbType = dbType ;
122
166
}
123
167
}
0 commit comments