将外部图像保存/存储到SQLite数据库

时间:2016-01-26 08:12:28

标签: android image sqlite stored-procedures

我有一本书 - 应用程序,我用条形码扫描器扫描一本书,并从googlebooksapi中检索信息。 目前我可以在我的SQLite数据库中保存一般的bookinfos,标题,作者,日期,评级和书架(我想在哪里显示书) 现在我想保存googleapi附带的书籍。

您能告诉我如何在SQlite数据库中保存图像。通过寻找解决方案,我意识到我必须填充图像。但我不知道怎么做。

跟随我的活动。

ScanActivity.java - >在代码的最后,我将书籍数据保存到sql db

public class ScanActivity extends AppCompatActivity implements OnClickListener {
private Button scanBtn, previewBtn, linkBtn, addBookBtn, librarybtn;
public TextView authorText, titleText, descriptionText, dateText, ratingCountText;
public EditText shelfText;
private LinearLayout starLayout;
private ImageView thumbView;
private ImageView[] starViews;
private Bitmap thumbImg;
public BookDBHelper bookDBHelper;
public SQLiteDatabase sqLiteDatabase1;
public Context context1 = this;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scan);
    //Fonts
    Typeface myTypeface = Typeface.createFromAsset(getAssets(),     "Lobster.ttf");
    Button myButtonViewScan = (Button) findViewById(R.id.scan_button);
    myButtonViewScan.setTypeface(myTypeface);

    TextView myWheretoSaveTextView = (TextView)     findViewById(R.id.textView_wheretosave);
    myWheretoSaveTextView.setTypeface(myTypeface);

    //Scanbutton
    scanBtn = (Button) findViewById(R.id.scan_button);
    scanBtn.setOnClickListener(this);
    //Preview Button
    previewBtn = (Button) findViewById(R.id.preview_btn);
    previewBtn.setVisibility(View.GONE);
    previewBtn.setOnClickListener(this);
    //Weblink Button
    linkBtn = (Button) findViewById(R.id.link_btn);
    linkBtn.setVisibility(View.GONE);
    linkBtn.setOnClickListener(this);
    /* //AddBookBtn
    addBookBtn= (Button)findViewById(R.id.btn_savebook);
    addBookBtn.setVisibility(View.GONE);
    addBookBtn.setOnClickListener(this);
    //LibraryButton
    librarybtn = (Button) findViewById(R.id.btn_maps);
    librarybtn.setVisibility(View.GONE);
    librarybtn.setOnClickListener(this);
    */

    authorText = (TextView) findViewById(R.id.book_author);
    titleText = (TextView) findViewById(R.id.book_title);
    descriptionText = (TextView) findViewById(R.id.book_description);
    dateText = (TextView) findViewById(R.id.book_date);
    starLayout = (LinearLayout) findViewById(R.id.star_layout);
    ratingCountText = (TextView) findViewById(R.id.book_rating_count);
    thumbView = (ImageView) findViewById(R.id.thumb);
    shelfText = (EditText) findViewById(R.id.editText_wheretosave);

    starViews = new ImageView[5];
    for (int s = 0; s < starViews.length; s++) {
        starViews[s] = new ImageView(this);
    }
    starViews = new ImageView[5];
    for (int s = 0; s < starViews.length; s++) {
        starViews[s] = new ImageView(this);
    }
}

