Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Eclipse + Database, Необходима ваша помощь новичку 
:(
    Опции темы
AntonSpb
Дата 20.8.2014, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.8.2014

Репутация: нет
Всего: нет



Доброе утро, форумчане! Сразу оговорюсь, я далек от программирования, поэтому и обращаюсь к профессионалам. Встала следующая проблема:
  Имеется небольшая база данных (БД) в формате .mdb. Одна таблица, все просто. Задача - написать программу  с простеньким графическим интерфейсом, позволяющим вносить изменения в эту БД с последующим сохранением. 
  Проблема:  написал код, вывел в интерфейс текущие данные из таблицы БД. При попытке ввести новые данные через Java-приложение - никаких изменений в базе не происходит. Более того, изменив вручную через Microsoft Office Access содержимое ячеек таблицы - в Java-приложении выводятся устаревшие данные, которые загрузились в первый раз. 
Очень прошу вас помочь с кодом. Вот, собственно, код:

package com.AntonApp;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JDBCApp implements ActionListener {
    
    JLabel lblLang,lblWaste,lblPassword,lblUp,lbll,lblw,lblp,lblu;
    JLabel lbllVal,lblwVal,lblpVal,lbluVal;
    JTextField txtLang,txtWaste,txtPassword,txtUp;
    JButton btnInsert,btnUpdate,btnDelete,btnPrev,btnNext,btnClear;
    ResultSet rs ;
    public static void main(String[] args) {
        JDBCApp obj = new JDBCApp();
        obj.createUI();
    }
    private void createUI()
    {
        JFrame frame = new JFrame("JDBC All in One");
        
        //Layout of Main Window
        Container c = frame.getContentPane();
        c.setLayout(new BoxLayout(c,BoxLayout.Y_AXIS));
        
        lblLang = new JLabel("Lang :");
        lblWaste = new JLabel("WasteTime :");
        lblPassword = new JLabel("Password :");
        lblUp = new JLabel("UpCap :");
        
        txtLang = new JTextField("",15);//To adjust width
        txtWaste = new JTextField();
        txtPassword = new JTextField();
        txtUp = new JTextField();
        
        JPanel pnlInput = new JPanel(new GridLayout(4,2));
        
        pnlInput.add(lblLang);
        pnlInput.add(txtLang);
        
        pnlInput.add(lblWaste);
        pnlInput.add(txtWaste);
        
        pnlInput.add(lblPassword);
        pnlInput.add(txtPassword);
        
        pnlInput.add(lblUp);
        pnlInput.add(txtUp);
        
        btnInsert = new JButton("Insert");
        btnInsert.addActionListener(this);
        
        btnUpdate = new JButton("Update");
        btnUpdate.addActionListener(this);
        
        btnDelete = new JButton("Delete");
        btnDelete.addActionListener(this);
        
        btnClear = new JButton("Clear");
        btnClear.addActionListener(this);
        
        JPanel pnlButton = new JPanel(new GridLayout(1,4));
        
        pnlButton.add(btnInsert);
        pnlButton.add(btnUpdate);
        pnlButton.add(btnDelete);
        pnlButton.add(btnClear);
        
        JPanel pnlAns = new JPanel(new GridLayout(4,2));
        
        lbll = new JLabel("Lang :");
        lblw = new JLabel("WasteTime :");
        lblp = new JLabel("Password :");
        lblu = new JLabel("UpCap :");
        
        lbllVal = new JLabel("");
        lblwVal = new JLabel("");
        lblpVal = new JLabel("");
        lbluVal = new JLabel("");
        
        pnlAns.add(lbll);
        pnlAns.add(lbllVal);
        
        pnlAns.add(lblw);
        pnlAns.add(lblwVal);
        
        pnlAns.add(lblp);
        pnlAns.add(lblpVal);
        
        pnlAns.add(lblu);
        pnlAns.add(lbluVal);
        
        
        btnPrev = new JButton(" << ");
        btnPrev.setActionCommand("Prev");        
        btnPrev.addActionListener(this);
        
        
        btnNext = new JButton(" >> ");
        btnNext.setActionCommand("Next");
        btnNext.addActionListener(this);
        
        JPanel pnlNavigate = new JPanel(new GridLayout(1,2));
        
        pnlNavigate.add(btnPrev);
        pnlNavigate.add(btnNext);
        
        frame.add(pnlInput);
        frame.add(pnlButton);
        frame.add(pnlAns);
        frame.add(pnlNavigate);
        
        frame.pack();
        frame.setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent evt) {        
        String cmd = evt.getActionCommand();
        
        if(cmd.equals("Insert"))
        {
            insertData();
        }else if(cmd.equals("Update"))
        {
            updateData();
        }else if(cmd.equals("Delete"))
        {
            deleteData();
        }else if(cmd.equals("Prev"))
        {
            previous();
        }else if(cmd.equals("Next"))
        {
            next();
        }else if(cmd.equals("Clear"))
        {
            clearControls();    
        }
    }
    
    private void insertData()
    {
        Connection con;
        try
        {
            con = DriverManager.getConnection("jdbc:ucanaccess://C:/Config.mdb");
            String sql = "Insert Into Settings (Lang,WasteTime,Password,UpCap)" +
            "Values ('"+txtLang.getText()+"','"+txtWaste.getText()+"','"+txtPassword.getText()+"','"+txtUp.getText()+"')";
            Statement statement = con.createStatement();
            statement.execute(sql);
            createMessageBox("Inserted Successfully");
            clearControls();
            
        }
        catch(Exception e)
        {
            createMessageBox(e.getMessage());
        }
    }
    private void updateData()
    {
        Connection con;
        try
        {
            con = DriverManager.getConnection("jdbc:ucanaccess://C:/Config.mdb");
            String sql = "Update Settings Set WasteTime='"+txtWaste.getText()+"',Password='"+
                    txtPassword.getText()+"',UpCap='"+txtUp.getText()+"' Where Lang='"+txtLang.getText()+"'";
            Statement statement = con.createStatement();
            statement.execute(sql);
            createMessageBox("Updated Successfully");
            clearControls();
            
        }
        catch(Exception e)
        {
            createMessageBox(e.getMessage());
        }
    }
    private void deleteData()
    {
        Connection con;
        try
        {
            con = DriverManager.getConnection("jdbc:ucanaccess://C:/Config.mdb");
            String sql = "delete from Settings where Lang = '"+txtLang.getText()+"'";
            Statement statement = con.createStatement();
            statement.execute(sql);
            createMessageBox("Record of "+txtLang.getText()+" Deleted Successfully");
            clearControls();
        }
        catch(Exception e)
        {
            createMessageBox(e.getMessage());
        }
    }
    private void previous()
    {
        try
        {
            if(rs == null)
            {
                Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:/Config.mdb");
                String sql = "Select Lang,WasteTime,Password,UpCap from Settings";
                Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                rs = statement.executeQuery(sql);
            }
            if(rs.previous())
            {
                populateControls();                
                
            }
                    
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    private void next()
    {
        try
        {
            if(rs == null)
            {
                Connection con = DriverManager.getConnection("jdbc:ucanaccess://C:/Config.mdb");
                String sql = "Select Lang,WasteTime,Password,UpCap from Settings";
                Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
                rs = statement.executeQuery(sql);                
            }

            if(rs.next() && !rs.isAfterLast())//After Last was giving invalid cursor state error
            {
                populateControls();
                
            }
                
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        
    }
    
    private void createMessageBox(String msg)
    {
        JFrame frame = new JFrame("Result");
        JLabel lbl = new JLabel(msg);
        frame.add(lbl);
        frame.setSize(200,200);
        frame.setVisible(true);
    }
    private void clearControls()
    {
        String empty = "";
        
        txtLang.setText(empty);
        txtWaste.setText(empty);
        txtPassword.setText(empty);
        txtUp.setText(empty);
        
        lbllVal.setText(empty);
        lblwVal.setText(empty);
        lblpVal.setText(empty);
        lbluVal.setText(empty);
    }
    private void populateControls()
    {
        try{
            lbllVal.setText(rs.getString("Lang"));
            lblwVal.setText(rs.getString("WasteTime"));
            lblpVal.setText(rs.getString("Password"));
            lbluVal.setText(rs.getString("UpCap"));
        
            txtLang.setText(lbllVal.getText());
            txtWaste.setText(lblwVal.getText());
            txtPassword.setText(lblpVal.getText());
            txtUp.setText(lbluVal.getText());
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
}




С БД коннект через JDBC

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  JDBC.jpg 48,27 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.