mysql我试图使用java记录保存项目,但该程序似乎无法连接到数据库
我有一个简单的图书馆记录保存项目,我想使用,它是基于图形用户界面&;添加图书馆图书记录、图书馆成员、借阅的图书等
这意味着项目使用DB,即Mysql,但是当我试图将记录存储到DB中时,会执行失败的选项,因为项目无法将记录保存在DB中
代码在模块中,因此:
建立连接的代码
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 楼答案
可能是在关闭准备好的语句之前关闭了连接。确保您也关闭了准备好的声明。如果可能,请对connection和prepared语句使用try with resources
另一个可能的问题是创建连接时没有提供凭据。您的MySQL数据库是否不需要user和pass auth