public void onClick(View v) {
    if (v.getId() == R.id.scan_button) {
        IntentIntegrator scanIntegrator = new IntentIntegrator(this);
        scanIntegrator.initiateScan();

    } else if (v.getId() == R.id.link_btn) {
        //get the url tag
        String tag = (String) v.getTag();
        //launch the url
        Intent webIntent = new Intent(Intent.ACTION_VIEW);
        webIntent.setData(Uri.parse(tag));
        startActivity(webIntent);
    } else if (v.getId() == R.id.preview_btn) {
        String tag = (String) v.getTag();
        Intent intent = new Intent(this, EmbeddedBook.class);
        intent.putExtra("isbn", tag);
        startActivity(intent);
        //launch preview
    }

}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    //retrieve result of scanning - instantiate ZXing object
    IntentResult scanningResult =     IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    //check we have a valid result
    if (scanningResult != null) {
        String scanContent = scanningResult.getContents();
        //get format name of data scanned
        String scanFormat = scanningResult.getFormatName();
        previewBtn.setTag(scanContent);
        if (scanContent != null && scanFormat != null &&     scanFormat.equalsIgnoreCase("EAN_13")) {
            String bookSearchString =     "https://www.googleapis.com/books/v1/volumes?" +
                    "q=isbn:" + scanContent +     "&key=AIzaSyDminlOe8YitHijWd51n7-w2h8W1qb5PP0";
            new GetBookInfo().execute(bookSearchString);
        } else {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "Not a valid scan!", Toast.LENGTH_SHORT);
            toast.show();
        }
        Log.v("SCAN", "content: " + scanContent + " - format: " +     scanFormat);
    } else {
        //invalid scan data or scan canceled
        Toast toast = Toast.makeText(getApplicationContext(),
                "No book scan data received!", Toast.LENGTH_SHORT);
        toast.show();
    }
}

