我在Mysql服务器人员中有一个表(id int,image blob,name varchar(20))。
在我的Android应用程序中,我可以使用AsyncTask从mysql数据库加载图像:
@Override
protected ArrayList<Bitmap> doInBackground(String... params) {
ArrayList <Bitmap> imageList=new ArrayList();
String add1 = "http://192.168.1.11/save/load_image_from_db.php?id=1";
String add2 = "http://192.168.1.11/save/load_image_from_db.php?id=2";
String add3 = "http://192.168.1.11/save/load_image_from_db.php?id=3";
URL url;
Bitmap image = null;
String[] adds={add1, add2, add3};
for (int i=0;i<adds.length;i++){
try {
url = new URL(adds[i]);
HttpURLConnection connection =(HttpURLConnection) url.openConnection();
image = BitmapFactory.decodeStream(connection.getInputStream());
} catch (MalformedURLException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();}
imageList.add(image);
image=null;
}
return imageList;
}
这是我在Android应用程序中使用的php脚本,用于从数据库中获取图像:
<?php
$con = mysqli_connect("localhost","root","","othmane") or die(mysqli_error($con));
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
$sql = "SELECT image,image_type FROM images where id = $id";
$r = mysqli_query($con,$sql) or die(mysqli_error($con));;
$result=mysqli_fetch_array($r);
header('Content-Type:image/jpeg');
if ($result['image_type'] == 'php') {
echo ( $result['image']);
} else if ($result['image_type'] == 'android') {
echo base64_decode( $result['image'] );
}
mysqli_close($con);
//stripslashes ($result['image']);
//echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
//echo base64_encode( $result['image'] );
}
?>
我的问题是:如果我想从数据库加载名称和id以及他们的id在X和Y之间的所有人的图像,所以在这种情况下我必须处理大量数据,我想要要知道android中是否有加载和操作所有这些数据的方法? (像java桌面中的可爱ResultSet)?