Вы не должны были использовать \n
в строках вашей БД.Например, следующий код работает без необходимости специальной обработки разрывов строк:
String url = "jdbc:sqlite:poetryDB.db";
try (Connection connection = DriverManager.getConnection(url)) {
try (Statement s = connection.createStatement()) {
s.execute("CREATE TABLE IF NOT EXISTS poem(text TEXT NOT NULL)");
}
// insert poem containing newline
try (PreparedStatement ps = connection.prepareStatement("INSERT INTO poem (text) VALUES (?)")) {
ps.setString(1, "Roses are red \n violets are blue");
ps.executeUpdate();
}
// print content of the db table
try (Statement s = connection.createStatement()) {
ResultSet rs = s.executeQuery("SELECT text FROM POEM");
while (rs.next()) {
System.out.println(rs.getString(1).replace("\\n", "\n"));
System.out.println("----------------");
}
}
}
Если вы действительно хотите хранить символы новой строки как \n
в БД, вам нужно заменить \n
символами новой строки после полученияданные из базы данных:
String value = resultSet.getString(index).replace("\\n", "\n");
Если вы хотите исправить базу данных, все, что вам нужно сделать, это запустить обновление, которое заменяет вхождения \n
:
try (Statement s = connection.createStatement()) {
s.executeUpdate("UPDATE poem SET text = REPLACE(text, '\\n', '\n')");
}