簡體   English   中英

如何將圖像和字符串存儲在同一數據庫表中並檢索它們

[英]How can I store images and strings in the same database table and retrieve them

我有一個接受文本和圖像的表單,我想將數據存儲在同一數據庫表中。 以下是我的記錄的聲明,但它們都是字符串,因此如何將圖像轉換為字符串以添加到此列表中:

site_info_record.createSiteInfoRecord(sql_sysaid_id, sql_site_id, sql_link_id, sql_customer_name, sql_site_contact,
            sql_task_type, sql_address, sql_region, sql_phone, sql_fax, sql_mobile, sql_email,
            sql_landlord_name, sql_rent_status, sql_loc_cords, sql_power_status, sql_voltage, sql_aircon, sql_server_room,
            sql_location_idu, sql_earthing, sql_distance_idu, sql_security, sql_ducts, sql_unit, sql_install_type,
            sql_isp, sql_radio_type, sql_isp_type, sql_isp_name, sql_snr_rx, sql_bs, sql_remark);

而且當我想檢索時,它也是字符串格式:

public String getInfoData() {
    String[] columns = new String[]{ROW_ID, SYSAID_ID, SITE_ID, LINK_ID, CUSTOMER_NAME, SITE_CONTACT, TASK_TYPE, ADDRESS,
            REGION, PHONE, FAX, MOBILE, EMAIL, LANDLORD_NAME, RENT_STATUS, LOCATION, POWER_STATUS, VOLTAGE_MEASUREMENT, AIRCON,
            SERVER_ROOM_STATUS, LOCATION_IDU, EARTHING, DISTANCE_IDU, SECURITY_CABLES, DUCTS, UNIT_TYPE, INST_TYPE,
            HAVE_ISP, RADIO, ISP_TYPE, ISP_NAME, SNR_RX, BS, REMARKS};

如何修復這些圖像數據

這會降低數據庫和應用程序的速度。 替代此方法,您可以嘗試保存到SDCard並將URI保留在數據庫中。

很簡單兩種選擇

one:  
byte[] bytes = {...}  
String str = new String(bytes, "UTF-8");

or

public static String encodeTobase64(Bitmap image)
{
    Bitmap immagex=image;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] b = baos.toByteArray();
    String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);

    Log.e("LOOK", imageEncoded);  
    return imageEncoded;
}
public static Bitmap decodeBase64(String input) 
{
    byte[] decodedByte = Base64.decode(input, 0);
    return BitmapFactory.decodeByteArray(decodedByte, 0,         decodedByte.length); 
}

第二:您可以使用GSON並根據您所有的文本和ByteArray以及您想要的內容創建一個對象,而不僅僅是這樣做:GSON.toJson();

在一個表中,您可以有許多列。 要在同一表中包含文本和圖像,可以使用以下數據類型為它們提供不同的列:-

文字-VARCHAR

圖片-BLOB

Sqlite的數據類型為BLOB,可以容納對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM