![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| AntonSpb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |