从数据库中检索数据并按1递增

时间:2017-03-28 23:30:58

标签: java mysql

我正在尝试从数据库(MySQL)中检索数据(ID号)并将其添加一个。但是,当我尝试将此代码放在下面时,当我尝试构建它时,表单并没有显示出来。但是当我尝试删除Connection cn行时,表单最终会显示出来。我有另一个使用此代码的项目,它工作得非常好。我不确定为什么它不在这个上工作。

public Abstract() throws Exception {

    Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?zeroDateTimeBehavior=convertToNull","root","");
    initComponents();

    Statement st = null;
    ResultSet rs;

    try {
        String sql = "SELECT ID from bidding_abstractofprices";
        st = cn.prepareStatement(sql);
        rs = st.executeQuery(sql);
        while(rs.next()){
            int id = Integer.parseInt(rs.getString("ID")) + 1;
            lblTransacID.setText(String.valueOf(id));
        }
    }catch (Exception ex){
    }
}

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作是从数据库中包含的 bidding_abstractofprices 表中包含的最后一条记录中获取 ID 字段值,然后将其增加一个 ID 值(如果我错了,请纠正我)。我不在乎为什么,但我可以很容易地假设。我可以这样做:

public Abstract() throws Exception {
    // Allow all your components to initialize first.
    initComponents(); 

    Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?zeroDateTimeBehavior=convertToNull","root","");
    Statement st = null;
    ResultSet rs;

    try {
        String sql = "SELECT * FROM bidding_abstractofprices ORDER BY ID DESC LIMIT 1;";
        st = cn.prepareStatement(sql);
        rs = st.executeQuery(sql);
        int id = 0; 
        while(rs.next()){
            id = rs.getInt("ID") + 1;
        }
        lblTransacID.setText(String.valueOf(id));
        rs.close();
        st.close();
        cn.close();
    } catch (SQLException ex) { 
         ex.printStackTrace(); 
    }
}