Class InsertQuery.Values

java.lang.Object
io.bitbucket.dsmoons.odk.sql.query.builder.statement.InsertQuery.Values
Enclosing class:
InsertQuery

public static class InsertQuery.Values extends Object
Класс с методами добавления оператора VALUES
  • Method Summary

    Modifier and Type
    Method
    Description
    Метод добавляет строку запроса SelectQuery для построения запроса "INSERT INTO SELECT" co вставкой всех столбцов из одной таблицы в другую.
    select(List<?> keys, SelectQuery s)
    Метод добавляет строку запроса SelectQuery для построения запроса "INSERT INTO SELECT" со вставкой некоторых столбцов из одной таблицы в другую.
    Метод добавляет оператор VALUES к строке запроса.
    values(List<?> list)
    Метод добавляет оператор VALUES к строке запроса.
    values(List<String> keys, List<?> values0, List<?>... valuesN)
    Метод добавляет оператор VALUES к строке запроса.
    values(Map<String,?> map)
    Метод добавляет оператор VALUES к строке запроса.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • values

      public InsertQuery values(String v)

      Метод добавляет оператор VALUES к строке запроса.

      Parameters:
      v - Выражение оператора
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.0.0
    • values

      public InsertQuery values(List<?> list)

      Метод добавляет оператор VALUES к строке запроса.

      В list должны быть переданы значения для всех столбцов таблицы. В противном случае используйте метод values(Map) или values(List, List, List[])

      Убедитесь, что порядок значений соответствует порядку столбцов в таблице.

      Parameters:
      list - Список выражений оператора
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.0.0
    • values

      public InsertQuery values(Map<String,?> map)

      Метод добавляет оператор VALUES к строке запроса.

      
       insert().into("table1").values(Map.of("k1", "v1", "k2", 2))
       // INSERT INTO table1 (k1, k2) VALUES ('v1', 2)
       

      При необходимости вставить значение NULL, используйте реализацию Map, позволяющую использовать null в качестве значения. Например, HashMap.

      
       var map = new HashMap<String, Object>();
       map.put("k1", 1);
       map.put("k2", "v2");
       map.put("k3", null);
       insert().into("table1").values(map)
       // INSERT INTO table1 (k1, k2, k3) VALUES (1, "v2", NULL)
       
      Parameters:
      map - Ассоциативный массив выражений оператора
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.0.0
    • values

      public InsertQuery values(List<String> keys, List<?> values0, List<?>... valuesN)

      Метод добавляет оператор VALUES к строке запроса.

      Убедитесь, что ключи и значения в списках расположены в одинаковом порядке.

      
        insert().into("table").values(
            List.of("name", "age", "code"),
            List.of("n1", 20, 456),
            List.of("n2", 30, 12),
            List.of("n3", 40, 578)
        )
        // INSERT INTO table (name, age, code) VALUES ('n1', 20, 456), ('n2', 30, 12), ('n3', 40, 578)
       
      Parameters:
      keys - Список с ключами для оператора
      values0 - Список выражений оператора
      valuesN - Дополнительные списки выражений оператора при необходимости
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.0.0
    • select

      public InsertQuery select(SelectQuery s)

      Метод добавляет строку запроса SelectQuery для построения запроса "INSERT INTO SELECT" co вставкой всех столбцов из одной таблицы в другую.

      
        var query = insert().into("table").select(select().from("table2").where(...));
        // INSERT INTO table SELECT * FROM table2 WHERE ...
       
      Parameters:
      s - SelectQuery
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.6.0
    • select

      public InsertQuery select(List<?> keys, SelectQuery s)

      Метод добавляет строку запроса SelectQuery для построения запроса "INSERT INTO SELECT" со вставкой некоторых столбцов из одной таблицы в другую.

      Список столбцов в INSERT и SELECT должен быть одинаковым.

      
        var list = List.of("name", "age", "city");
        var query = insert().into("table").select(list, select(list).from("table2").where(...));
        //  INSERT INTO table (name, age, city) SELECT name, age, city FROM table2 WHERE ...
      
        var name = field("name", "t2");
        var age = field("age", "t2");
        var city = field("city", "t2");
        var list2 = List.of(name, age, city);
        var query = insert().into("table").select(list2, select(list2).from("table2", "t2").where(...));
        // INSERT INTO table (name, age, city) SELECT t2.name, t2.age, t2.city FROM table2 t2 WHERE ...
       
      Parameters:
      keys - Список столбцов
      s - SelectQuery
      Returns:
      Объект InsertQuery для продолжения построения запроса
      Since:
      1.6.0