Search in sources :

Example 6 with Update

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);
}
Also used : Column(net.sf.jsqlparser.schema.Column) Expression(net.sf.jsqlparser.expression.Expression) ArrayList(java.util.ArrayList) Select(net.sf.jsqlparser.statement.select.Select) OrderByElement(net.sf.jsqlparser.statement.select.OrderByElement) SelectBody(net.sf.jsqlparser.statement.select.SelectBody) Update(net.sf.jsqlparser.statement.update.Update) Test(org.junit.Test)

Example 7 with Update

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);
}
Also used : Column(net.sf.jsqlparser.schema.Column) Expression(net.sf.jsqlparser.expression.Expression) ArrayList(java.util.ArrayList) OrderByElement(net.sf.jsqlparser.statement.select.OrderByElement) Update(net.sf.jsqlparser.statement.update.Update) Test(org.junit.Test)

Example 8 with Update

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());
        }
    }
}
Also used : BinaryExpression(net.sf.jsqlparser.expression.BinaryExpression) BinaryExpression(net.sf.jsqlparser.expression.BinaryExpression) Expression(net.sf.jsqlparser.expression.Expression) Statement(net.sf.jsqlparser.statement.Statement) StringReader(java.io.StringReader) Update(net.sf.jsqlparser.statement.update.Update) CCJSqlParserManager(net.sf.jsqlparser.parser.CCJSqlParserManager)

Example 9 with Update

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);
}
Also used : Update(net.sf.jsqlparser.statement.update.Update) Test(org.junit.Test) UnitTest(nl.topicus.jdbc.test.category.UnitTest)

Example 10 with Update

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);
}
Also used : Update(net.sf.jsqlparser.statement.update.Update) Test(org.junit.Test) UnitTest(nl.topicus.jdbc.test.category.UnitTest)

Aggregations

Update (net.sf.jsqlparser.statement.update.Update)18 Test (org.junit.Test)12 StringReader (java.io.StringReader)6 ArrayList (java.util.ArrayList)4 Statement (net.sf.jsqlparser.statement.Statement)4 Alter (net.sf.jsqlparser.statement.alter.Alter)4 CreateTable (net.sf.jsqlparser.statement.create.table.CreateTable)4 Delete (net.sf.jsqlparser.statement.delete.Delete)4 Drop (net.sf.jsqlparser.statement.drop.Drop)4 Insert (net.sf.jsqlparser.statement.insert.Insert)4 CCJSqlParserManagerTest (net.sf.jsqlparser.test.simpleparsing.CCJSqlParserManagerTest)4 UnitTest (nl.topicus.jdbc.test.category.UnitTest)4 List (java.util.List)3 Expression (net.sf.jsqlparser.expression.Expression)3 Column (net.sf.jsqlparser.schema.Column)3 Table (net.sf.jsqlparser.schema.Table)3 CreateIndex (net.sf.jsqlparser.statement.create.index.CreateIndex)3 Select (net.sf.jsqlparser.statement.select.Select)3 CreateView (net.sf.jsqlparser.statement.create.view.CreateView)2 OrderByElement (net.sf.jsqlparser.statement.select.OrderByElement)2