Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/76: Рейтинг темы: голосов - 76, средняя оценка - 4.79
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
SQLite

Добавить строку в таблицу

21.10.2014, 18:06. Показов 15833. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу добавить в таблицу.

Java
1
2
3
4
5
6
7
public static void WriteDB(String name, String surname, String age){
        try {
            statmt.execute("INSERT INTO 'users' ('name', 'surname', 'age') VALUES (name, surname, age); ");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2014, 18:06
Ответы с готовыми решениями:

Добавить строку в таблицу
Здравствуйте! Код добавления строки в таблицу: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type"...

Добавить строку в таблицу
у меня есть таблица, и я не могу добавить в нее строку т.к. у меня нет метода addRow. скажите что мне надо сделать? import...

Добавить строку в таблицу БД
Как добавить строку к значению в бд? Например в бд есть такая запись: log 1 log 2 log 3 Нужно 1 запросом добавить к этой...

10
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
21.10.2014, 18:21
Мне кажется или проблема в том, что вы не используете аргументы метода. Вот
Java
1
statmt.execute("INSERT INTO 'users' ('name', 'surname', 'age') VALUES (" + name + "," + surname + "," + age + ")");
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
22.10.2014, 16:36  [ТС]
Не помогло, теперь в базу я могу добавлять только цифры,а мне нужно и строки. Когда пытаюсь добавить строку выдает ошибку, если добавляю число, то все норм.
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
22.10.2014, 17:22
asdzxc, что за ошибку выдает? Вы когда базу создавали, тип атрибутов какой указывали?
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
22.10.2014, 17:30  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package Users;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class ConnectionToDatabase {
    
    public static Connection conn;
    public static Statement statmt;
    public static ResultSet resSet;
    
    public static void Connect(){
        conn = null;
        try {
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection("jdbc:sqlite:11b.s3db");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    public static void CreateDB(){
        try {
            statmt = conn.createStatement();
            statmt.execute("CREATE TABLE if not exists 'users' ('id' INTEGER PRIMARY KEY AUTOINCREMENT, 'name', 'surname', 'age');");
            } catch (SQLException e) {
                e.printStackTrace();
                }
        }
 
    public static void WriteDB(String name, String surname, String age){
        try {
            statmt.execute("INSERT INTO 'users' ('name', 'surname', 'age') VALUES (" + name + "," + surname + "," + age + ")");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    public static void ReadDB(){
        try {
            resSet = statmt.executeQuery("SELECT * FROM users");
            while(resSet.next()){
                int id = resSet.getInt("id");
                String  name = resSet.getString("name");
                String  surname = resSet.getString("surname");
                String age = resSet.getString("age");
                Table.profiles.add(new Profiles(name,surname,age));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    public static void CloseDB(){
        try {
            conn.close();
            statmt.close();
            resSet.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
Добавлено через 1 минуту
Вот ошибка
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such column: Nikita)
at org.sqlite.DB.newSQLException(DB.java:38 3)
at org.sqlite.DB.newSQLException(DB.java:38 7)
at org.sqlite.DB.throwex(DB.java:374)
at org.sqlite.NativeDB.prepare(Native Method)
at org.sqlite.DB.prepare(DB.java:123)
at org.sqlite.Stmt.execute(Stmt.java:113)
at Users.ConnectionToDatabase.WriteDB(Conne ctionToDatabase.java:38)
at Users.AddNew$1.actionPerformed(AddNew.ja va:42)
at javax.swing.AbstractButton.fireActionPer formed(Unknown Source)
at javax.swing.AbstractButton$Handler.actio nPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActio nPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPresse d(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListen er.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unk nown Source)
at javax.swing.JComponent.processMouseEvent (Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unk nown Source)
at java.awt.Container.dispatchEventImpl(Unk nown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetM ouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMo useEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchE vent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unk nown Source)
at java.awt.Window.dispatchEventImpl(Unknow n Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Un known Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivile ged(Native Method)
at java.security.ProtectionDomain$1.doInter sectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doInter sectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivile ged(Native Method)
at java.security.ProtectionDomain$1.doInter sectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknow n Source)
at java.awt.EventDispatchThread.pumpOneEven tForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsF orFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsF orHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents( Unknown Source)
at java.awt.EventDispatchThread.pumpEvents( Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
22.10.2014, 17:58
Почему age - String, а не int? Пробуйте так
Java
1
2
3
4
5
6
7
8
9
10
static void WriteDB(String name, String surname, int age){
        try {
            PreparedStatement st = conn.prepareStatement("INSERT INTO users (name, surname, age) VALUES (?, ?, ?)");
            st.setString(1,name);
            st.setString(2, surname);
            st.setInt(3,age);
            st.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
Добавлено через 7 минут
Я не знаю ставиться ли какой-то тип атрибутов по умолчанию, но почему вы указали тип только атрибуту id? Вот пример,
SQL
1
CREATE TABLE Persons (PersonID INT, LastName VARCHAR(255), FirstName VARCHAR(255), Address VARCHAR(255), Age INT);
Добавлено через 4 минуты
Может будет полезно SQLite Java Tutorial

Добавлено через 10 минут
SQL
1
CREATE TABLE IF NOT EXISTS 'users' ('id' INTEGER PRIMARY KEY AUTOINCREMENT, 'name' TEXT, 'surname' TEXT, 'age' INT);
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
22.10.2014, 20:18  [ТС]
Я пользовался этой информацией http://habrahabr.ru/sandbox/88039/
0
 Аватар для _Den_
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
22.10.2014, 20:35
asdzxc, там точно так же в запросах каждому атрибуту дается свой тип, такой же запрос как и у вас почти. Только поймите разницу, у вас запрос с параметрами, то есть вы хотите через метод кинуть аргументы в запрос. И это совсем разные вещи с тем, что на хабре написано. На хабре так:
Java
1
2
3
4
5
6
7
8
public static void WriteDB() throws SQLException
    {
           statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Petya', 125453); ");
           statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Vasya', 321789); ");
           statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Masha', 456123); ");
          
           System.out.println("Таблица заполнена");
    }
Вам же надо так:
Java
1
2
3
4
5
6
7
8
9
10
static void WriteDB(String name, String surname, int age){
        try {
            PreparedStatement st = conn.prepareStatement("INSERT INTO users (name, surname, age) VALUES (?, ?, ?)");
            st.setString(1,name);
            st.setString(2, surname);
            st.setInt(3,age);
            st.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
Но перед этим исправить запрос на создание таблицы на
SQL
1
CREATE TABLE IF NOT EXISTS 'users' ('id' INTEGER PRIMARY KEY AUTOINCREMENT, 'name' TEXT, 'surname' TEXT, 'age' INT);
Только старую нужно удалить командой DROP. Советую вам подробнее изучить SQL и JDBC.
1
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 38
07.04.2016, 16:21
мне показалось, что я сделала по образу и подобию, но идее что-то не нравится все равно((
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: DataBase)

моя база, созданная в SQLite называется Swing, а таблица в ней - DataBase

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static void WriteDB(String name, String logins[],String firstNames[],String names[],String lastNames[], Integer numbers[]) throws SQLException{
 
        //for (int i=0;i<logins.length;i++) {
        int i=0;
            try {
                PreparedStatement pStnt=cnn.prepareStatement("INSERT INTO DataBase ('Login','First name','Name','Last name', 'Number') VALUES (?,?,?,?,?)");
            //pStnt.setString(1,name);
                pStnt.setString(1,logins[i]);
                pStnt.setString(2,firstNames[i]);
                pStnt.setString(3,names[i]);
                pStnt.setString(4,lastNames[i]);
                pStnt.setInt(5,numbers[i]);
                pStnt.execute();
            //stnt.execute("INSERT INTO " + name + " ('Login','First name','Name','Last name', 'Number') VALUES (" + logins[i] + ", "+ firstNames[i]+", "+ names[i] + ", " +lastNames[i]+", "+numbers[i] +")");
            } catch (SQLException e) {
            e.printStackTrace();
            }
        //}
Java
1
2
3
4
5
6
7
8
9
10
11
12
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //DataBase.CrtDB(shName);
        DataBase.Cntn();
        logins[0]="fis";
        firstNames[0]="From";
        names[0]="Ire";
        lastNames[0]="Som";
        numbers[0]=890823;
        //System.out.println(Arrays.toString(values));
        DataBase.WriteDB(tableName,logins,firstNames,names,lastNames,numbers);
        MyWindow mw = new MyWindow();
}
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
07.04.2016, 23:10  [ТС]
Цитата Сообщение от Eliy Посмотреть сообщение
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: DataBase)
У вас нет базы или такой таблицы: DataBase.
1
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 38
07.04.2016, 23:22
там оказалось, что пробел лишний, потом названия неправильно написаны с пробелом..в общем, вот работающий код:
и стейтмент у меня и в криейт и в коннект создавался))

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public static void WriteDB(String name, String logins[],String firstNames[],String names[],String lastNames[], Integer numbers[]) throws SQLException{
        //for (int i=0;i<logins.length;i++) {
        int i=0;
            try {
                PreparedStatement pStnt=cnn.prepareStatement("INSERT INTO 'DataBase' ('Login','First_name','Name','Last_name', 'Number') VALUES (?,?,?,?,?)");
            //pStnt.setString(1,name);
                pStnt.setString(1,logins[i]);
                pStnt.setString(2,firstNames[i]);
                pStnt.setString(3,names[i]);
                pStnt.setString(4,lastNames[i]);
                pStnt.setInt(5,numbers[i]);
                pStnt.execute();
            //stnt.execute("INSERT INTO " + name + " ('Login','First name','Name','Last name', 'Number') VALUES (" + logins[i] + ", "+ firstNames[i]+", "+ names[i] + ", " +lastNames[i]+", "+numbers[i] +")");
            } catch (SQLException e) {
            e.printStackTrace();
            }
        //}
        System.out.println("Table is filled");
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 23:22
Помогаю со студенческими работами здесь

Программно добавить строку в таблицу
Всем добрый вечер! OracleConnection ORCL = new OracleConnection() { Server = &quot;127.0.0.1&quot;, ...

Добавить новую строку в таблицу
Доброго времени суток!!! С Visual Studio никогда не работала, а вот теперь приходиться, не могу разобраться немного... Есть база на...

Добавить строку в таблицу в защищенной форме
Здравствуйте! Есть форма c полями и таблицами. Необходимо ограничить редактирование, разрешив пользователю только вводить данные в поля...

Не могу добавить строку в таблицу через SqlQuery
Всем доброго времени суток. Пытаюсь добавить поле в таблицу sqlite (sqlQuery2.append или insert). Но выдаёт ошибку. см Скриншот. ...

Добавить строку в таблицу при двух условиях
Добрый день ! Подскажите пожалуйста есть БД blok в Access столбцы: №, data. Есть форма на ней 15,13-поля ввода данных и кнопка, при нажатии...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru