Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437

Считывание только одной записи из базы

09.02.2013, 20:59. Показов 2068. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Благодаря участникам форума, который указали на мою вечную ошибку, перешел дальше, но теперь проблема заключается в том что, когда делаю запрос из базы, при попытке войти, ввожу логин и пароль, он выбрасывает так как я ввел только одного пользователя а не всех, например база состоит из 2 записей:

login password
steve steve123
doug doug123

Ввожу первого пользователя, но ругается что я не ввел, так как второй пустой, как сделать так чтоб запрос был только на одного пользователя а не сразу на всех?
Я думал если делать точный запрос на пользователя мол после ввода в JTextField перенаправлять прямо
Java
1
2
String inputLogin = l.getText();
res = st.executeQuery("select * from Table1 where name=\"" +inputLogin +"\"");
но в таком случае он скидывает на Exception
Может есть идеи?
Кликните здесь для просмотра всего текста
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package LoginAttemtp_09_02_13;
 
import java.sql.*;
 
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
 
public class Second {
    
    JFrame f;
    JButton login, quit;
    JLabel log, pass;
    JTextField l;
    JPasswordField p;
    JPanel txt, but;
    Connection con;
    Statement st;
    ResultSet res;
    
    public Second() {
        f = new JFrame("Authorization");
        f.setSize(400,100);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        login = new JButton("Login");
        quit = new JButton("Quit");
        log = new JLabel("Login:");
        pass = new JLabel("Password:");
        l = new JTextField(10);
        p = new JPasswordField(10);
        txt = new JPanel();
        but = new JPanel();
        txt.add(log);
        txt.add(l);
        txt.add(pass);
        txt.add(p);
        f.add(txt,BorderLayout.NORTH);
        but.add(login);
        but.add(quit);
        f.add(but,BorderLayout.SOUTH);
        f.setVisible(true);
        
        login.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evnt) {
                try {
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    String PathToDataBase = "D:/workspace2/MicrosoftAccessConnection/db";
                    String DataBase = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
                    DataBase += PathToDataBase.trim() + ";DriverID=22;READONLY=true}";
                    con = DriverManager.getConnection(DataBase,"","");
                    st = con.createStatement();
                    String inputLogin = l.getText();
                    String inputPassword = p.getText();
                    res = st.executeQuery("select * from Table1");
                    while(res.next()) {
                        if(inputLogin.equals(res.getString("name")) && inputPassword.equals(res.getString("pass"))) {
                            lol();
                        } else {
                            JOptionPane.showMessageDialog(null, "Wrong password");
                        }
                    }
                } catch(Exception e) {
                    JOptionPane.showMessageDialog(null,"Failed to connect","Error Connection", JOptionPane.WARNING_MESSAGE);
                }               
            }
        });
        
        quit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evnt) {
                f.dispose();
            }
        });
    }
    
    public void lol() {
        JFrame ff = new JFrame("SUCCESS");
        ff.setSize(200,200);
        ff.setVisible(true);
        ff.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }   
 
    public static void main(String[] args) {
        new Second();
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2013, 20:59
Ответы с готовыми решениями:

Почему производится выборка только с одной записи, хотя в запросе 2 записи?
$q = "SELECT link,title FROM #__menu WHERE `menutype`='{$menu}' "; выбирает только линки...а титлов нет вывод делаю для...

Запрос на обновление только одной строки из базы
Здраствуйте. У меня такой вопрос. Как обновить только одну строку из базы? Я изменяю информацию в одной из ячеек datagrida через...

JOIN только одной записи
Сижу туплю, никак не могу сообразить, может кто подскажет. Есть таблица людей, например person, в ней хранится информация о людях (кэп...

22
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.02.2013, 21:23  [ТС]
Студворк — интернет-сервис помощи студентам
Я все же не понимаю ход действий, сначала я проверяю на наличие записей методом boolean а потом уже проверяю на подлинность запись?

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
//................
try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String PathToDataBase = "D:/workspace2/MicrosoftAccessConnection/db";
    String DataBase = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
    DataBase += PathToDataBase.trim() + ";DriverID=22;READONLY=true}";
    Connection con = DriverManager.getConnection(DataBase,"","");
    prepst = con.prepareStatement("SELECT * FROM USERS WHERE LOGIN=?");
    String lll = login.getText();
    String ppp = pass.getText();
    prepst.setString(1,lll);
    res = prepst.executeQuery();
    if((test(con,lll,ppp)) == true) {
                        
    }
    res.close();
    prepst.close();
        con.close();
} catch(Exception e) {
    JOptionPane.showMessageDialog(null, "Error with connection");
    }
//.......................
boolean test(Connection con, String login, String pass) throws SQLException {
        int rez = 0;
        PreparedStatement st = con.prepareStatement("SELECT COUNT(*) FROM USERS WHERE LOGIN=? AND PASS=?");
        st.setString(1, login);
        st.setString(2, pass);
        ResultSet res = st.executeQuery();
        while (res.next()) {
            rez = res.getInt(1);
        }
        return rez == 1;
    }
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
11.02.2013, 22:41
ОМГ - вы вообще понимаете что у вас в коде происходит?
Я имею в виду логику.

что это за хрень ?
Java
1
2
3
prepst = con.prepareStatement("SELECT * FROM USERS WHERE LOGIN=?");
prepst.setString(1,lll);
res = prepst.executeQuery();
и что за пустые if ?

да и тут надо закрывать стейтмент
Java
1
2
3
4
5
6
7
8
9
10
11
12
boolean test(Connection con, String login, String pass) throws SQLException {
        int rez = 0;
        PreparedStatement st = con.prepareStatement("SELECT COUNT(*) FROM USERS WHERE LOGIN=? AND PASS=?");
        st.setString(1, login);
        st.setString(2, pass);
        ResultSet res = st.executeQuery();
        while (res.next()) {
            rez = res.getInt(1);
        }
        st.close();
        return rez == 1;
    }
уже все кто мог вам сказали что всё проверяется 1 запросом сразу, а не сначала то а потом сё
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.02.2013, 22:55  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
ОМГ - вы вообще понимаете что у вас в коде происходит?
Я имею в виду логику.

и что за пустые if ?
я сказал что не понимаю последовательность..

уже все кто мог вам сказали что всё проверяется 1 запросом сразу, а не сначала то а потом сё
да вот как раз, один говорит что проверять, одно, другой говорит проверять все..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2013, 22:55

Выборка только одной записи
Здравствуйте,форумчане! Скажите, пожалуйста,если использовать SELECT и LIMIT 1, то после нахождения первой записи SELECT остановится ...

Уплывает сайдбар только в одной записи
Я разместила 5 словарей в сайдбаре. Все открываются нормально, кроме медицинской энциклопедии. Вернее, открывается сама ссылка хорошо,...

Извлечение только уникальных элементов из одной таблицы Базы Данных
Здравствуйте, уважаемые программисты. Подскажите пожалуйста, можно ли из одной таблицы вытащить только уникальные элементы? И если...

Прокси только для одной учетной записи
Господа, нужна помощь: Есть сервер, на 2008. Есть несколько уч. записей пользователей. Необходимо сделать так, чтобы каждая из них...

Считывание данных из одной базы данных в другую.
Здравствуйте, У меня возникла необходимость извлечь данные из одной базы данных в другую. Например, осуществить поиск по значению в...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru