我正在努力学习Java,所以如果这是一个菜鸟问题我会道歉。在此问这个问题之前我已经研究了很多。我很感激你的时间和指导。
我写了一个简单的应用程序,我要求用户输入" Serverprocessorspeed"," RAM"等信息。等
我需要用户在字段" Serverprocessorspeed"," RAM"中输入的信息。被传递给Action Listener。这些值又被发送到数据库服务器。
Cloudbroker() {
f1 = new JFrame("Cloud Broker");
serverprocessorspeed = new JLabel("serverprocessorspeed :");
RAM = new JLabel("RAM :");
serverstorage = new JLabel("serverstorage :");
latency = new JLabel("latency :");
Region = new JLabel("Region");
txtserverprocessorspeed = new JTextField(60);
txtRAM = new JTextField(60);
txtserverstorage = new JTextField(60);
txtlatency = new JTextField(60);
txtRegion = new JTextField(60);
btnClose = new JButton("Close");
btnSave = new JButton("Save");
btnDelete = new JButton("Delete");
btnUpdate = new JButton("Update");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("The information you entered has been saved");
Connection conn1 = null;
try {
String dbURL1 =
"jdbc:sqlserver://localhost\\SQLEXPRESS:1433;"
+ "databaseName=dbcloudbroker;user=XXX;password=XXXX";
System.out.println("this is connection inside the SAVE button");
conn1 = DriverManager.getConnection(dbURL1);
Statement stmt1 = conn1.createStatement();
// I need these values to be the ones the user
// enters in the feilds serverprocessorspeed and RAM.
stmt1.executeUpdate(
"INSERT INTO cloudbrokertable " + "VALUES(XXXX, XXXXX)");
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
try {
if (conn1 != null && !conn1.isClosed()) {
conn1.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
}
根据我收到的建议,我相应地编辑了我的代码
String speed = txtserverprocessorspeed.getText();
String ram = txtRAM.getText();
String storage = txtserverstorage.getText();
String latency = txtlatency.getText();
String region = txtRegion.getText();
System.out.println(speed);
stmt1.executeUpdate("INSERT INTO cloudbrokertable VALUES ('"+speed +"','"+ram+"','"+storage+"','"+latency+"','"+region+"')");
现在收到以下错误 - com.microsoft.sqlserver.jdbc.SQLServerException:')'附近的语法不正确。
该值正确传递到变速,我可以打印出来。
答案 0 :(得分:1)
我需要将“Serverprocessorspeed”,“RAM”字段中使用的信息传递给Action Listener。这些值又被发送到数据库服务器。
不,你没有,这不是这个有用的(对不起)。但是,根据您的代码段,我建议您已经可以访问所需的信息,例如......
btnSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String ram = txtRAM.getText();
String speed = txtserverprocessorspeed.getText();
String storage = txtserverstorage.getText();
String latency = txtlatency.getText();
String region = txtRegion.getText();
//...
答案 1 :(得分:0)
您的SQL语句存在问题。您需要检查它是否有效。 只需打开数据库即可使用如下示例语句对其进行测试:
插入云可浏览的价值观(' 100',' DDR2',' 500',' 1000','美国和# 39)
如果这不起作用,则表示您需要修改您的陈述。 我希望这有帮助。