Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入查询未执行_Java_Mysql - Fatal编程技术网

Java 插入查询未执行

Java 插入查询未执行,java,mysql,Java,Mysql,我想将用户选择的产品插入一个名为cart的表中,该表有两列:cart\u id和item\u id\u FK都是外键。用户id和id在构造函数中传递,然后插入到购物车id和商品id中。 代码中没有显示错误,我仔细检查了连接用户名和密码,除了购物车表之外,一切正常。 我试着在里面放一个try-and-catch语句,然后重复它不起作用的步骤 if(e.getSource()==AddToCartBtn) { //检查项目是否可用 字符串大小选择; SizeSelection=SizeCmbx.g

我想将用户选择的产品插入一个名为cart的表中,该表有两列:cart\u id和item\u id\u FK都是外键。用户id和id在构造函数中传递,然后插入到购物车id和商品id中。 代码中没有显示错误,我仔细检查了连接用户名和密码,除了购物车表之外,一切正常。 我试着在里面放一个try-and-catch语句,然后重复它不起作用的步骤

if(e.getSource()==AddToCartBtn)
{
//检查项目是否可用
字符串大小选择;
SizeSelection=SizeCmbx.getSelectedItem().toString();
String DBURL=“JDBC:MySql://localhost:3306/shoponline?usesl=true”;
字符串USER=“root”;
字符串密码=“12345678”;
试一试{
Connection con=DriverManager.getConnection(DBURL、用户、密码);
String sql2=String.format(“从项目中选择项目id、大小、产品id\u fk,其中大小='%s',产品id\u fk=%d',大小选择,id”);
PreparedStatement=con.prepareStatement(sql2);
ResultSet result=statement.executeQuery(sql2);
字符串sql3=“插入购物车(CartID,ItemID_FK)”+“值(?,)”;
PreparedStatement preparedStmt=con.prepareStatement(sql3);
preparedStmt.setInt(1,用户ID);
准备好的stmt.setInt(2,id);
if(result.next())
{
//如果项目可用
//执行preparedstatement
preparedStmt.execute();
}//如果结束
con.close();
}//结束尝试
catch(SQLException-ex){
例如printStackTrace();

}//结束捕获
将executeQuery更改为executeUpdate:

executeQuery(sql3) 

我相信整数不需要插入它们周围的“”,您也可以尝试删除它们。这可能会将它们误认为是字符或类似的东西

否则,如果上述修复都不起作用,请尝试以下操作:

  String query = "insert into cart (CartID, ItemID_FK)"
            + " values (?, ?)";

          // create the mysql insert preparedstatement
          PreparedStatement preparedStmt = conn.prepareStatement(query);

          preparedStmt.setInt(1, xInt);
          preparedStmt.setInt(2, yInt);

          // execute the preparedstatement
          preparedStmt.execute();

          conn.close();

将executeQuery更改为executeUpdate:

executeQuery(sql3) 

我相信整数不需要插入它们周围的“”,您也可以尝试删除它们。这可能会将它们误认为是字符或类似的东西

否则,如果上述修复都不起作用,请尝试以下操作:

  String query = "insert into cart (CartID, ItemID_FK)"
            + " values (?, ?)";

          // create the mysql insert preparedstatement
          PreparedStatement preparedStmt = conn.prepareStatement(query);

          preparedStmt.setInt(1, xInt);
          preparedStmt.setInt(2, yInt);

          // execute the preparedstatement
          preparedStmt.execute();

          conn.close();

sql2查询可能有问题您正在为select返回的每一行插入完全相同的记录。这是您想要的吗?您还在第一次插入后关闭连接,并且您没有提交…@RobertKock select语句将只返回一行或根本不返回任何行,因为我在查询中没有重复的行items表。我尝试删除con.close()项;语句,但它仍然不起作用。您没有提交插入。或者您是否激活了自动提交?可能sql2查询有问题您正在为select返回的每一行插入完全相同的记录。这是您想要的吗?您还在第一次插入后关闭连接,并且没有提交…@RobertKock select语句将只返回一行或根本不返回任何行,因为我在items表中没有重复的行。我尝试删除con.close();语句,但它仍然不起作用。您没有提交insert。或者您是否激活了自动提交?感谢您的回复,我尝试了您的代码它不起作用:(没有错误,但没有在表中插入任何内容。请帮助:(感谢您的回复,我尝试了您的代码。它不起作用:(没有错误,但没有在表中插入任何内容。请帮助:(