private class GetBookInfo extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... bookURLs) {
        StringBuilder bookBuilder = new StringBuilder();
        for (String bookSearchURL : bookURLs) {
            HttpClient bookClient = new DefaultHttpClient();
            try {
                HttpGet bookGet = new HttpGet(bookSearchURL);
                HttpResponse bookResponse = bookClient.execute(bookGet);
                StatusLine bookSearchStatus = bookResponse.getStatusLine();
                if (bookSearchStatus.getStatusCode() == 200) {
                    HttpEntity bookEntity = bookResponse.getEntity();
                    InputStream bookContent = bookEntity.getContent();
                    InputStreamReader bookInput = new     InputStreamReader(bookContent);
                    BufferedReader bookReader = new     BufferedReader(bookInput);
                    String lineIn;
                    while ((lineIn = bookReader.readLine()) != null) {
                        bookBuilder.append(lineIn);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return bookBuilder.toString();
    }

    protected void onPostExecute(String result) {
        try {
            previewBtn.setVisibility(View.VISIBLE);
            JSONObject resultObject = new JSONObject(result);
            JSONArray bookArray = resultObject.getJSONArray("items");
            JSONObject bookObject = bookArray.getJSONObject(0);
            JSONObject volumeObject =     bookObject.getJSONObject("volumeInfo");

            try {
                titleText.setText(volumeObject.getString("title"));
            } catch (JSONException jse) {
                titleText.setText("");
                jse.printStackTrace();
            }
            StringBuilder authorBuild = new StringBuilder("");
            try {
                JSONArray authorArray =     volumeObject.getJSONArray("authors");
                for (int a = 0; a < authorArray.length(); a++) {
                    if (a > 0) authorBuild.append(", ");
                    authorBuild.append(authorArray.getString(a));
                }
                authorText.setText(authorBuild.toString());
            } catch (JSONException jse) {
                authorText.setText("");
                jse.printStackTrace();
            }
            try {
                dateText.setText(volumeObject.getString("publishedDate"));
            } catch (JSONException jse) {
                dateText.setText("");
                jse.printStackTrace();
            }
            try {
                descriptionText.setText("DESCRIPTION: " + volumeObject.getString("description"));
            } catch (JSONException jse) {
                descriptionText.setText("");
                jse.printStackTrace();
            }
            try {
                double decNumStars =     Double.parseDouble(volumeObject.getString("averageRating"));
                int numStars = (int) decNumStars;
                starLayout.setTag(numStars);
                starLayout.removeAllViews();
                for (int s = 0; s < numStars; s++) {
                    starViews[s].setImageResource(R.drawable.star);
                    starLayout.addView(starViews[s]);
                }
            } catch (JSONException jse) {
                starLayout.removeAllViews();
                jse.printStackTrace();
            }
            try {
                    ratingCountText.setText(volumeObject.getString("ratingsCount") + " ratings");
            } catch (JSONException jse) {
                ratingCountText.setText("");
                jse.printStackTrace();
            }
            try {
                boolean isEmbeddable = Boolean.parseBoolean
                             (bookObject.getJSONObject("accessInfo").getString("embeddable"));
                if (isEmbeddable) previewBtn.setEnabled(true);
                else previewBtn.setEnabled(false);
            } catch (JSONException jse) {
                previewBtn.setEnabled(false);
                jse.printStackTrace();
            }
            try {
                linkBtn.setTag(volumeObject.getString("infoLink"));
                linkBtn.setVisibility(View.VISIBLE);
            } catch (JSONException jse) {
                linkBtn.setVisibility(View.GONE);
                jse.printStackTrace();
            }
            try {
                JSONObject imageInfo =         volumeObject.getJSONObject("imageLinks");
                new          GetBookThumb().execute(imageInfo.getString("smallThumbnail"));
            } catch (JSONException jse) {
                thumbView.setImageBitmap(null);
                jse.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
            titleText.setText("NOT FOUND");
            authorText.setText("");
            descriptionText.setText("");
            dateText.setText("");
            starLayout.removeAllViews();
            ratingCountText.setText("");
            thumbView.setImageBitmap(null);
            previewBtn.setVisibility(View.GONE);
            shelfText.setText("");
        }
    }
}

private class GetBookThumb extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... thumbURLs) {
        try {
            URL thumbURL = new URL(thumbURLs[0]);
            URLConnection thumbConn = thumbURL.openConnection();
            thumbConn.connect();
            InputStream thumbIn = thumbConn.getInputStream();
            BufferedInputStream thumbBuff = new          BufferedInputStream(thumbIn);
            thumbImg = BitmapFactory.decodeStream(thumbBuff);
            thumbBuff.close();
            thumbIn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

    protected void onPostExecute(String result) {
        thumbView.setImageBitmap(thumbImg);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void showMaps(View view) {
    Intent intent = new Intent(this, MapsActivity.class);
    startActivity(intent);
}

//HERE I SAVE THE RETRIEVED DATA
public void saveBook(View view) { //Click on save Book

    String title = titleText.getText().toString();
    String author = authorText.getText().toString();
    String date = dateText.getText().toString();
    String rating = ratingCountText.getText().toString();
    String shelf = shelfText.getText().toString();

    bookDBHelper = new BookDBHelper(context1);

    sqLiteDatabase1 = bookDBHelper.getWritableDatabase();

    bookDBHelper.addInformations(title, author, date, rating, shelf,     sqLiteDatabase1);
    Toast.makeText(getBaseContext(), "Data Saved", Toast.LENGTH_LONG).show();
    bookDBHelper.close();
}

}

BookDBHelper.java

public class BookDBHelper extends SQLiteOpenHelper{

private static final String DATABASE_BOOKS_NAME = "BookINFO.DB";
private static final int DATABASE_BOOKS_VERS = 2;
private static final String CREATE_QUERY_BOOKS =
        "CREATE TABLE "
                + BookContent.NewBookInfo.TABLE_NAME_BOOKS
                +"("
                + BookContent.NewBookInfo.BOOK_ID + "INTEGER PRIMARY KEY, "
                + BookContent.NewBookInfo.BOOK_IMAGE +" BLOB, "
                + BookContent.NewBookInfo.BOOK_IMAGE_TAG +" TEXT, "
                + BookContent.NewBookInfo.BOOK_TITLE+" TEXT, "
                + BookContent.NewBookInfo.BOOK_AUTHOR+" TEXT, "
                + BookContent.NewBookInfo.BOOK_DATE+" TEXT, "
                + BookContent.NewBookInfo.BOOK_RATING+" TEXT, "
                + BookContent.NewBookInfo.BOOK_SHELF+" TEXT);";


public BookDBHelper(Context context){
    super(context, DATABASE_BOOKS_NAME, null, DATABASE_BOOKS_VERS);
    Log.e("DATABASE OPERATIONS", " DATABASE CREATED");
}

@Override
public void onCreate(SQLiteDatabase bookdb) {

    bookdb.execSQL(CREATE_QUERY_BOOKS);
    Log.e("DATABASE OPERATIONS", " DATABASE CREATED");
}

@Override
public void onUpgrade(SQLiteDatabase bookdb, int oldVersion, int newVersion) {
    bookdb.execSQL(" DROP TABLE IS EXISTS " + BookContent.NewBookInfo.TABLE_NAME_BOOKS);
    onCreate(bookdb);
}

public void addInformations( String booktitle, String bookauthor, String bookdate, String bookrating, String bookshelf, SQLiteDatabase bookdb)
{

    ContentValues contentValues = new ContentValues();

    contentValues.put(BookContent.NewBookInfo.BOOK_TITLE, booktitle);
    contentValues.put(BookContent.NewBookInfo.BOOK_AUTHOR, bookauthor);
    contentValues.put(BookContent.NewBookInfo.BOOK_DATE, bookdate);
    contentValues.put(BookContent.NewBookInfo.BOOK_RATING, bookrating);
    contentValues.put(BookContent.NewBookInfo.BOOK_SHELF, bookshelf);

    bookdb.insert(BookContent.NewBookInfo.TABLE_NAME_BOOKS, null, contentValues);
    Log.e("DATABASE OPERATIONS", "ON ROW INSERTED");
}

    public Cursor getInformations(SQLiteDatabase bookdb){
    Cursor cursor2;
        String[] projections = {
                BookContent.NewBookInfo.BOOK_TITLE,
                BookContent.NewBookInfo.BOOK_AUTHOR,
                BookContent.NewBookInfo.BOOK_DATE,
                BookContent.NewBookInfo.BOOK_RATING,
                BookContent.NewBookInfo.BOOK_SHELF};
    cursor2 = bookdb.query(BookContent.NewBookInfo.TABLE_NAME_BOOKS, projections,null, null, null, null, null);
    return cursor2;
}

之后,信息将以最佳视图显示。

BookDataListActivity

public class BookDataListActivity extends Activity {
public ListView booklistView;
private EditText inputSearch = null;
public SQLiteDatabase sqLiteDatabaseBooks = null;
public BookDBHelper bookDBHelper;
public Cursor cursor2;
public BookListDataAdapter bookListDataAdapter;

public final static String EXTRA_MSG1 = "title";
public final static String EXTRA_MSG2 = "author";
public final static String EXTRA_MSG3 = "date";
public final static String EXTRA_MSG4 = "rating";
public final static String EXTRA_MSG5 = "shelf";

public TextView editTextBooktitle;
public TextView editTextBookauthor;
public TextView editTextBookdate;
public TextView editTextBookrating;
public TextView editTextBookshelf;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.book_data_list_layout);

    Typeface myTypeface = Typeface.createFromAsset(getAssets(), "Lobster.ttf");

    TextView myTextView = (TextView) findViewById(R.id.text_yourbooks);
    myTextView.setTypeface(myTypeface);

    booklistView = (ListView) findViewById(R.id.book_list_view);
    inputSearch = (EditText) findViewById(R.id.search_bar);

    bookListDataAdapter = new BookListDataAdapter(getApplicationContext(), R.layout.row_book_layout);
    booklistView.setAdapter(bookListDataAdapter);


    //onItemClickListener
    booklistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent intent = new Intent(getApplicationContext(), BookInfoActivity.class);

            editTextBooktitle = (TextView) view.findViewById(R.id.text_book_title);
            String book_title = editTextBooktitle.getText().toString();
            intent.putExtra(EXTRA_MSG1, book_title);

            editTextBookauthor = (TextView) view.findViewById(R.id.text_book_author);
            String bookauthor = editTextBookauthor.getText().toString();
            intent.putExtra(EXTRA_MSG2, bookauthor);

            editTextBookdate = (TextView) view.findViewById(R.id.text_book_date);
            String bookdate = editTextBookdate.getText().toString();
            intent.putExtra(EXTRA_MSG3, bookdate);

            editTextBookrating = (TextView) view.findViewById(R.id.text_book_rating);
            String bookrating = editTextBookrating.getText().toString();
            intent.putExtra(EXTRA_MSG4, bookrating);

            editTextBookshelf = (TextView) view.findViewById(R.id.text_book_shelf);
            String bookshelf = editTextBookshelf.getText().toString();
            intent.putExtra(EXTRA_MSG5, bookshelf);

            startActivity(intent);

        }

    });



    bookDBHelper = new BookDBHelper(getApplicationContext());
    sqLiteDatabaseBooks = bookDBHelper.getReadableDatabase();
    cursor2 = bookDBHelper.getInformations(sqLiteDatabaseBooks);
    if (cursor2.moveToFirst()) {
        do {
            String booktitle, bookauthor, bookdate, bookrating, bookshelf;

            booktitle = cursor2.getString(0);
            bookauthor = cursor2.getString(1);
            bookdate = cursor2.getString(2);
            bookrating = cursor2.getString(3);
            bookshelf = cursor2.getString(4);

            BookDataProvider bookDataProvider = new BookDataProvider(booktitle, bookauthor, bookdate, bookrating, bookshelf);
            bookListDataAdapter.add(bookDataProvider);

        } while (cursor2.moveToNext());


    }
}
}

我认为你需要DataAdapter 的 DataListDataAdapter

public class BookListDataAdapter extends ArrayAdapter implements Filterable{

List booklist = new ArrayList();
public SQLiteDatabase sqLiteDatabaseBooks;


public BookListDataAdapter(Context context,int resource) {
super(context, resource);
}

static class BookLayoutHandler {
    TextView BOOKTITLE, BOOKAUTHOR, BOOKDATE, BOOKRATING, BOOKSHELF;
}

@Override
public void add (Object object){
super.add(object);
    booklist.add(object);
}

@Override
public int getCount() {
    return booklist.size();
}

@Override
public Object getItem(int position) {

    return booklist.get(position);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View row1= convertView;

    BookLayoutHandler bookLayoutHandler;
    if(row1 == null){
        LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row1 = layoutInflater.inflate(R.layout.row_book_layout, parent, false);
        bookLayoutHandler = new BookLayoutHandler();
        bookLayoutHandler.BOOKTITLE = (TextView) row1.findViewById(R.id.text_book_title);
        bookLayoutHandler.BOOKAUTHOR = (TextView) row1.findViewById(R.id.text_book_author);
        bookLayoutHandler.BOOKDATE = (TextView) row1.findViewById(R.id.text_book_date);
        bookLayoutHandler.BOOKRATING = (TextView) row1.findViewById(R.id.text_book_rating);
        bookLayoutHandler.BOOKSHELF = (TextView) row1.findViewById(R.id.text_book_shelf);
        row1.setTag(bookLayoutHandler);
    }else{
        bookLayoutHandler = (BookLayoutHandler) row1.getTag();

    }
    BookDataProvider bookDataProvider = (BookDataProvider) this.getItem(position);
    bookLayoutHandler.BOOKTITLE.setText(bookDataProvider.getBooktitle());
    bookLayoutHandler.BOOKAUTHOR.setText(bookDataProvider.getBookauthor());
    bookLayoutHandler.BOOKDATE.setText(bookDataProvider.getBookdate());
    bookLayoutHandler.BOOKRATING.setText(bookDataProvider.getBookrating());
    bookLayoutHandler.BOOKSHELF.setText(bookDataProvider.getBookshelf());
    return row1;
}

BookDataProvider:

public class BookDataProvider {

private Bitmap bookimage;
private String booktitle;
private String bookauthor;
private String bookdate;
private String bookrating;
private String bookshelf;

public Bitmap getBookimage() {
    return bookimage;
}

public void setBookimage(Bitmap bookimage) {
    this.bookimage = bookimage;
}

public String getBooktitle() {
    return booktitle;
}

public void setBooktitle(String booktitle) {
    this.booktitle = booktitle;
}

public  String getBookauthor() {
    return bookauthor;
}

public void setBookauthor(String bookauthor) {
    this.bookauthor = bookauthor;
}

public String getBookdate() {
    return bookdate;
}

public void setBookdate(String bookdate) {
    this.bookdate = bookdate;
}

public String getBookrating() {
    return bookrating;
}

public void setBookrating(String bookrating) {
    this.bookrating = bookrating;
}

public String getBookshelf() {
    return bookshelf;
}

public void setBookshelf(String bookshelf) {
    this.bookshelf = bookshelf;
}

public BookDataProvider ( Bitmap bookimage, String booktitle, String bookauthor, String bookdate, String bookrating, String bookshelf)
{
    this.bookimage = bookimage;
    this.booktitle = booktitle;
    this.bookauthor = bookauthor;
    this.bookdate = bookdate;
    this.bookrating = bookrating;
    this.bookshelf = bookshelf;


}

}

BookContent

public class BookContent {


public static abstract class NewBookInfo{ //Tabllenspalten deklaration
    public static final String BOOK_IMAGE = "book_image";
    public static final String BOOK_IMAGE_TAG ="image_tag";
    public static final String BOOK_TITLE = "book_title";
    public static final String BOOK_AUTHOR = "book_author";
    public static final String BOOK_DATE = "book_date";
    public static final String BOOK_RATING = "book_rating";
    public static final String BOOK_SHELF = "book_shelf";

    public static final String TABLE_NAME_BOOKS = "book_info";
    public static final String BOOK_ID = "_id";

}

}

1 个答案:

答案 0 :(得分:0)

如果我的问题正确,您需要将图片转换为blob。 好吧,blob是一个字节数组,因此以下代码可以帮助您将Bitmap转换为byte[]

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 70, thumbImg);
byte[] blob = stream.toByteArray();

您还可以从另一个问题中获取整个实现: how to store Image as blob in Sqlite & how to retrieve it?

编辑:

当然,您必须修改BookDBHelper.addInformations功能并为图片添加一个附加参数:

public void addInformations( String booktitle, String bookauthor, String bookdate, String bookrating, String bookshelf, byte[] image, SQLiteDatabase bookdb)
{

    ContentValues contentValues = new ContentValues();

    contentValues.put(BookContent.NewBookInfo.BOOK_TITLE, booktitle);
    contentValues.put(BookContent.NewBookInfo.BOOK_AUTHOR, bookauthor);
    contentValues.put(BookContent.NewBookInfo.BOOK_DATE, bookdate);
    contentValues.put(BookContent.NewBookInfo.BOOK_RATING, bookrating);
    contentValues.put(BookContent.NewBookInfo.BOOK_SHELF, bookshelf);
    contentValues.put(YOUR_IMAGE_CONSTANT, image);

    bookdb.insert(BookContent.NewBookInfo.TABLE_NAME_BOOKS, null, contentValues);
    Log.e("DATABASE OPERATIONS", "ON ROW INSERTED");
}

现在,您可以通过ScanActivity.saveBook保存您的图书:

public void saveBook(View view) { //Click on save Book

    // ...

    BitmapDrawable bitmapDrawable = (BitmapDrawable) thumbView.getDrawable();
    Bitmap bitmap = bitmapDrawable.getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
    byte[] blob = stream.toByteArray();

    sqLiteDatabase1 = bookDBHelper.getWritableDatabase();

    bookDBHelper.addInformations(title, author, date, rating, shelf, blob, sqLiteDatabase1);
    Toast.makeText(getBaseContext(), "Data Saved", Toast.LENGTH_LONG).show();
    bookDBHelper.close();
}