Android Open Source - Handalfabet Database Helper






From Project

Back to project page Handalfabet.

License

The source code is released under:

GNU General Public License

If you think the Android project Handalfabet 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.android;
//w w w .j av a2s. c o  m
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

/**
 *    Copyright? 2012, Grupp02
 * 
 *     This file is part of Handalfabetet.
 *
 *   Handalfabetet is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   Handalfabetet is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with Handalfabetet.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * The DatabaseHelper class is used to interact with the User database.
 * 
 * @author : Grupp02
 * @version : 2012-10-21, v1.0
 */
public class DatabaseHelper extends SQLiteOpenHelper {

    // Database Version
    private static final int DATABASE_VERSION = 1;
    // Database Name
    private static final String DATABASE_NAME = "User";
    // User table name
    public static final String USER_TABLE = "Users";

    // UTable Columns names
    private static final String colImage = "image";
    private static final String colName = "Username";
    private static final String colPassword = "Password";
    private static final String colHighScore = "HighScore";
    private static final String colMaxDifficulty = "Difficult";
    private static final String colMaxLetters = "Letters";

    static final String USER_VIEW = "UserView";

    private static final String DATABASE_CREATE = "CREATE TABLE " + USER_TABLE
      + "(" + colName + " VARCHAR(36) PRIMARY KEY," + colPassword
      + " TEXT," + colHighScore + " INTEGER, " + colImage + " blob,"
      + colMaxDifficulty + " INTEGER, " + colMaxLetters + " INTEGER)";

    private final int oneHundred = 100;
    private final int zero = 0;
    private final int two = 2;

    public DatabaseHelper(Context context) {
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // Skappar en tabel med sex kolumer UserName, UserPassword,
    // UserHighScore, UserImage, MaxDifficulty och MaxLetters
    @Override
    public void onCreate(SQLiteDatabase db) {
  // TODO Auto-generated method stub
  // Skappar en tabel med tre kolumer UserName, Password och HighScore
  db.execSQL(DATABASE_CREATE);
    }

    // Upgrading database
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub
  Log.w(DatabaseHelper.class.getName(),
    "Upgrading database from version " + oldVersion + " to "
      + newVersion + ", which will destroy all old data");
  // Drop older table if existed
  db.execSQL("DROP TABLE IF EXISTS " + USER_TABLE);
  onCreate(db);
    }

    /**
     * All CRUD(Create, Read, Update, Delete) Operations
     */

    // Adding new User
    public void addUser(User user) {
  SQLiteDatabase db = this.getWritableDatabase();

  ByteArrayOutputStream out = new ByteArrayOutputStream();
  user.getUserImg().compress(Bitmap.CompressFormat.PNG, oneHundred, out);

  ContentValues values = new ContentValues();
  values.put(colName, user.getName()); // User Name
  values.put(colPassword, user.getPassword()); // User Password
  values.put(colHighScore, user.getHighScore()); // User Highscore
  values.put(colImage, out.toByteArray()); // User Image
  values.put(colMaxDifficulty, user.getMaxDifficulty()); // User Image
  values.put(colMaxLetters, user.getMaxLetters()); // User Image
  // Inserting Row
  db.insert(USER_TABLE, null, values);
  db.close(); // Closing database connection
    }

    // Getting single user
    public User getUser(String userName) {
  SQLiteDatabase db = this.getReadableDatabase();

  Cursor cursor = db.query(USER_TABLE, new String[] { colName,
    colPassword, colHighScore, colImage, colMaxDifficulty,
    colMaxLetters }, colName + "=?",
    new String[] { String.valueOf(userName) }, null, null, null,
    null);
  if (cursor != null) {
      cursor.moveToFirst();
  }
  // retriving user image from SQlite
  byte[] blob = cursor.getBlob(cursor.getColumnIndex(colImage));
  Bitmap bmp = BitmapFactory.decodeByteArray(blob, zero, blob.length);
  User user = new User(cursor.getString(zero), cursor.getInt(two), bmp,
    cursor.getInt(cursor.getColumnIndex(colMaxDifficulty)),
    cursor.getInt(cursor.getColumnIndex(colMaxLetters)));

  db.close();
  // return user
  return user;
    }

    // Getting All Users
    public List<User> getAllUsers() {
  List<User> userList = new ArrayList<User>();
  // Select All Query
  // String selectQuery = "SELECT * FROM " + USER_TABLE;

  SQLiteDatabase db = this.getWritableDatabase();
  // Cursor cursor = db.rawQuery(selectQuery, null);

  // Sort list
  Cursor cursor = db
    .query(USER_TABLE,
      new String[] { colName, colPassword, colHighScore,
        colImage, colMaxDifficulty, colMaxLetters },
      null, null, null, null, colHighScore + " DESC");

  // looping through all rows and adding to list
  if (cursor.moveToFirst()) {
      do {
    User user = new User();
    user.setName(cursor.getString(zero));
    // user.setPassword(cursor.getString(1));
    user.setHighScore(cursor.getInt(two));
    // retriving user image from SQlite
    byte[] blob = cursor.getBlob(cursor.getColumnIndex(colImage));
    Bitmap bmp = BitmapFactory.decodeByteArray(blob, zero,
      blob.length);
    user.setUserImg(bmp);
    user.setMaxDifficulty(cursor.getInt(cursor
      .getColumnIndex(colMaxDifficulty)));
    user.setMaxLetters(cursor.getInt(cursor
      .getColumnIndex(colMaxLetters)));
    // Adding user to list
    userList.add(user);
      } while (cursor.moveToNext());
  }

  db.close();
  // return user list
  return userList;
    }

