Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpDbNul 267 of 322 menu
◀ ▶

Пустое значение поля SQL

Значение NULL в SQL означает отсутствие данных, а не пустую строку. Колонку без NOT NULL можно оставить незаполненной при INSERT.

Метод getString после SQL NULL даёт в Java null. Дополнительно проверяют wasNull сразу после чтения:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Main { public static void main(String[] args) throws Exception { try (Connection connection = DriverManager.getConnection("jdbc:sqlite:nulls.db")) { try (Statement statement = connection.createStatement()) { statement.execute(""" CREATE TABLE IF NOT EXISTS memos ( id INTEGER PRIMARY KEY, title TEXT NOT NULL, remark TEXT ) """); statement.executeUpdate( "INSERT INTO memos (title) VALUES ('idea')" ); ResultSet result = statement.executeQuery("SELECT remark FROM memos WHERE id = 1"); if (result.next()) { String text = result.getString("remark"); if (result.wasNull()) { System.out.println("missing"); } else { System.out.println(text); } } } } } } }

Тот же столбец можно прочитать через нуллабельный результат getString без отдельной ветки, если дальше работают только с проверкой на null:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; public class Main { public static void main(String[] args) throws Exception { try (Connection connection = DriverManager.getConnection("jdbc:sqlite:nulls.db")) { PreparedStatement insert = connection.prepareStatement( "INSERT INTO memos (title, remark) VALUES (?, ?)" ); insert.setString(1, "done"); insert.setString(2, "shipped"); insert.executeUpdate(); PreparedStatement query = connection.prepareStatement( "SELECT remark FROM memos WHERE title = ?" ); query.setString(1, "idea"); var result = query.executeQuery(); if (result.next()) { String remark = result.getString("remark"); System.out.println(remark != null ? remark : "none"); } } } } }

Создайте таблицу items в stock.db с обязательным sku и необязательным comment, добавьте строку без комментария и выведите "empty", если поле пустое.

Добавьте строку с комментарием "fragile" и выведите текст комментария для обеих записей.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить