Java 使用JDBC将图像从SQLServer获取到Android
我正在尝试从sql server获取一个图像,并在我的android应用程序中使用它。创建表并将图像存储在数据库表中的代码为:Java 使用JDBC将图像从SQLServer获取到Android,java,android,sql,sql-server,jdbc,Java,Android,Sql,Sql Server,Jdbc,我正在尝试从sql server获取一个图像,并在我的android应用程序中使用它。创建表并将图像存储在数据库表中的代码为: create table Imagee (ID int not null,Img VARBINARY(max) not null) insert into Imagee (ID, Img) SELECT 1, BulkColumn FROM Openrowset( Bulk 'C:\Razvan\PozeDB\hawai.png', Single_Blob) as
create table Imagee (ID int not null,Img VARBINARY(max) not null)
insert into Imagee (ID, Img)
SELECT 1, BulkColumn
FROM Openrowset( Bulk 'C:\Razvan\PozeDB\hawai.png', Single_Blob) as iamge
我目前正在尝试使用的代码,但它不起作用,并且我没有收到任何错误:
String query = "select * from Imagee ";
Statement stmt = con.createStatement();
final ResultSet rs = stmt.executeQuery(query);
if (rs.next()) {
final String imagine;
imagine = rs.getString("Img");
byte[] decodeString = Base64.decode(imagine, Base64.DEFAULT);
final Bitmap decodebitmap = BitmapFactory.decodeByteArray(decodeString, 0, decodeString.length);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
try{
//Here "img" is the ImageView
img.setImageBitmap(decodebitmap);
}catch(Exception e){
Log.e("Eceptie",e.getMessage());
}
}
});
}
此代码由try-catch语句和“doInBackground()”方法包围。与服务器的连接已正确建立。我可以得到身份证,但不能得到图像
请帮忙。谢谢大家! 为什么不
String query=“从Imagee中选择Img”代码>为什么要尝试从Img字段中检索字符串?难道不应该有一个像getBytes之类的返回比特流的方法吗?此外,您真的不应该在数据库中存储二进制数据,最好只存储URI并将文件存储在文件系统的某个位置,然后通过http检索它代码>为什么要尝试从Img字段中检索字符串?难道不应该有一个像getBytes之类的返回比特流的方法吗?此外,您真的不应该在数据库中存储二进制数据,最好只存储URI并将文件存储在文件系统的某个位置,然后通过http检索它。