【问题标题】:How to find last entry to a Database如何查找数据库的最后一个条目
【发布时间】:2015-06-09 07:28:58
【问题描述】:

我正在使用

插入一行
String sql="insert into OCS_TBL_DOCTOR values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        PreparedStatement ps=con.prepareStatement(sql);
        ps.setString(1, doctor.getDoctorID());
        ps.setString(2, doctor.getDoctorName());
        ps.setString(3, doctor.getDateOfBirth());
        ps.setString(4, doctor.getDateOfJoining());
        ps.setString(5, doctor.getGender());
        ps.setString(6, doctor.getQualification());
        ps.setString(7, doctor.getSpecialization());
        ps.setInt(8, doctor.getYearsOfExperience());
        ps.setString(9, doctor.getStreet());
        ps.setString(10, doctor.getLocation());
        ps.setString(11, doctor.getCity());
        ps.setString(12, doctor.getState());
        ps.setString(13, doctor.getPincode());
        ps.setString(14, doctor.getContactNo());
        ps.setString(15, doctor.getEmaiID());
        ResultSet rs = ps.executeQuery();

我想知道如何获得我刚刚插入的最后一个条目。这里 DoctorID 是主键。

【问题讨论】:

  • id 上选择等于doctor.getDoctorId?..
  • 重新选择记录?
  • 既然您明确设置了PK,那么您已经知道它的价值!另一方面(与您显示的代码相反),如果您没有DoctorID 设置显式值,并且它恰好是具有AUTO_INCREMENT 属性的整数列,您可以从 Java 中获取“最后插入 id”——参见 stackoverflow.com/a/1915197/623041
  • 我正在为 DoctorID 使用 AUTO_INCREMENT。我通过查询发送的是空值,因此每当数据库执行查询时,都会遇到空值,并且会自动配置 DoctorID。

标签: java mysql database


【解决方案1】:

有两种选择:

首先,因为它是一个插入语句,并且您正在指定要保留的 DoctorID,您可以随时重新查询该字段您可以为 DoctorID 创建一个索引,然后获得最大值。

其次,您可以创建另一个列来存储创建/修改日期,并让数据库为其标记系统时间。插入完成后,可以根据该列进行查询,按desc添加顺序。

【讨论】:

  • 实际上我正在为 DoctorID 使用自动增量。我通过查询发送的值为空。因此我不会知道 DoctorID
  • 能否详细说明时间戳?我想这可能会奏效
  • @Swagato,如果您添加一个新列,则在存储日期的数据库中并在填充每一行时,使用系统日期存储在该列中。这将有助于我们按降序对该列进行排序,以便检索最近的记录。
【解决方案2】:
String sql="select * fom OCS_TBL_DOCTOR WHERE doctor_id_in_database="+doctor.getDoctorID();

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2014-10-22
    • 2011-01-04
    • 2012-08-12
    相关资源
    最近更新 更多