2222package net .sf .jsqlparser .util ;
2323
2424import java .util .ArrayList ;
25+ import java .util .Arrays ;
2526import java .util .List ;
27+ import net .sf .jsqlparser .JSQLParserException ;
2628import net .sf .jsqlparser .expression .Expression ;
29+ import net .sf .jsqlparser .parser .CCJSqlParserUtil ;
30+ import net .sf .jsqlparser .schema .Column ;
2731import net .sf .jsqlparser .schema .Table ;
32+ import net .sf .jsqlparser .statement .select .AllColumns ;
2833import net .sf .jsqlparser .statement .select .Join ;
2934import net .sf .jsqlparser .statement .select .PlainSelect ;
3035import net .sf .jsqlparser .statement .select .Select ;
3136import net .sf .jsqlparser .statement .select .SelectExpressionItem ;
37+ import net .sf .jsqlparser .statement .select .SelectItem ;
3238import net .sf .jsqlparser .statement .select .SelectVisitor ;
3339import net .sf .jsqlparser .statement .select .SetOperationList ;
3440import net .sf .jsqlparser .statement .select .WithItem ;
@@ -42,6 +48,53 @@ public final class SelectUtils {
4248
4349 private SelectUtils () {
4450 }
51+
52+ /**
53+ * Builds select expr1, expr2 from table.
54+ * @param table
55+ * @param expr
56+ * @return
57+ */
58+ public static Select buildSelectFromTableAndExpressions (Table table , Expression ... expr ) {
59+ SelectItem [] list = new SelectItem [expr .length ];
60+ for (int i =0 ;i <expr .length ;i ++) {
61+ list [i ]=new SelectExpressionItem (expr [i ]);
62+ }
63+ return buildSelectFromTableAndSelectItems (table , list );
64+ }
65+
66+ /**
67+ * Builds select expr1, expr2 from table.
68+ * @param table
69+ * @param expr
70+ * @return
71+ * @throws net.sf.jsqlparser.JSQLParserException
72+ */
73+ public static Select buildSelectFromTableAndExpressions (Table table , String ... expr ) throws JSQLParserException {
74+ SelectItem [] list = new SelectItem [expr .length ];
75+ for (int i =0 ;i <expr .length ;i ++) {
76+ list [i ]=new SelectExpressionItem (CCJSqlParserUtil .parseExpression (expr [i ]));
77+ }
78+ return buildSelectFromTableAndSelectItems (table , list );
79+ }
80+
81+ public static Select buildSelectFromTableAndSelectItems (Table table , SelectItem ... selectItems ) {
82+ Select select = new Select ();
83+ PlainSelect body = new PlainSelect ();
84+ body .addSelectItems (selectItems );
85+ body .setFromItem (table );
86+ select .setSelectBody (body );
87+ return select ;
88+ }
89+
90+ /**
91+ * Builds select * from table.
92+ * @param table
93+ * @return
94+ */
95+ public static Select buildSelectFromTable (Table table ) {
96+ return buildSelectFromTableAndSelectItems (table , new AllColumns ());
97+ }
4598
4699 /**
47100 * Adds an expression to select statements. E.g. a simple column is an
0 commit comments