如何在java中自动增加字符串来插入MySQL

时间:2013-12-29 16:10:06

标签: java mysql jdbc auto-increment

我写了一些代码。我设置我的主键是varchar。我想让它像FT001一样自动增量。我的代码工作正常,但直到它FT10再也无法增加。我不知道代码或查询是错误的。 这是我的代码:

    private void autoNumber(){
        try{
            String autonumber = "SELECT MAX(right(no_faktur,1)) FROM transaksi";
            Connection con = Koneksi.getConnection();
            Statement statement = (Statement) con.createStatement();
            ResultSet r = statement.executeQuery(autonumber);
            while (r.next()){
                if (r.first() == false){
                    textFaktur.setText("FT001");
                }else{
                    r.last();
                    int faktur = r.getInt(1)+1;
                    String number = String.valueOf(faktur);
                    int fakturlong = number.length();
                    for (int i = 0; i<2-fakturlong;i++){
                        number = "00"+number;
                    }
                    textFaktur.setText("FT"+number);

                }
            }
            statement.close();
            r.close();
        }catch(SQLException e){

        }
    }

3 个答案:

答案 0 :(得分:0)

您可以将该列用作auto increment,但您应将字段指定为数字而不是文本。

将该表创建为

CREATE TABLE transaksi(
     no_faktur Int NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (no_faktur )
);

然后您无需手动查找最后插入的no_faktur。每次将记录插入表中时,表本身会自动增加该字段

答案 1 :(得分:0)

当插入值FT10时,您的查询(SELECT MAX(右(no_faktur,1))FROM transaksi)仍然返回9,因为您正在寻找1个字符的MAX值,它始终为9。

答案 2 :(得分:0)

我想我得到了答案:

Ps=con.preparestatement("select * from tablename");
Resultset rs=ps.execute query();
if(rs.last())
{
    String aidv ="TAR" 1;
}
else
{
    int id=RS.getRow();
    id  ;
    aidv="TAR" id;
}