我正在尝试使用Java记录保存项目,但是该程序似乎无法连接到数据库

问题描述 投票:0回答:1

我有一个我想使用的简单的图书馆记录保存项目,它基于GUI并添加了图书馆书籍记录,图书馆成员,借来的书籍等。

这意味着该项目使用数据库,即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;
   }

  }

[当然还有其他与DB交互的代码模块,该项目具有用于所有类文件的专用文件夹,并且对于所有“ .java”文件都具有类似的文件夹,它是通过“ .jar”文件执行的,但是我没有知道在项目文件夹中的何处添加java-Mysql连接器,以便它可以访问数据库。

我的查询是:

1)我应该在项目文件夹中的哪个位置添加mysql连接器,以允许访问mysql DB。

2)将连接器添加到项目的任何操作都必须手动(通常)或通过netbeans完成。

3)如果必须通过netbeans完成,如何重新创建一个新的.jar文件来执行该项目。

java mysql jdbc netbeans-platform
1个回答
0
投票

可能是您在关闭准备好的语句之前关闭了连接。确保您也关闭了准备好的语句。如果可能,对连接和预处理语句都使用try-with-resources。

另一个可能的问题是,您在创建连接时未提供凭据。您的MySQL DB是否不需要用户并通过身份验证?

© www.soinside.com 2019 - 2024. All rights reserved.