gpt4 book ai didi

Java - 线程 "main"java.lang.Error : Unresolved compilation problems 中的异常

转载 作者:可可西里 更新时间:2023-11-01 07:13:45 27 4
gpt4 key购买 nike

我的 JDBC 代码有问题。我正在尝试通过 MySQL 进行连接,但它给了我一个错误。如果您有时间,我的错误日志在下面给出。

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
BLOB cannot be resolved to a type
BLOB cannot be resolved to a type

at serialize.SerializeDeserialze.main(SerializeDeserialze.java:73)

我的代码如下。我正在使用 mysql-connector-java-5.1.20.jar 驱动程序:

package serialize;
/*
By vivek
*/

import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import oracle.sql.BLOB;

/****
CREATE TABLE java_objects (object_id NUMBER, object_name varchar(128), object_value BLOB DEFAULT empty_blob(), primary key (object_id));
SQL> desc java_objects;
Name Null? Type
----------------------------------------- -------- ----------------------------
OBJECT_ID NOT NULL NUMBER
OBJECT_NAME VARCHAR2(128)
OBJECT_VALUE BLOB

SQL> select SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY, LAST_NUMBER from user_sequences;

SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY LAST_NUMBER
------------------------------ ---------- ---------- ------------ -----------
ID_SEQ 1 1.0000E+27 1 21
JAVA_OBJECT_SEQUENCE 1 1.0000E+27 1 1

*/
public class SerializeDeserialze {
public static void main(String[] args) throws Exception {
String WRITE_OBJECT_SQL = "BEGIN "
+ " INSERT INTO java_objects(object_id, object_name, object_value) "
+ " VALUES (?, ?, empty_blob()) " + " RETURN object_value INTO ?; " + "END;";
String READ_OBJECT_SQL = "SELECT object_value FROM java_objects WHERE object_id = ?";

Connection conn = getOracleConnection();
conn.setAutoCommit(false);
List<Object> list = new ArrayList<Object>();
list.add("This is a short string.");
list.add(new Integer(1234));
list.add(new java.util.Date());

// write object to Oracle
long id = 0001;
String className = list.getClass().getName();
CallableStatement cstmt = conn.prepareCall(WRITE_OBJECT_SQL);

cstmt.setLong(1, id);
cstmt.setString(2, className);

cstmt.registerOutParameter(3, java.sql.Types.BLOB);

cstmt.executeUpdate();
BLOB blob = (BLOB) cstmt.getBlob(3);
OutputStream os = blob.getBinaryOutputStream();
ObjectOutputStream oop = new ObjectOutputStream(os);
oop.writeObject(list);
oop.flush();
oop.close();
os.close();

// Read object from oracle
PreparedStatement pstmt = conn.prepareStatement(READ_OBJECT_SQL);
pstmt.setLong(1, id);
ResultSet rs = pstmt.executeQuery();
rs.next();
InputStream is = rs.getBlob(1).getBinaryStream();
ObjectInputStream oip = new ObjectInputStream(is);
Object object = oip.readObject();
className = object.getClass().getName();
oip.close();
is.close();
rs.close();
pstmt.close();
conn.commit();

// de-serialize list a java object from a given objectID
List listFromDatabase = (List) object;
System.out.println("[After De-Serialization] list=" + listFromDatabase);
conn.close();
}

private static Connection getHSQLConnection() throws Exception {
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:hsqldb:data/tutorial";
return DriverManager.getConnection(url, "sa", "");
}

public static Connection getMySqlConnection() throws Exception {
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost/demo2s";
String username = "oost";
String password = "oost";

Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}

public static Connection getOracleConnection() throws Exception {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:databaseName";
String username = "userName";
String password = "password";

Class.forName(driver); // load Oracle driver
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}

最佳答案

当您将 Eclipse 用作 IDE 并尝试运行甚至无法编译的代码时,就会发生此错误。在 Eclipse 中检查您的问题 View ,并在执行应用程序之前修复编译错误。

关于Java - 线程 "main"java.lang.Error : Unresolved compilation problems 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com