Android Open Source - Smartlab Database Adapter






From Project

Back to project page Smartlab.

License

The source code is released under:

Apache License

If you think the Android project Smartlab listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.databasetest.data;
// ww  w.  jav a2 s.  c  o m
import java.util.ArrayList;
import java.util.Date;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteClosable;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DatabaseAdapter {

  private final String TAG = "DatabaseAdapter";

  private DatabaseOpenHelper openHelper;

  public static final String TBL_BOOKS = "books";
  public static final String BOOK_ID = "_id";
  public static final String BOOK_NAME = "_name";
  public static final String BOOK_PUBLISH_DATE = "_publish_date";
  public static final String BOOK_PUBLISHER = "_publisher";
  public static final String BOOK_AUTHOR = "_author";
  public static final String BOOK_ISBN = "_isbn";

  public DatabaseAdapter(Context context) {
    openHelper = new DatabaseOpenHelper(context, "books.db", null, 1);
  }

  public Long insertBook(Book book) {
    SQLiteDatabase db = null;
    Long id = -1L;
    try {
      ContentValues values = new ContentValues();
      values.put(BOOK_NAME, book.getName());
      values.put(BOOK_PUBLISH_DATE, book.getPublishDate().getTime());
      values.put(BOOK_PUBLISHER, book.getPublisher());
      values.put(BOOK_AUTHOR, book.getAuthor());
      values.put(BOOK_ISBN, book.getIsbn());

      db = openHelper.getWritableDatabase();
      id = db.insert(TBL_BOOKS, null, values);
    } catch (Exception e) {
      Log.e(TAG, "Exception: " + e.getMessage());
    } finally {
      db.close();
    }
    return id;
  }

  public int deleteBook(long id) {
    SQLiteDatabase db = null;
    int count = -1;

    try {
      db = openHelper.getWritableDatabase();
      count = db.delete(TBL_BOOKS, BOOK_ID + "=?",
          new String[] { String.valueOf(id) });
    } catch (Exception e) {
      Log.e(TAG, "Exception: " + e.getMessage());
    } finally {
      db.close();
    }
    return count;
  }

  public int updateBook(Book book) {
    SQLiteDatabase db = null;
    int count = -1;

    try {
      db = openHelper.getWritableDatabase();
      ContentValues values = new ContentValues();
      values.put(BOOK_NAME, book.getName());
      values.put(BOOK_PUBLISH_DATE, book.getPublishDate().getTime());
      values.put(BOOK_PUBLISHER, book.getPublisher());
      values.put(BOOK_AUTHOR, book.getAuthor());
      values.put(BOOK_ISBN, book.getIsbn());
      count = db.update(TBL_BOOKS, values, BOOK_ID + "=?",
          new String[] { String.valueOf(book.getId()) });
    } catch (Exception e) {
      Log.e(TAG, "Exception: " + e.getMessage());
    } finally {
      db.close();
    }
    return count;
  }

  public ArrayList<Book> getBooks() {
    ArrayList<Book> result = null;
    SQLiteDatabase db = null;
    Cursor cursor = null;

    try {
      db = openHelper.getWritableDatabase();
      
      cursor = db.query(TBL_BOOKS, new String[] { "*" }, null, null,
          null, null, null);
      
      // Second Way:
      // String sql = "select * from " + TBL_BOOKS;
      // cursor = db.rawQuery(sql, null);
      
      if (cursor.moveToFirst()) {
        result = new ArrayList<Book>();
        do {
          result.add(extractBook(cursor));
        } while (cursor.moveToNext());
      }
    } catch (Exception e) {
      Log.e(TAG, "Exception: " + e.getMessage());
    } finally {
      if (cursor != null) {
        cursor.close();
      }
      db.close();
    }
    return result;
  }

  private Book extractBook(Cursor cursor) {
    Book book = new Book();

    book.setId(cursor.getLong(cursor.getColumnIndex(BOOK_ID)));
    book.setName(cursor.getString(cursor.getColumnIndex(BOOK_NAME)));
    book.setPublisher(cursor.getString(cursor.getColumnIndex(BOOK_PUBLISHER)));
    book.setAuthor(cursor.getString(cursor.getColumnIndex(BOOK_AUTHOR)));
    book.setIsbn(cursor.getString(cursor.getColumnIndex(BOOK_ISBN)));
    book.setPublishDate(new Date(cursor.getLong(cursor.getColumnIndex(BOOK_PUBLISH_DATE))));

    return book;
  }

  // ================================================

  class DatabaseOpenHelper extends SQLiteOpenHelper {

    public DatabaseOpenHelper(Context context, String name,
        CursorFactory factory, int version) {
      super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
      String query = String
          .format("create table %s (%s integer primary key, %s text, %s text, %s integer, %s text, %s text)",
              TBL_BOOKS, BOOK_ID, BOOK_AUTHOR, BOOK_NAME,
              BOOK_PUBLISH_DATE, BOOK_PUBLISHER, BOOK_ISBN);
      db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }

  }

}




