1

payslip_noとして設定されているという名前の列があるMySqlテーブルがありますAUTO_INCREMENT。この自動インクリメントされた値を、ページの読み込み時にテキスト ボックスの値に設定したいと考えています。

別の方法は、列を「AUTO_INCREMENT」として設定せずに、プログラムでこの数値をインクリメントしようとしています。コードは次のとおりです。

public void get_payslip_no()
{

int n1 =0;
try
{
rs2=st2.executeQuery("select max(payslip_no) from tbl_add_payroll");
if(rs2.next())
{
n1=rs2.getInt("payslip_no");
n1=n1+1;
String n2 = Integer.toString(n1);
txt_payslip_no.setText(n2);
System.out.println(n2);                   
}
}//try
catch(SQLException e2)
{
 JOptionPane.showMessageDialog(this,"Payroll-Serial no Storing Error!!!","Serial No Error",JOptionPane.INFORMATION_MESSAGE);    
}//catch
}

現在のデータベースが null であるため、このコードは NullPointerException をスローしています。どうすればこれを解決できますか?

4

1 に答える 1

2

あなたはこの答えを試すことができます..:)

int no=101;
    int no1;
try
        {
           dbStatement = con.createStatement();
           dbResult= dbStatement.executeQuery("select payslip_no from tbl_add_payroll ORDER BY  payslip_no  DESC LIMIT 1");

          if(dbResult.next()==false)
          {
               jTextField3.setText(String.valueOf(no));

          }
         else
          {         
            dbResult= dbStatement.executeQuery("select payslip_no from tbl_add_payroll ORDER BY payslip_no DESC LIMIT 1");      
                    while(dbResult.next())

                           {
                           deptno=dbResult.getInt("payslip_no");

                             }


                             no1=deptno+1;
                             jTextField3.setText(String.valueOf(no1));
          }


     }catch(Exception E)
     {

     }
于 2012-08-22T05:33:46.843 に答える