如何在数据库中使用 ActiveAndroid 存储图像

How to store image using ActiveAndroid in DB

This My My Activity class 使用 activeandoid 存储值的代码...我已经在下面的代码中将图像文件转换为字节...但它没有存储在 Db 中...全部其他值已存储

case R.id.notVerified:
                    ActiveAndroid.beginTransaction();
                    try {
                        c.setName(Ename.getText().toString());
                        c.setEmail(Eemail.getText().toString());
                        c.setMemo(Eemail.getText().toString());
                        c.setPhone(Ephone.getText().toString());
                        c.setPhoto("user.png");
                        String s = new String(byteArray);

                        Toast.makeText(getActivity(), c.getImage().toString() ,Toast.LENGTH_LONG).show();
                        c.setImage(byteArray);
                        c.setTitle(ETitle.getText().toString());
                        c.save();
                        ActiveAndroid.setTransactionSuccessful();
                        Toast.makeText(getActivity(), "Contact Added",Toast.LENGTH_LONG).show();
                    } finally {
                        ActiveAndroid.endTransaction();
                    }

                    break;

这是为了将图像转换为字节

if (requestCode == CAMERA_REQUEST) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};

            Cursor cursor = getActivity().getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            Eimgname.setText(filePath);
            cursor.close();

            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byteArray = stream.toByteArray();
            c.setImage(byteArray);
        }

从性能角度来看,创建一个列作为字符串并从磁盘或网络获取图像更有用。并且 AA 支持保存字节数组,也许你的实体有问题 class。 并且不要忘记定义自定义 type serializer 可以帮助你。

ActiveAndroid 还使用 SQLiteUtils class 提供自定义 SQL queries。执行 SQL 有两种方法,即“execSql”和“rawQuery”。第一个是为没有结果 queries 提供的,而第二个是为 queries 提供的 return 结果。在列表中没有。 12 您可以找到 methods.

的使用示例
SQLiteUtils.execSql("DELETE FROM Prelegents where id = ?", new String[]{"1"});

List prelegents =
    SQLiteUtils.rawQuery(PrelegentDAO.class, "SELECT * from Prelegents where id = ?", new String[]{"1"});

SEE THIS LINK