azerphoenix
@azerphoenix
Java Software Engineer

Как лучше хранить сниппеты кодов в БД?

Добрый день!
Пишу небольшую программу java + javafx + sqlite, которая будет хранить сниппеты кодов в БД.
Столкнулся со следующей пробелмой - написанный код при попытке добавления в БД выдает ошибку, хотя если вместо кода ввести просто текст, то все работает.
Подозреваю, что проблема скорее с санитизацией символов... Отсюда вопрос - как лучше хранить сниппеты в БД? Стоит ли сниппет кодировать в base64 и декодировать при выдаче или нужно санитизировать символы?

Код ошибки:
[SQLITE_ERROR] SQL error or missing database (near "publish": syntax error)


@Override
    public void ButtonAdd(ActionEvent actionEvent) {

        snippet.setSnippetTitle(txtTitle.getText());
        snippet.setSnippetCode(txtCode.getText());
        snippet.setSnippetDescription(txtDescr.getText());

        // Добавляем данные в БД
        try {
            SQLiteConfig config = new SQLiteConfig();
            c = db.getInstance().getConnection();

            PreparedStatement stat = c.prepareStatement("INSERT INTO snippets (snippetTitle, snippetCode, snippetDescr) VALUES ('" + snippet.getSnippetTitle() +
                    "','" + snippet.getSnippetCode() + "','" + snippet.getSnippetDescription() +
                     "')");
            stat.executeUpdate();

        } catch (SQLException ex) {
            ex.printStackTrace();
        }

        ButtonCancel(actionEvent);
    }
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Вы не умеете его правильно готовить. Спорим, так будет работать.
// ....
PreparedStatement stat = c.prepareStatement("INSERT INTO snippets (snippetTitle, snippetCode, snippetDescr) VALUES (?,?,?)");
stat.setString(1,snippet.getSnippetTitle());
stat.setString(2,snippet.getSnippetCode());
stat.setString(3, snippet.getSnippetDescription());
stat.executeUpdate();
// ....


ЗЫ. Ответ здесь - https://docs.oracle.com/javase/7/docs/api/java/sql...
и здесь - https://docs.oracle.com/javase/tutorial/jdbc/basic...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
01 дек. 2024, в 11:44
10000 руб./за проект
29 нояб. 2024, в 07:44
20000 руб./за проект
01 дек. 2024, в 10:13
25000 руб./за проект