med*_*ium 5 java oracle jdbc ojdbc
我有一个java应用程序,它建立与Orcale数据库的jdbc连接.我试图将数据插入到数据库中,但是当涉及到oracle NUMBER类型时我很困惑.我的表中有三列分别是这些类型的列.
NUMBER(38,0)
NUMBER(20,0)
NUMBER(16,0)
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是我应该将数据放入什么类型的java类型,以便在预准备语句中使用它.
我的第二个问题是我可以在预准备语句中使用什么set操作来插入数据.
让我们假设我们正在使用NUMBER(38,0).我会将java类型设置为BigInteger吗?如果我有一个整数1,那就是
BigInteger one = new BigInteger(1);
Run Code Online (Sandbox Code Playgroud)
然后在我准备好的声明中
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TABLE(bigInt) VALUES(?)");
pstmt.setLong(1, one);
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,所以我认为这是不正确的.任何帮助,将不胜感激.
setLong()不能拿一个BigInteger.如果您的值确实超出了long数据库中的范围,那么您可能需要使用setBigDecimal(),因为没有setBigInteger(),并且您的变量必须是类型BigDecimal.如果long包含数据库中的值范围,则只需使用long和setLong().