Java JTable未连接到MS Access数据库
我正在尝试将数据库中的记录加载到EclipseIDE中的JTable,以便捕获用户输入,在数据库上执行基本的CRUD操作。目前,我有多个已成功连接的表,并且正在加载数据。但是,我的一个表拒绝加载任何记录,当我尝试执行插入查询时,出现以下错误: net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::5.0.0-SNAPSHOT 用户缺少权限或找不到对象:语句中的DATARATE [插入tblRAM(拉姆名称、价格、评级、说明、数据率) 值(?,,,?,?)] 代码如下:Java JTable未连接到MS Access数据库,java,sql,ms-access,Java,Sql,Ms Access,我正在尝试将数据库中的记录加载到EclipseIDE中的JTable,以便捕获用户输入,在数据库上执行基本的CRUD操作。目前,我有多个已成功连接的表,并且正在加载数据。但是,我的一个表拒绝加载任何记录,当我尝试执行插入查询时,出现以下错误: net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::5.0.0-SNAPSHOT 用户缺少权限或找不到对象:语句中的DATARATE [插入tblRAM(拉姆名称、价格、评级、说明、数据率) 值(?,,,
btnAdd.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
//Gets the input from the text and combo boxes:
String s1, s2, s3, s4, s5;
s1 = txtRAMName.getText();
s2 = txtPrice.getText();
s3 = txtRating.getText();
s4 = txtDescription.getText();
s5 = (String) dataRate.getSelectedItem();
//A confirmation dialogue pane is created with a yes or no option. Determines if the code runs any further:
int dialogueResult = JOptionPane.showConfirmDialog(null, "Do you want to add this record?", "Confirmation", JOptionPane.YES_NO_OPTION);
if(dialogueResult == JOptionPane.YES_OPTION)
{
try
{
//Connects to the database:
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con = DriverManager.getConnection("jdbc:ucanaccess://E:/Documents/School/IT/2020 PAT Database.accdb");
//Insert SQL statement that inserts the respective values.
pst = con.prepareStatement("insert into "+className+" (RAMName, Price, Rating, Description, DataRate) values(?,?,?,?,?)");
pst.setString(1, s1);
pst.setString(2, s2);
int rating = Integer.parseInt(s3);
//Ensures the Rating variable is between 1 and 10:
if(rating<=10 && rating>=1)
pst.setInt(3, rating);
pst.setString(4, s4);
pst.setString(5, s5);
pst.executeUpdate();
//Confirms that a Record is added:
JOptionPane.showMessageDialog(null, "Record Added");
//Runs the tableUpdate method to show the new record added:
tableUpdate();
//Resets the text box fields
txtRAMName.setText("");
txtPrice.setText("");
txtRating.setText("");
txtDescription.setText("");
txtRAMName.requestFocus();
}
//Exception handling for ClassNotFoundException and SQLException:
catch (ClassNotFoundException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Class Not Found\n"+e);
}
catch (SQLException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Invalid input\n"+e);
}
}
}
});
btnAdd.setBounds(10, 545, 175, 42);
panel.add(btnAdd);```
btnAdd.addActionListener(新ActionListener()
{
已执行的公共无效操作(操作事件arg0)
{
//从文本框和组合框获取输入:
串s1、s2、s3、s4、s5;
s1=txtRAMName.getText();
s2=txtPrice.getText();
s3=txtRating.getText();
s4=txtDescription.getText();
s5=(字符串)数据速率。getSelectedItem();
//将创建带有“是”或“否”选项的确认对话框窗格。确定代码是否继续运行:
int dialogueResult=JOptionPane.showConfirmDialog(null,“是否要添加此记录?”,“确认”,JOptionPane.YES\u NO\u选项);
如果(dialogueResult==JOptionPane.YES\u选项)
{
尝试
{
//连接到数据库:
类forName(“net.ucanaccess.jdbc.UcanaccessDriver”);
con=DriverManager.getConnection(“jdbc:ucanaccess://E:/Documents/School/IT/2020 PAT Database.accdb”);
//插入插入相应值的SQL语句。
pst=con.prepareStatement(“插入“+className+”(RAMName,Price,Rating,Description,DataRate)值(?,,,,,?)”;
pst.设置管柱(1,s1);
pst.设置管柱(2,s2);
int rating=Integer.parseInt(s3);
//确保评级变量介于1和10之间:
如果(额定值=1)
pst.setInt(3,额定值);
pst.固定管柱(4,s4);
pst.固定管柱(5,s5);
pst.executeUpdate();
//确认已添加记录:
showMessageDialog(null,“添加记录”);
//运行tableUpdate方法以显示添加的新记录:
tableUpdate();
//重置文本框字段
txtRAMName.setText(“”);
txtPrice.setText(“”);
txtRating.setText(“”);
txtDescription.setText(“”);
txtRAMName.requestFocus();
}
//ClassNotFoundException和SQLException的异常处理:
catch(classnotfounde异常)
{
e、 printStackTrace();
showMessageDialog(null,“找不到类\n”+e);
}
捕获(SQLE异常)
{
e、 printStackTrace();
showMessageDialog(null,“无效输入\n”+e);
}
}
}
});
btnAdd.挫折(10545175,42);
面板。添加(btnAdd)```
该表似乎没有列数据速率。我仔细检查了我的MS Access数据库,确实有@这个表似乎没有列数据速率。我仔细检查了我的MS Access数据库,确实有@贾尔赫