java1996 2016-09-02 01:05 采纳率: 0%
浏览 1632

在java删除数据库数据失败怎么回事

  1. public int delete(Student student){
    //建立一个DBOperation,通过这个对象完成数据库的连接操作
    DBOperation dboperation= new DBOperation();
    //获取数据库连接
    Connection connection=null;
    try{
    connection=dboperation.getConnection();

        String sql="delete from student where stuId='?'";
        PreparedStatement pst=connection.prepareStatement(sql);
        pst.setString(1, student.getStuId());
        pst.execute();
         /* Statement st=connction.createStatement();
           //字符串拼接
           String sql="delete from student where Stuid='"+student.getStuid()+"'";
           st.execute(sql);*/
        System.out.println(sql);
        return 0;
    }catch(Exception ex){
        ex.printStackTrace();
        //返回上层判断
        return -1;
    }finally{
        dboperation.closeConnect(connection);
    }
    

    }
    2.package edu.jmi.xyh.view;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPasswordField;

import edu.jmi.xyh.bean.Student;
import edu.jmi.xyh.dao.StudentDao;

public class DeleteView extends JFrame {

private JPanel contentPane;
private JTextField txID;
private JTextField txName;
private JPasswordField txPw;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                DeleteView frame = new DeleteView();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public DeleteView() {
    setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F");
    label.setFont(new Font("宋体", Font.PLAIN, 16));
    label.setBounds(140, 22, 147, 15);
    contentPane.add(label);

    JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A");
    lblId.setBounds(95, 55, 69, 15);
    contentPane.add(lblId);

    txID = new JTextField();
    txID.setBounds(174, 52, 113, 21);
    contentPane.add(txID);
    txID.setColumns(10);

    JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A");
    label_2.setBounds(95, 98, 66, 15);
    contentPane.add(label_2);

    JLabel label_3 = new JLabel("\u5BC6   \u7801\uFF1A");
    label_3.setBounds(95, 143, 54, 15);
    contentPane.add(label_3);

    txName = new JTextField();
    txName.setBounds(174, 95, 113, 21);
    contentPane.add(txName);
    txName.setColumns(10);

    JButton button = new JButton("\u5220\u9664");
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            //完成注册功能
            String id=txID.getText();
            if(id==null||id.length()==0||id.length()>20){
                JOptionPane.showMessageDialog(null, "ID输入不正确!");
            }
            //继续验证用户名和密码
            String pw=txPw.getText();
            String name=txName.getText();
            Student student=new Student();

            student.setStuId(id);
            student.setStuName(name);
            student.setStuPwd(pw);
            StudentDao studentDao=new StudentDao();
            int result=studentDao.delete(student);
            if(result==0){
                JOptionPane.showMessageDialog(null, "删除成功!");

            }
            else{
                JOptionPane.showMessageDialog(null, "删除失败!");


            }
            System.out.println("id="+id+"pw="+pw);


        }
    });
    button.setBounds(75, 189, 93, 23);
    contentPane.add(button);

    JButton button_1 = new JButton("\u53D6\u6D88");
    button_1.setBounds(232, 189, 93, 23);
    contentPane.add(button_1);

    txPw = new JPasswordField();
    txPw.setBounds(174, 140, 113, 21);
    contentPane.add(txPw);
}

}

Parameter index out of range (1 > number of parameters, which is 0)

  • 写回答

3条回答 默认 最新

  • Veggiel 2016-09-02 01:26
    关注

    String sql="delete from student where stuId='?'";
    这个地方把问号的单引号去掉 试试

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?