33
33
import org .apache .ibatis .mapping .ParameterMapping ;
34
34
import org .apache .ibatis .scripting .xmltags .*;
35
35
36
- import java .util .ArrayList ;
36
+ import java .util .LinkedList ;
37
37
import java .util .List ;
38
38
import java .util .Set ;
39
39
@@ -58,7 +58,7 @@ public SqlNode selectOne(MappedStatement ms) {
58
58
Class <?> entityClass = getSelectReturnType (ms );
59
59
//修改返回值类型为实体类型
60
60
setResultType (ms , entityClass );
61
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
61
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
62
62
//静态的sql部分:select column ... from table
63
63
sqlNodes .add (new StaticTextSqlNode ("SELECT "
64
64
+ EntityHelper .getSelectColumns (entityClass )
@@ -79,7 +79,7 @@ public SqlNode select(MappedStatement ms) {
79
79
Class <?> entityClass = getSelectReturnType (ms );
80
80
//修改返回值类型为实体类型
81
81
setResultType (ms , entityClass );
82
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
82
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
83
83
//静态的sql部分:select column ... from table
84
84
sqlNodes .add (new StaticTextSqlNode ("SELECT "
85
85
+ EntityHelper .getSelectColumns (entityClass )
@@ -138,7 +138,7 @@ public void selectByPrimaryKey(MappedStatement ms) {
138
138
*/
139
139
public SqlNode selectCount (MappedStatement ms ) {
140
140
Class <?> entityClass = getSelectReturnType (ms );
141
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
141
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
142
142
//select count(*) from table
143
143
sqlNodes .add (new StaticTextSqlNode ("SELECT COUNT(*) FROM " + tableName (entityClass )));
144
144
//获取全部列的where,if条件
@@ -154,7 +154,7 @@ public SqlNode selectCount(MappedStatement ms) {
154
154
*/
155
155
public SqlNode insert (MappedStatement ms ) {
156
156
Class <?> entityClass = getSelectReturnType (ms );
157
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
157
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
158
158
//insert into table
159
159
sqlNodes .add (new StaticTextSqlNode ("INSERT INTO " + tableName (entityClass )));
160
160
//获取全部列
@@ -188,7 +188,7 @@ public SqlNode insert(MappedStatement ms) {
188
188
}
189
189
//插入全部的(列名,列名...)
190
190
sqlNodes .add (new StaticTextSqlNode ("(" + EntityHelper .getAllColumns (entityClass ) + ")" ));
191
- List <SqlNode > ifNodes = new ArrayList <SqlNode >();
191
+ List <SqlNode > ifNodes = new LinkedList <SqlNode >();
192
192
//处理所有的values(属性值,属性值...)
193
193
for (EntityHelper .EntityColumn column : columnList ) {
194
194
//优先使用传入的属性值,当原属性property!=null时,用原属性
@@ -225,12 +225,12 @@ public SqlNode insert(MappedStatement ms) {
225
225
*/
226
226
public SqlNode insertSelective (MappedStatement ms ) {
227
227
Class <?> entityClass = getSelectReturnType (ms );
228
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
228
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
229
229
//insert into table
230
230
sqlNodes .add (new StaticTextSqlNode ("INSERT INTO " + tableName (entityClass )));
231
231
//获取全部列
232
232
Set <EntityHelper .EntityColumn > columnList = EntityHelper .getColumns (entityClass );
233
- List <SqlNode > ifNodes = new ArrayList <SqlNode >();
233
+ List <SqlNode > ifNodes = new LinkedList <SqlNode >();
234
234
//Identity列只能有一个
235
235
Boolean hasIdentityKey = false ;
236
236
//当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值
@@ -265,7 +265,7 @@ public SqlNode insertSelective(MappedStatement ms) {
265
265
//将动态的列加入sqlNodes
266
266
sqlNodes .add (new TrimSqlNode (ms .getConfiguration (), new MixedSqlNode (ifNodes ), "(" , null , ")" , "," ));
267
267
268
- ifNodes = new ArrayList <SqlNode >();
268
+ ifNodes = new LinkedList <SqlNode >();
269
269
//处理values(#{property},#{property}...)
270
270
for (EntityHelper .EntityColumn column : columnList ) {
271
271
//当参数中的属性值不为空的时候,使用传入的值
@@ -296,7 +296,7 @@ public SqlNode insertSelective(MappedStatement ms) {
296
296
*/
297
297
public SqlNode delete (MappedStatement ms ) {
298
298
Class <?> entityClass = getSelectReturnType (ms );
299
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
299
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
300
300
//delete from table
301
301
sqlNodes .add (new StaticTextSqlNode ("DELETE FROM " + tableName (entityClass )));
302
302
//where/if判断条件
@@ -332,12 +332,12 @@ public void deleteByPrimaryKey(MappedStatement ms) {
332
332
*/
333
333
public SqlNode updateByPrimaryKey (MappedStatement ms ) {
334
334
Class <?> entityClass = getSelectReturnType (ms );
335
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
335
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
336
336
//update table
337
337
sqlNodes .add (new StaticTextSqlNode ("UPDATE " + tableName (entityClass )));
338
338
//获取全部列
339
339
Set <EntityHelper .EntityColumn > columnList = EntityHelper .getColumns (entityClass );
340
- List <SqlNode > ifNodes = new ArrayList <SqlNode >();
340
+ List <SqlNode > ifNodes = new LinkedList <SqlNode >();
341
341
for (EntityHelper .EntityColumn column : columnList ) {
342
342
if (!column .isId ()) {
343
343
ifNodes .add (new StaticTextSqlNode (column .getColumn () + " = #{" + column .getProperty () + "}, " ));
@@ -346,7 +346,7 @@ public SqlNode updateByPrimaryKey(MappedStatement ms) {
346
346
sqlNodes .add (new SetSqlNode (ms .getConfiguration (), new MixedSqlNode (ifNodes )));
347
347
//获取全部的主键的列
348
348
columnList = EntityHelper .getPKColumns (entityClass );
349
- List <SqlNode > whereNodes = new ArrayList <SqlNode >();
349
+ List <SqlNode > whereNodes = new LinkedList <SqlNode >();
350
350
boolean first = true ;
351
351
//where 主键=#{property} 条件
352
352
for (EntityHelper .EntityColumn column : columnList ) {
@@ -365,12 +365,12 @@ public SqlNode updateByPrimaryKey(MappedStatement ms) {
365
365
*/
366
366
public SqlNode updateByPrimaryKeySelective (MappedStatement ms ) {
367
367
Class <?> entityClass = getSelectReturnType (ms );
368
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
368
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
369
369
//update table
370
370
sqlNodes .add (new StaticTextSqlNode ("UPDATE " + tableName (entityClass )));
371
371
//获取全部列
372
372
Set <EntityHelper .EntityColumn > columnList = EntityHelper .getColumns (entityClass );
373
- List <SqlNode > ifNodes = new ArrayList <SqlNode >();
373
+ List <SqlNode > ifNodes = new LinkedList <SqlNode >();
374
374
//全部的if property!=null and property!=''
375
375
for (EntityHelper .EntityColumn column : columnList ) {
376
376
if (!column .isId ()) {
@@ -381,7 +381,7 @@ public SqlNode updateByPrimaryKeySelective(MappedStatement ms) {
381
381
sqlNodes .add (new SetSqlNode (ms .getConfiguration (), new MixedSqlNode (ifNodes )));
382
382
//获取全部的主键的列
383
383
columnList = EntityHelper .getPKColumns (entityClass );
384
- List <SqlNode > whereNodes = new ArrayList <SqlNode >();
384
+ List <SqlNode > whereNodes = new LinkedList <SqlNode >();
385
385
boolean first = true ;
386
386
//where 主键=#{property} 条件
387
387
for (EntityHelper .EntityColumn column : columnList ) {
@@ -401,7 +401,7 @@ public SqlNode updateByPrimaryKeySelective(MappedStatement ms) {
401
401
public SqlNode selectCountByExample (MappedStatement ms ) {
402
402
Class <?> entityClass = getSelectReturnType (ms );
403
403
404
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
404
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
405
405
//静态的sql部分:select column ... from table
406
406
sqlNodes .add (new StaticTextSqlNode ("SELECT COUNT(*) FROM " + tableName (entityClass )));
407
407
IfSqlNode ifNullSqlNode = new IfSqlNode (exampleWhereClause (ms .getConfiguration ()), "_parameter != null" );
@@ -418,7 +418,7 @@ public SqlNode selectCountByExample(MappedStatement ms) {
418
418
public SqlNode deleteByExample (MappedStatement ms ) {
419
419
Class <?> entityClass = getSelectReturnType (ms );
420
420
421
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
421
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
422
422
//静态的sql部分:select column ... from table
423
423
sqlNodes .add (new StaticTextSqlNode ("DELETE FROM " + tableName (entityClass )));
424
424
IfSqlNode ifNullSqlNode = new IfSqlNode (exampleWhereClause (ms .getConfiguration ()), "_parameter != null" );
@@ -437,7 +437,7 @@ public SqlNode selectByExample(MappedStatement ms) {
437
437
Class <?> entityClass = getSelectReturnType (ms );
438
438
//将返回值修改为实体类型
439
439
setResultType (ms , entityClass );
440
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
440
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
441
441
//静态的sql部分:select column ... from table
442
442
sqlNodes .add (new StaticTextSqlNode ("SELECT" ));
443
443
IfSqlNode distinctSqlNode = new IfSqlNode (new StaticTextSqlNode ("DISTINCT" ), "distinct" );
@@ -473,12 +473,12 @@ public SqlNode selectByExampleAndRowBounds(MappedStatement ms) {
473
473
*/
474
474
public SqlNode updateByExampleSelective (MappedStatement ms ) {
475
475
Class <?> entityClass = getSelectReturnType (ms );
476
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
476
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
477
477
//update table
478
478
sqlNodes .add (new StaticTextSqlNode ("UPDATE " + tableName (entityClass )));
479
479
//获取全部列
480
480
Set <EntityHelper .EntityColumn > columnList = EntityHelper .getColumns (entityClass );
481
- List <SqlNode > ifNodes = new ArrayList <SqlNode >();
481
+ List <SqlNode > ifNodes = new LinkedList <SqlNode >();
482
482
483
483
for (EntityHelper .EntityColumn column : columnList ) {
484
484
if (!column .isId ()) {
@@ -501,12 +501,12 @@ public SqlNode updateByExampleSelective(MappedStatement ms) {
501
501
*/
502
502
public SqlNode updateByExample (MappedStatement ms ) {
503
503
Class <?> entityClass = getSelectReturnType (ms );
504
- List <SqlNode > sqlNodes = new ArrayList <SqlNode >();
504
+ List <SqlNode > sqlNodes = new LinkedList <SqlNode >();
505
505
//update table
506
506
sqlNodes .add (new StaticTextSqlNode ("UPDATE " + tableName (entityClass )));
507
507
//获取全部列
508
508
Set <EntityHelper .EntityColumn > columnList = EntityHelper .getColumns (entityClass );
509
- List <SqlNode > setSqlNodes = new ArrayList <SqlNode >();
509
+ List <SqlNode > setSqlNodes = new LinkedList <SqlNode >();
510
510
//全部的if property!=null and property!=''
511
511
for (EntityHelper .EntityColumn column : columnList ) {
512
512
if (!column .isId ()) {
0 commit comments