qq_36151160 2019-06-02 12:48 采纳率: 0%
浏览 135

java swing方面的问题。

插入一段信息时,下拉框选择了一个信息,这个信息应该是对应的主键(这个主键是自增的)编号录入数据库,但是最后录入的却是这个信息所在的行号。当我删除这条信息,加入其它信息时,下拉框选择才加入的信息,然后那个录入的编号就是行号,导致获取不了这个信息,因为这个信息前面的编号自增了。就是编号和行号不一样了,但是他还是获取的行号。。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-10 00:49
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是因为在创建表的时候没有将主键设置为自动增长,并且在添加数据的时候没有更新主键的值。这里提供一个简单的解决方案:

    1. 创建表结构:
    CREATE TABLE MyTable (
        ID INT AUTO_INCREMENT PRIMARY KEY,
        Name VARCHAR(255)
    );
    
    1. 在Java中使用JDBC进行数据操作:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            String url = "jdbc:mysql://localhost:3306/mydb";
            String user = "root";
            String password = "password";
    
            try (Connection connection = DriverManager.getConnection(url, user, password)) {
    
                PreparedStatement statement = connection.prepareStatement("INSERT INTO MyTable (Name) VALUES (?)");
                statement.setString(1, "Test");
    
                int rowsInserted = statement.executeUpdate();
                System.out.println(rowsInserted + " row(s) inserted.");
    
                // 删除并重新添加数据
                statement = connection.prepareStatement("DELETE FROM MyTable WHERE ID=?");
                statement.setInt(1, 4); // 使用行号作为ID
    
                statement.executeUpdate();
    
                statement = connection.prepareStatement("INSERT INTO MyTable (Name) VALUES (?)");
                statement.setString(1, "New Test");
    
                rowsInserted = statement.executeUpdate();
                System.out.println(rowsInserted + " row(s) inserted.");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    在这个例子中,我们首先创建了一个名为MyTable的表,并设置了主键为ID,类型为INT,并且自动增长。然后我们在Java代码中使用JDBC连接到数据库,并执行插入操作。注意,我们使用的是行号作为ID而不是主键编号,这样就可以避免问题的发生。

    评论

报告相同问题?

悬赏问题

  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 数据量少可以用MK趋势分析吗
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证