MCPcopy Create free account
hub / github.com/Nemo1870/sql-parse / Select

Class Select

src/main/java/com/sql/parse/statement/impl/jsqlparser/Select.java:32–557  ·  view source on GitHub ↗

@date 2019年4月29日上午11:32:02 @desc Select语法操作类

Source from the content-addressed store, hash-verified

30 * @desc Select语法操作类
31 */
32public class Select extends com.sql.parse.statement.Select {
33 private net.sf.jsqlparser.statement.select.Select select;
34
35 public Select(net.sf.jsqlparser.statement.select.Select select) {
36 this.select = select;
37 }
38
39 public Select(Table table) {
40 this.select = SelectUtils.buildSelectFromTable(transformTable(table));
41 isChangeColumn = true;
42 }
43
44 public Select(String tableName) {
45 this(new Table(tableName));
46 }
47
48 /*public Select(Owner table, SelectItem... columns) {
49 if(columns.length==0){
50 this.select = SelectUtils.buildSelectFromTable(table.getTable());
51 }else{
52 SelectExpressionItem[] array = new SelectExpressionItem[columns.length];
53 for (int i = 0; i < columns.length; i++) {
54 array[i] = columns[i].getColumn();
55 }
56 this.select = SelectUtils.buildSelectFromTableAndSelectItems(table.getTable(), array);
57 }
58 }*/
59
60 private net.sf.jsqlparser.schema.Table transformTable(Table table) {
61 net.sf.jsqlparser.schema.Table t = new net.sf.jsqlparser.schema.Table(table.getTableName());
62 if (table.getAlias() != null) {
63 Alias alias = new Alias(table.getAlias(), table.isUseAs());
64 t.setAlias(alias);
65 }
66 return t;
67 }
68
69 @Override
70 public String getSql(boolean safe) {
71 /*where条件为空时,添加[rownum<500]或[limit 500]的条件表达式*/
72 Select mySelect = this.clone();
73 PlainSelect plainSelect = (PlainSelect) mySelect.getSelect().getSelectBody();
74 if (plainSelect.getLimit() == null) {
75 boolean flag = true;
76 List<net.sf.jsqlparser.statement.select.SelectItem> selectItems = plainSelect.getSelectItems();
77 if (selectItems.size() == 1) {
78 net.sf.jsqlparser.statement.select.SelectItem selectItem = selectItems.get(0);
79 if (!(selectItem instanceof AllColumns)) {
80 Expression expression = ((SelectExpressionItem) selectItem).getExpression();
81 if (expression instanceof Function && "count".equals(((Function) expression).getName())) {
82 flag = false;
83 }
84 }
85 }
86 if (plainSelect.getWhere() != null) {
87 flag = false;
88 }
89 if (safe && flag) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected