- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试坚持 InputStream
在 Oracle 数据库中表示图像如下:
Connection conn = null;
String message = null;
try {
// connects to the database
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","great123");
String sql = "INSERT INTO contacts (first_name, last_name, photo) values (?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, firstName);
statement.setString(2, lastName);
if (inputStream != null) {
column
statement.setBlob(3, inputStream);
}
int row = statement.executeUpdate();
if (row > 0) {
message = "File uploaded and saved into database";
}
} finally {
if (conn != null) {
// closes the database connection
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
但是,它会引发以下异常:
console output: Servlet.service() for servlet [com.sandy.FileUploadDBServlet] in context with path [/TestAgent] threw exception [Servlet execution threw an exception] with root cause java.lang.AbstractMethodError: oracle.jdbc.driver.OraclePreparedStatementWrapper.setBinaryStream(ILjava/io/InputStream;)
我已经尝试过statement.setBlob(3, inputStream);
以及 statement.setBinary(3, inputStream);
,但不行。
最佳答案
当您使用jdbc时,如果您使用的jdbc驱动程序实现的jdbc api版本比您的JRE中包含的版本旧,则可能会发生这种错误。您可以检查这些版本。
我不是 jdbc 专家,但我想我之前读过这个问题。
祝你好运。
关于java.lang.AbstractMethodError : oracle. jdbc.driver.OraclePreparedStatementWrapper.setBinaryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499608/
这个问题已经有答案了: Why do I get java.lang.AbstractMethodError when trying to load a blob in the db? (14 个回答
我是一名优秀的程序员,十分优秀!