Форум программистов, компьютерный форум, киберфорум
Наши страницы

Java и базы данных

Войти
Регистрация
Восстановить пароль
 
NNN7
8 / 8 / 3
Регистрация: 05.09.2013
Сообщений: 502
#1

Не могу вставить запись в БД - Java БД

17.02.2015, 21:38. Просмотров 567. Ответов 6
Метки нет (Все метки)

У меня есть переменная
Java
1
String str="text"
мне нужно вставить ее значение в таблицу
пишу :

Java
1
 statement.execute("INSERT INTO users(name, sername, login, email, password, passwprd2)  VALUES (str,str,str,str,str,str )");
но так не получается , выдает ошибки

если писать так :

Java
1
  statement.execute("INSERT INTO users(name, sername, login, email, password, passwprd2)  VALUES ('text','text','text','text','text','text')");
то всё ок , всё записывается

Но мне нужно именно переменные String записывать . Все поля у меня VARCHAR(40) .

Может можно какой-то другой тип для этого задать?

Как это можно сделать ? Подскажите , пожалуйста . Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2015, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу вставить запись в БД (Java БД):

Не могу вставить строку(кириллица) - Java БД
Выдает ошибку. Поменял кодировку на 1251 тоже самое. Сейчас стоит ютф-8 дженерал. Почему нельзя вставить поле с кириллицей? Причем NetBeans...

JBuilder9, MySQL: не могу вставить строчку в базу данных с увеличенным на 1 номером... - Java
Вот примерный вырезанный код: queryResolver1.setDatabase(database1); ...

Не могу вставить запись - SQL Server
Здравствуйте. Не могу вставить запись в свою БД. Сейчас она пустая. Хочу вставить запись в родительскую таблицу Отделы, а ругается, что не...

.NET 4.x C# + ADO.NET + Access 2003. Не могу вставить запись - C#
Доброго времени суток. Приложение не может вставить запись в таблицу, выдает ошибку "Ошибка синтаксиса в инструкции INSERT INTO". ...

Не могу вставить флеш кнопки. Не могу их размещать - HTML, CSS
Мне надо создать мини сайт с таким дизайном, я вроде все сумел сделать, только вот кнопки со ссылками не умею ставить, да и ещё перемещать...

вставить запись - PHP
Здравствуйте! Абсолютный ноль в php. Не вставляется запись в бд(( на выборку 'SELECT' все работало выводило. Подскажите, что делаю не...

6
Sanan07
278 / 258 / 85
Регистрация: 27.07.2014
Сообщений: 584
17.02.2015, 22:21 #2
ПОПРОБУЙ ПЕРЕВЕСТИ В toCharArray() потом вставить
0
Гоблин666
6 / 6 / 2
Регистрация: 12.04.2014
Сообщений: 46
17.02.2015, 22:26 #3
попробуй перед формированием запроса обернуть свою строку в кавычки т.е
Java
1
2
3
4
String str="text";
String  buf_str = "\'"+str+"\'"
 
statement.execute("INSERT INTO users(name, sername, login, email, password, passwprd2)  VALUES (buf_str,buf_str,buf_str,buf_str,buf_str,buf_str)");
P.S точно не помню в какую сторону слэш для экранирования)
0
_Den_
160 / 156 / 18
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
17.02.2015, 23:08 #4
Java
1
2
3
4
String str="text"
PreparedStatement st = connection.prepareStatement("INSERT INTO users(name) VALUES(?)");
st.setString(1,str);
st.execute();
1
NNN7
8 / 8 / 3
Регистрация: 05.09.2013
Сообщений: 502
18.02.2015, 01:23  [ТС] #5
а если у меня несколько столбцов , например, 7
и 1-ый столбец типа int , авто инкрементируется
как тогда писать ?

Java
1
2
3
4
5
6
String str="text"
PreparedStatement st = connection.prepareStatement("INSERT INTO users(name) VALUES(?,?,?.?,?,?)");
st.setString(2,str);
...
st.setString(7,str);
st.execute();
так?

Добавлено через 31 минуту
Вот пробую вот так :

Java
1
2
3
4
5
6
7
8
9
10
11
12
     String INSERT_NEW="INSERT INTO users VALUES (?,?,?,?,?,?,?)";
 
        PreparedStatement preparedStatement=dbWorker.getConnection().prepareStatement(INSERT_NEW);
        preparedStatement.setInt(1,11);
        preparedStatement.setString(2,"aaa");
        preparedStatement.setString(3,"bbb");
        preparedStatement.setString(4,"vvv");
        preparedStatement.setString(5,"bbbbbbb");
        preparedStatement.setString(6,"aaaaaa");
        preparedStatement.setString(7,"yyyyi");
 
        preparedStatement.execute();
у меня id каждый раз само инкрементируется
как тогда записать нужно ? чтобы не точное значение давать
0
_Den_
160 / 156 / 18
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
18.02.2015, 01:24 #6
Почти. Нужно указать все столбцы кроме первого (инкремента) т.е. into users (name,...) values (?...), а далее так же, только начиная с 1
1
turbanoff
Модератор
Эксперт Java
3989 / 3724 / 466
Регистрация: 18.05.2010
Сообщений: 9,294
Записей в блоге: 11
Завершенные тесты: 1
23.02.2015, 13:01 #7
NNN7, да, и Statement не забывайте закрывать обязательно.
Java
1
2
3
4
    try (PreparedStatement preparedStatement=dbWorker.getConnection().prepareStatement(INSERT_NEW)) {
        preparedStatement.setString(,)
        preparedStatement.execute();
   }
0
23.02.2015, 13:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2015, 13:01
Привет! Вот еще темы с ответами:

Вставить запись в БД и получить ее id - Delphi БД
Строка вставляется, а при запросе максимума вылетает: "ошибка ядро базы данных microsoft jet не может найти входную таблицу или запрос." ...

вставить запись + возврат поля - PHP БД
Например, вставил в таблицу данные, а на ID стоит авто_инкремент, чтобы не искать по WHERE, а сразу возвратить ID. Выбор посл. строки не...

Вставить горизонтальную линию в запись - WordPress
помогите как в записе сделать вот такую линию

Каким образом вставить запись? - C++ Builder БД
Вот уж не думал, что возникнут проблемы в таком пустяковом запросе. На форме лежит датасет и грид. Датасет настроен на следующую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru