我有一个我想使用的简单的图书馆记录保存项目,它基于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文件来执行该项目。
可能是您在关闭准备好的语句之前关闭了连接。确保您也关闭了准备好的语句。如果可能,对连接和预处理语句都使用try-with-resources。
另一个可能的问题是,您在创建连接时未提供凭据。您的MySQL DB是否不需要用户并通过身份验证?