有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jdbc从java中的resultset(oracle db)中获取一个BigInt值

我想从jdbc中的oracle数据库中获取一个BigInt值getBigInt()getBigInteger()的工作方式与getInt()不同。以下是代码片段:

public List<Employee> getAllEmployees()
{
    List<Employee> employeeList = new ArrayList<Employee>();
    try
    {
        //typical jdbc coding
        Connection conn = DBUtil.getConnection();
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("SELECT * FROM employee1");
        while(rs.next())
        {
            Employee employee = new Employee(rs.getString("emp_id"), rs.getString("name"), rs.getBigInt("emp_mob"));
            employeeList.add(employee);
        }
        DBUtil.closeConnection(conn);  //close connection
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    
    return employeeList;
}

表中的emp_mob列包含大整数值


共 (1) 个答案

  1. # 1 楼答案

    BIGINT数据类型是一个8字节二进制数,这意味着匹配的Java类型是一个long,所以使用^{}

    long mob = rs.getLong("emp_mob");
    

    如果该列是NULL可以的,请使用Java类型Long,并在调用getLong()后调用^{}

    Long mob = rs.getLong("emp_mob");
    if (rs.wasNull())
        mob = null;
    

    或者,如果需要Java ^{},请调用^{}并将其转换为:

    BigDecimal decimal = rs.getBigDecimal("emp_mob");
    BigInteger mob = (decimal == null ? null : decimal.toBigInteger());