我可以打印出数据库中的所有其他信息(name
和bio
)。但是当我尝试打印出图像时,它在eclipse终端窗口中显示为image:????
。
我目前刚接触编程,所以我不知道该怎么做。
我的代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.* ; // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support
public class Database {
public static void main(String[] args) {
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager
.getConnection("jdbc:sqlite:C:\\Users\\Mariam\\Documents\\GoogleApp\\info.sqlite");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT name, bio, image FROM PeoplesInfo");
while (resultSet.next()) {
System.out.println("NAME:"
+ resultSet.getString("name"));
System.out.println("Bio:"
+ resultSet.getString("bio"));
System.out.println("Image:"
+ resultSet.getString("Image"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
结果:
NAME:James May
Bio:22, Working,
Image:????
NAME:Lala
Bio:40, Working, etc
Image:????
非常感谢提前。
答案 0 :(得分:0)
你需要首先得到一个blob,然后“转换为字符串”,有些事情与此类似:
Blob b = resultSet.getBlob("image");
byte[] bdata = blob.getBytes(1, (int) blob.length());
System.out.println(new String(bdata));