Java Source Code List

com.example.activitylifecycletest.MainActivity.java
com.example.activitylifecycletest.SecondActivity.java
com.example.analyticstest.MainActivity.java
com.example.androidgraphic.MainActivity.java
com.example.animationexample.MainActivity.java
com.example.animationexample.SecondActivity.java
com.example.compassview.CompassView.java
com.example.compassview.MainActivity.java
com.example.databasetest.BookListActivity.java
com.example.databasetest.MainActivity.java
com.example.databasetest.data.Book.java
com.example.databasetest.data.DatabaseAdapter.java
com.example.fragmentexample.BookDetailsFragment.java
com.example.fragmentexample.BookListFragment.java
com.example.fragmentexample.MainActivity.java
com.example.fragmentexample.data.BookListAdapter.java
com.example.fragmentexample.data.Book.java
com.example.fragmentexample.data.DatabaseAdapter.java
com.example.listviewexample.MainActivity.java
com.example.listviewexample.data.BookListAdapter.java
com.example.listviewexample.data.Book.java
com.example.listviewexample.data.DatabaseAdapter.java
com.example.persiandatepicker.MainActivity.java
com.example.persiandatepicker.PersianDatePicker.java
com.example.preferencesexample.MainActivity.java
com.example.sqlitetestapp.MainActivity.java
com.example.sqlitetestapp.PersonListActivity.java
com.example.sqlitetestapp.data.DatabaseAdapter.java
com.example.sqlitetestapp.data.PersonListAdapter.java
com.example.sqlitetestapp.data.model.Person.java
com.example.viewpagerexample.MainActivity.java
ir.smartlab.android.broadcast.MainActivity.java
ir.smartlab.android.broadcast.WifiStateChangeReceiver.java
ir.smartlab.android.downloadasynctask.MainActivity.java
ir.smartlab.android.helloworld.MainActivity.java
ir.smartlab.audiorecord.MainActivity.java
ir.smartlab.audiotest.MainActivity.java
ir.smartlab.camera.MainActivity.java
ir.smartlab.captureimage.MainActivity.java
ir.smartlab.customaudiorecorder.MainActivity.java
ir.smartlab.java.ch04.firstcup.FisrtCup.java
ir.smartlab.java.ch05.circlesample.Circle.java
ir.smartlab.java.ch05.circlesample.Main.java
ir.smartlab.java.ch06.simplecalculator.SimpleCalculator.java
ir.smartlab.java.ch06.variablescope.VariableScopeTest.java
ir.smartlab.java.persiancalendar.Main.java
ir.smartlab.musicplayer.MainActivity.java
ir.smartlab.musicplayerservice.MainActivity.java
ir.smartlab.musicplayerservice.PlayerService.java
ir.smartlab.personlist.MainActivity.java
ir.smartlab.personlist.PersonListActivity.java
ir.smartlab.personlist.data.DatabaseAdapter.java
ir.smartlab.personlist.data.PersonListAdapter.java
ir.smartlab.personlist.data.Person.java