当我正在运行我的行动时,我面临错误: “java.util.ArrayList不能转换为java.lang.String”
这是我的代码:
textField_1 = new JTextField();
textField_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object selected = list_1.getSelectedValue();
Connection conn = null;
PreparedStatement stmt = null;
String a =null;
try{
conn=DriverManager.getConnection("jdbc:mysql://localhost/flyer","root","000");
String query= " INSERT INTO flyer_item (discount) SELECT price * ? FROM `item` WHERE item_name = `?` ";
Statement st= conn.createStatement();
java.sql.PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1,a);
ps.setString(2,(String) selected);
ps.executeUpdate();
st.executeUpdate(query);
} catch (SQLException se){
System.out.println(se.getMessage());
} }} );
请帮忙吗?
答案 0 :(得分:0)
此处Selected是一个数组列表,您尝试将其转换为字符串,这是不可能的:
ps.setString(2,(String) selected);
你应该做什么?
ps.setString(2, selected.tostring());
答案 1 :(得分:0)
你确定这条线吗?
Object selected = list_1.getSelectedValue();
在投射前确保选中是一个字符串。您可以使用 instanceof 运算符来检查对象类型。