    // Getting All Users
    public List<User> getAllUsersName() {
  List<User> userList = new ArrayList<User>();
  // Select All Query
  // String selectQuery = "SELECT * FROM " + USER_TABLE;

  SQLiteDatabase db = this.getWritableDatabase();
  // Cursor cursor = db.rawQuery(selectQuery, null);

  // Sort list
  Cursor cursor = db.query(USER_TABLE, new String[] { colName,
    colPassword, colHighScore, colImage, colMaxDifficulty,
    colMaxLetters }, null, null, null, null, null, null);

  // looping through all rows and adding to list
  if (cursor.moveToFirst()) {
      do {
    User user = new User();
    user.setName(cursor.getString(zero));
    // user.setPassword(cursor.getString(1));
    user.setHighScore(cursor.getInt(two));
    // retriving user image from SQlite
    byte[] blob = cursor.getBlob(cursor.getColumnIndex(colImage));
    Bitmap bmp = BitmapFactory.decodeByteArray(blob, zero,
      blob.length);
    user.setUserImg(bmp);
    user.setMaxDifficulty(cursor.getInt(cursor
      .getColumnIndex(colMaxDifficulty)));
    user.setMaxLetters(cursor.getInt(cursor
      .getColumnIndex(colMaxLetters)));
    // Adding user to list
    userList.add(user);
      } while (cursor.moveToNext());
  }

  db.close();
  // return user list
  return userList;
    }

    // Updating single user
    public int updateUserHighScore(User user) {
  SQLiteDatabase db = this.getWritableDatabase();

  ContentValues values = new ContentValues();
  values.put(colHighScore, user.getHighScore());
  values.put(colMaxDifficulty, user.getMaxDifficulty());
  values.put(colMaxLetters, user.getMaxLetters());
  values.put(colName, user.getName());
  // values.put(colPassword, user.getPassword());

  // updating row
  return db.update(USER_TABLE, values, colName + " =?",
    new String[] { String.valueOf(user.getName()) });
  // return db.update(USER_TABLE, values, colName + " = ?",
  // new String[] { String.valueOf(user.getName()) });
    }

    // Deleting single user
    public void deleteUser(User user) {
  SQLiteDatabase db = this.getWritableDatabase();
  db.delete(USER_TABLE, colName + " = ?",
    new String[] { String.valueOf(user.getName()) });
  db.close();
    }

    // Getting user Count
    public int getUserCount() {
  String countQuery = "SELECT  * FROM " + USER_TABLE;
  SQLiteDatabase db = this.getReadableDatabase();
  Cursor cursor = db.rawQuery(countQuery, null);
  cursor.close();

  // return count
  return cursor.getCount();
    }

}




Java Source Code List

com.SwedishSignAlphabet.AlphabetHelpActivity.java
com.SwedishSignAlphabet.AudioFocusHelper.java
com.SwedishSignAlphabet.CreateNewPlayer.java
com.SwedishSignAlphabet.DatabaseHelper.java
com.SwedishSignAlphabet.DisplayHighscoreActivity.java
com.SwedishSignAlphabet.GameEnd.java
com.SwedishSignAlphabet.GameHelpActivity.java
com.SwedishSignAlphabet.GameLogic.java
com.SwedishSignAlphabet.GameSettingsActivity.java
com.SwedishSignAlphabet.Game.java
com.SwedishSignAlphabet.Help.java
com.SwedishSignAlphabet.HighScoreArrayAdapter.java
com.SwedishSignAlphabet.HighScore.java
com.SwedishSignAlphabet.ImagePickActivity.java
com.SwedishSignAlphabet.LevelChooserActivity.java
com.SwedishSignAlphabet.MainActivity.java
com.SwedishSignAlphabet.PhotoHandler.java
com.SwedishSignAlphabet.ProfileSettingsActivity.java
com.SwedishSignAlphabet.SoundPlayer.java
com.SwedishSignAlphabet.SoundSettingsActivity.java
com.SwedishSignAlphabet.SoundSettings.java
com.SwedishSignAlphabet.UserActivity.java
com.SwedishSignAlphabet.UserArrayAdapter.java
com.SwedishSignAlphabet.User.java
com.example.SwedishSignAlphabet.CreateNewPlayerActivityTest.java
com.example.SwedishSignAlphabet.DatabaseHelperTest.java
com.example.SwedishSignAlphabet.GameActivityTest.java
com.example.SwedishSignAlphabet.GameLogicTest.java
com.example.SwedishSignAlphabet.MainActivityTest.java
com.example.SwedishSignAlphabet.UserActivityTest.java
com.example.SwedishSignAlphabet.UserTest.java
com.example.android.AlphabetHelpActivity.java
com.example.android.AudioFocusHelper.java
com.example.android.CreateNewPlayer.java
com.example.android.DatabaseHelper.java
com.example.android.DisplayHighscoreActivity.java
com.example.android.GameEnd.java
com.example.android.GameHelpActivity.java
com.example.android.GameLogic.java
com.example.android.GameSettingsActivity.java
com.example.android.Game.java
com.example.android.Help.java
com.example.android.HighScoreArrayAdapter.java
com.example.android.HighScore.java
com.example.android.ImagePickActivity.java
com.example.android.LevelChooserActivity.java
com.example.android.MainActivity.java
com.example.android.PhotoHandler.java
com.example.android.ProfileSettingsActivity.java
com.example.android.SoundPlayer.java
com.example.android.SoundSettingsActivity.java
com.example.android.SoundSettings.java
com.example.android.UserActivity.java
com.example.android.UserArrayAdapter.java
com.example.android.User.java