Ошибка базы данных Java: база данных закрыта

Я впервые использую базу данных Java. В настоящее время у меня проблема с базой данных. Когда я пытаюсь отредактировать или добавить что-либо в базу данных, я получаю информационный диалог с сообщением «База данных закрыта».

p.s: Я впервые задаю вопрос о stackoverflow, поэтому извиняюсь, если я что-то напутал.

public class Databaseconnectionfile {
    public static void main(String[] args) {
            new IDU();
        Connection c=null;
        try {
            Class.forName("org.sqlite.JDBC");
            c=DriverManager.getConnection("jdbc:sqlite:test.db");

        }
        catch(Exception e) {
                    System.out.println("Error!!");
            System.err.println(e.getClass().getName()+":"+e.getMessage());
            System.exit(0);
        }

public class IDU extends JFrame {
    JLabel JL_name,JL_father_name, JL_age, JL_id;
    JTextField JT_name, JT_father_name,JT_age, JT_id;
    JButton btn_insert, btn_update,btn_delete;

    // create the method here

    public IDU() {
        super ("Insert Update Delete App");
        JL_name=new JLabel("Name");
        JL_father_name=new JLabel("Father Name");
        JL_age=new JLabel("Age");
        JL_id=new JLabel("ID ");

        // set boudries here

        JL_id.setBounds(20,20,100,20);
        JL_name.setBounds(20,50,100,20);
        JL_father_name.setBounds(20,80,100,20);
        JL_age.setBounds(20,110,100,20);

        // for text field initilization

        JT_name =new JTextField(20);
        JT_father_name =new JTextField(20);
        JT_age =new JTextField(20);
        JT_id =new JTextField(20);

        //set boundries for the text field

        JT_id.setBounds(130,20,150,20);
        JT_name.setBounds(130,50,150,20);
        JT_father_name.setBounds(130,80,150,20);
        JT_age.setBounds(130,110,150,20);

        // adding button

        btn_insert=new JButton("Insert");
        btn_update=new JButton("Update");
        btn_delete=new JButton("Delete");

        // set boundries for button

        btn_insert.setBounds(300,50,80,20);
        btn_update.setBounds(300,80,80,20);
        btn_delete.setBounds(300,110,80,20);

        //setting the layout

        setLayout(null);
        add(JL_id);
        add(JL_name);
        add(JL_father_name);
        add(JL_age);
        add(JT_id);
        add(JT_name);
        add(JT_father_name);
        add(JT_age);
        add(btn_insert);
        add(btn_delete);
        add(btn_update);

        // implementing the action listner on the button
        btn_insert.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                try {
                    theQuery("insert into users(id,name,fathername,age)values("+JT_id.getText()+","+JT_name.getText()+","+JT_father_name.getText()+","+JT_age.getText()) ;
                }catch(Exception ex) {
            }

        }



    });

        btn_update.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                try {
                    theQuery("update users set name='"+JT_name.getText()+"','"+JT_father_name.getText()+","+JT_age.getText()+"where id = "+JT_id.getText());
                }catch(Exception ex) {
            }

        }



    });
        btn_delete.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                try {
                    theQuery("delete from users where id = "+JT_id.getText());
                }catch(Exception ex) {
            }

        }



    });
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setLocationRelativeTo(null);
        setSize(500,500);


    }
        //creating the connection with database
    public void theQuery(String query) {
        Connection c=null;
        Statement stmt=null;
        try {
            c=DriverManager.getConnection("jdbc:sqlite:D:\\COMSATS\\Java Projects\\projectFinal","root","");
            stmt=c.createStatement();
            stmt.executeUpdate(query);

            JOptionPane.showMessageDialog(null, "Query Executed");

        }
        catch(Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
    }

}

В каком методе возникает проблема ?? Можете ли вы опубликовать полную трассировку стека?

Carlitos Way 16.01.2019 23:38

Параметр, который вы передаете в метод DriverManager.getConnection (parameterHere), имеет неправильный синтаксис.

benji2505 17.01.2019 01:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
418
0

Другие вопросы по теме