Mysql 为什么在数据库中插入的值增加了2

Mysql 为什么在数据库中插入的值增加了2,mysql,jsp,Mysql,Jsp,在这里,我在mysql数据库中创建了一个表,如下所示: create table idmaker(idi varchar(20)); insert into idmaker values ('1000000001'); <%@ page import="java.sql.*" %> <% try { Class.forName("com.mysql.jdbc.Driver"); Connection con=nul

在这里,我在mysql数据库中创建了一个表,如下所示:

  create table idmaker(idi varchar(20));
  insert into idmaker values ('1000000001');
<%@ page import="java.sql.*" %>
<%  
    try {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=null;  
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","");
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select idi from idmaker;");
        String id1="";
        while(rs.next()) {
            id1=rs.getString(1);
        }

        long id2=0;
        id2 = Integer.parseInt(id1);            
        id2=id2+1;          
        Long longInstance = new Long(id2);      
        String numberAsString = longInstance.toString();
        out.write("<br>"+numberAsString);
        String query = "TRUNCATE idmaker";
        stmt.executeUpdate(query);
        stmt.executeUpdate("insert into idmaker values('"+numberAsString+"');");

        con.close();  
    } catch(Exception e) { }
%>
首先,我插入值1000000001,如下所示:

  create table idmaker(idi varchar(20));
  insert into idmaker values ('1000000001');
<%@ page import="java.sql.*" %>
<%  
    try {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=null;  
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","");
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select idi from idmaker;");
        String id1="";
        while(rs.next()) {
            id1=rs.getString(1);
        }

        long id2=0;
        id2 = Integer.parseInt(id1);            
        id2=id2+1;          
        Long longInstance = new Long(id2);      
        String numberAsString = longInstance.toString();
        out.write("<br>"+numberAsString);
        String query = "TRUNCATE idmaker";
        stmt.executeUpdate(query);
        stmt.executeUpdate("insert into idmaker values('"+numberAsString+"');");

        con.close();  
    } catch(Exception e) { }
%>
然后我编写了一个JSP代码,如下所示:

  create table idmaker(idi varchar(20));
  insert into idmaker values ('1000000001');
<%@ page import="java.sql.*" %>
<%  
    try {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=null;  
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","");
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select idi from idmaker;");
        String id1="";
        while(rs.next()) {
            id1=rs.getString(1);
        }

        long id2=0;
        id2 = Integer.parseInt(id1);            
        id2=id2+1;          
        Long longInstance = new Long(id2);      
        String numberAsString = longInstance.toString();
        out.write("<br>"+numberAsString);
        String query = "TRUNCATE idmaker";
        stmt.executeUpdate(query);
        stmt.executeUpdate("insert into idmaker values('"+numberAsString+"');");

        con.close();  
    } catch(Exception e) { }
%>

当我运行以上所有代码时,数据库值保存为100000003,而我希望100000002值保存到数据库中。
为什么1000000002值未保存到数据库中

你试过调试你的代码吗?我试过次数,我想保存递增1的值,但保存递增2的值?我没有看到任何错误。“out.write(“
”+numberAsString);”的结果是什么?直到那一行出现“out.write(“
”+numberastring);”的结果-->10000000002您想解决什么问题?因为这肯定是今早互联网上最愚蠢的事情