java中sql的insert命令
我已经将这个java代码与数据库库连接起来,并希望从用户那里获取值并将它们保存在学生中。但运行此代码后保存在表Students中的值为null,而不是用户输入的值。有人能帮我吗??提前感谢您可能应该使用“preparedStmt.executeUpdate()”而不是“preparedStmt.execute()”。删除扩展后,插入代码工作正常java中sql的insert命令,java,mysql,jdbc,Java,Mysql,Jdbc,我已经将这个java代码与数据库库连接起来,并希望从用户那里获取值并将它们保存在学生中。但运行此代码后保存在表Students中的值为null,而不是用户输入的值。有人能帮我吗??提前感谢您可能应该使用“preparedStmt.executeUpdate()”而不是“preparedStmt.execute()”。删除扩展后,插入代码工作正常 类insertdata实现ActionListener{public void actionPerformed(ActionEvent e)使用调试器并
类insertdata实现ActionListener{public void actionPerformed(ActionEvent e)使用调试器并找出发生了什么情况您需要commit子句您是否尝试调试代码?并检查您的变量此错误与commit完全无关!如果您不提交事务,则数据库中没有任何内容,也没有一行空值!如Jens所述,调试您的代码。将断点设置为“catch”(异常e1){System.out.println(e1);}“并检查变量的值。该代码很好。因此,s_name和s_email没有您认为的值,但为空。
class insertdata extends insert implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try{
stno=t1.getText();
s_name=t2.getText();
s_email=t3.getText();
bno=t4.getText();
s_no=Integer.parseInt(stno);
b_no=Integer.parseInt(bno);}
catch(Exception e1){System.out.println(e1);}
System.out.println(s_name);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/Library","root","");
String query = " insert into Students (s_no,s_name, b_no, s_email)"
+ " values (?, ?, ?, ?)";
// create the mysql insert preparedstatement
PreparedStatement preparedStmt = con.prepareStatement(query);
preparedStmt.setInt (1, s_no);
preparedStmt.setString (2, s_name);
preparedStmt.setInt (3, b_no);
preparedStmt.setString(4, s_email);
preparedStmt.execute();
con.close();
}catch(Exception e1){ System.out.println(e1);}
}
}
insertdata i=new insertdata();
ba1.addActionListener(i);
}
}