use of net.sf.jsqlparser.statement.update.Update in project JSqlParser by JSQLParser.
the class StatementDeParserTest method shouldUseProvidedDeParsersWhenDeParsingUpdateUsingSelect.
@Test
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
public void shouldUseProvidedDeParsersWhenDeParsingUpdateUsingSelect() {
Update update = new Update();
List<Column> columns = new ArrayList<Column>();
Select select = new Select();
Expression where = mock(Expression.class);
List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
Column column1 = new Column();
Column column2 = new Column();
SelectBody selectBody = mock(SelectBody.class);
OrderByElement orderByElement1 = new OrderByElement();
OrderByElement orderByElement2 = new OrderByElement();
Expression orderByElement1Expression = mock(Expression.class);
Expression orderByElement2Expression = mock(Expression.class);
update.setUseSelect(true);
update.setColumns(columns);
update.setSelect(select);
update.setWhere(where);
update.setOrderByElements(orderByElements);
columns.add(column1);
columns.add(column2);
select.setSelectBody(selectBody);
orderByElements.add(orderByElement1);
orderByElements.add(orderByElement2);
orderByElement1.setExpression(orderByElement1Expression);
orderByElement2.setExpression(orderByElement2Expression);
statementDeParser.visit(update);
then(expressionDeParser).should().visit(column1);
then(expressionDeParser).should().visit(column2);
then(selectBody).should().accept(selectDeParser);
then(where).should().accept(expressionDeParser);
then(orderByElement1Expression).should().accept(expressionDeParser);
then(orderByElement2Expression).should().accept(expressionDeParser);
}
use of net.sf.jsqlparser.statement.update.Update in project JSqlParser by JSQLParser.
the class StatementDeParserTest method shouldUseProvidedDeParsersWhenDeParsingUpdateNotUsingSelect.
@Test
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
public void shouldUseProvidedDeParsersWhenDeParsingUpdateNotUsingSelect() {
Update update = new Update();
List<Column> columns = new ArrayList<Column>();
List<Expression> expressions = new ArrayList<Expression>();
Expression where = mock(Expression.class);
List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
Column column1 = new Column();
Column column2 = new Column();
Expression expression1 = mock(Expression.class);
Expression expression2 = mock(Expression.class);
OrderByElement orderByElement1 = new OrderByElement();
OrderByElement orderByElement2 = new OrderByElement();
Expression orderByElement1Expression = mock(Expression.class);
Expression orderByElement2Expression = mock(Expression.class);
update.setColumns(columns);
update.setExpressions(expressions);
update.setWhere(where);
update.setOrderByElements(orderByElements);
columns.add(column1);
columns.add(column2);
expressions.add(expression1);
expressions.add(expression2);
orderByElements.add(orderByElement1);
orderByElements.add(orderByElement2);
orderByElement1.setExpression(orderByElement1Expression);
orderByElement2.setExpression(orderByElement2Expression);
statementDeParser.visit(update);
then(expressionDeParser).should().visit(column1);
then(expressionDeParser).should().visit(column2);
then(expression1).should().accept(expressionDeParser);
then(expression2).should().accept(expressionDeParser);
then(where).should().accept(expressionDeParser);
then(orderByElement1Expression).should().accept(expressionDeParser);
then(orderByElement2Expression).should().accept(expressionDeParser);
}
use of net.sf.jsqlparser.statement.update.Update in project yyl_example by Relucent.
the class JsqlparserExample method main.
public static void main(String[] args) throws Exception {
String sql = //
"update demo_table t1 set " + //
" column1 = '1' " + //
" ,column2 = '1' " + //
" ,column3 = '2' " + //
" ,column4 = '3' " + " where id=0";
CCJSqlParserManager pm = new CCJSqlParserManager();
Statement statement = pm.parse(new StringReader(sql));
if (statement instanceof Update) {
Update updateStatement = (Update) statement;
System.out.println(updateStatement.getTable());
Expression where = updateStatement.getWhere();
if (where instanceof BinaryExpression) {
BinaryExpression expression = (BinaryExpression) where;
System.out.println(expression.getLeftExpression());
System.out.println(expression.getStringExpression());
System.out.println(expression.getRightExpression());
}
}
}
use of net.sf.jsqlparser.statement.update.Update in project spanner-jdbc by olavloite.
the class AbstractCloudSpannerStatementTest method testCreateInsertSelectOnDuplicateKeyUpdateStatement.
@Test
public void testCreateInsertSelectOnDuplicateKeyUpdateStatement() throws JSQLParserException, SQLException {
String sql = "UPDATE FOO SET BAR=2 WHERE VALUE=1";
Update update = (Update) CCJSqlParserUtil.parse(sql);
String insert = subject.createInsertSelectOnDuplicateKeyUpdateStatement(update);
assertEquals("INSERT INTO `FOO`\n" + "(`ID`, `BAR`)\n" + "SELECT `FOO`.`ID`, 2\n" + "FROM `FOO`\n" + "WHERE VALUE = 1\n" + "ON DUPLICATE KEY UPDATE", insert);
}
use of net.sf.jsqlparser.statement.update.Update in project spanner-jdbc by olavloite.
the class AbstractCloudSpannerStatementTest method testCreateInsertSelectOnDuplicateKeyUpdateStatementWithParametersAndUpdateOnPartOfKeyLowerCase.
@Test
public void testCreateInsertSelectOnDuplicateKeyUpdateStatementWithParametersAndUpdateOnPartOfKeyLowerCase() throws JSQLParserException, SQLException {
String sql = "UPDATE BAR SET id1=?, col1=? WHERE id2=? AND col2=?";
Update update = (Update) CCJSqlParserUtil.parse(sql);
thrown.expect(CloudSpannerSQLException.class);
thrown.expectMessage("UPDATE of a primary key value is not allowed, cannot UPDATE the column(s) ID1");
subject.createInsertSelectOnDuplicateKeyUpdateStatement(update);
}
Aggregations