Я пытаюсь использовать проект java по ведению учета, но программа не может подключиться к базе данных. - PullRequest
0 голосов
/ 06 марта 2020

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

Подразумевается, что В проекте используется БД, т. е. Mysql, однако, когда я пытаюсь сохранить запись в БД, выполняется сбойная опция, поскольку в записи проект не может быть сохранен в БД проектом.

Код в модулях таков:

Код для установления соединений

     import java.sql.Connection;
     import java.sql.DriverManager;

     public class DB {
       public static Connection getConnection(){
       Connection con=null;
       try{
           Class.forName("com.mysql.jdbc.Driver");
           con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","","");
          }catch(Exception e){System.out.println(e);}
          return con;
         }

       }

Код для получения записей:

     import java.sql.*;
      public class LibrarianDao {


         public static int save(String name,String password,String email,String address,String city,String contact){
         int status=0;
         try{
        Connection con=DB.getConnection();
        PreparedStatement ps=con.prepareStatement("insert into 
        librarian(name,password,email,address,city,contact) values(?,?,?,?,?,?)");
        ps.setString(1,name);
        ps.setString(2,password);
        ps.setString(3,email);
        ps.setString(4,address);
        ps.setString(5,city);
        ps.setString(6,contact);
        status=ps.executeUpdate();
        con.close();
    }catch(Exception e){System.out.println(e);}
    return status;
}
public static int delete(int id){
    int status=0;
    try{
        Connection con=DB.getConnection();
        PreparedStatement ps=con.prepareStatement("delete from librarian where id=?");
        ps.setInt(1,id);
        status=ps.executeUpdate();
        con.close();
    }catch(Exception e){System.out.println(e);}
    return status;
    }

    public static boolean validate(String name,String password){
       boolean status=false;
       try{
        Connection con=DB.getConnection();
        PreparedStatement ps=con.prepareStatement("select * from librarian where name=? and password=?");
        ps.setString(1,name);
        ps.setString(2,password);
        ResultSet rs=ps.executeQuery();
        status=rs.next();
        con.close();
    }catch(Exception e){System.out.println(e);}
    return status;
   }

  }

Очевидно, что есть и другие модули кода, которые также взаимодействуют с БД, проект имеет специальную папку для всех файлов классов и аналогичную для всех файлов ". java", он выполняется через файл ".jar", но я не знаю, где добавить разъем java - Mysql в папку проекта, чтобы он мог получить доступ к БД.

МОИ запросы:

1) где в папке проекта я должен добавить разъем mysql, чтобы разрешить доступ к БД mysql.

2) Любой добавление коннектора в проект должно быть сделано вручную (обычно) или через NetBeans.

3), если это должно быть сделано с помощью NetBeans, как мне заново создать новый файл .jar для выполнения проекта.

1 Ответ

0 голосов
/ 06 марта 2020

Возможно, вы закрываете соединение перед закрытием подготовленного оператора. Не забудьте также закрыть подготовленное заявление. Если возможно, используйте попытку с ресурсами для соединения и подготовленного оператора.

Другая возможная проблема - вы не предоставляете учетные данные при создании соединения. Ваша MySQL БД не требует пользователя и пройти аутентификацию?

...