Android Open Source - Reddit-Underground Subreddits Database Helper






From Project

Back to project page Reddit-Underground.

License

The source code is released under:

This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a co...

If you think the Android project Reddit-Underground 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.mikedaguillo.reddit_underground.SubredditDatabaseModel;
/*from www.j a  v  a2s.  com*/
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.sql.Blob;

/**
 * Created by Mike on 12/14/2014.
 *
 * The DatabaseHelper for the stored subreddits database
 *
 */
public class SubredditsDatabaseHelper  extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "StoredSubredditsDatabase";
    private static final String SUBREDDIT_TABLE_NAME = "Subreddits";
    private static final String POSTS_TABLE_NAME = "Posts";
    private static final String COMMENTS_TABLE_NAME = "Comments";

    public SubredditsDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        // sql string command to create a new table called subreddits with an id column and a name column
        sqLiteDatabase.execSQL("CREATE TABLE " + SUBREDDIT_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);");
        sqLiteDatabase.execSQL("CREATE TABLE " + POSTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, author TEXT, subreddit TEXT, numComments INTEGER, thumbnailBlob BLOB, imageBlob BLOB, subredditID INTEGER, FOREIGN KEY(subredditID) REFERENCES " + SUBREDDIT_TABLE_NAME + "(_id));");
        sqLiteDatabase.execSQL("CREATE TABLE " + COMMENTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, author TEXT, body TEXT, postTitle TEXT, ups INTEGER, downs INTEGER, postID INTEGER, FOREIGN KEY(postID) REFERENCES " + POSTS_TABLE_NAME + "(_id));");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + SUBREDDIT_TABLE_NAME);
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + POSTS_TABLE_NAME);
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + COMMENTS_TABLE_NAME);
        onCreate(sqLiteDatabase);
    }

    public void addSubreddit(String name) {
        // place the name of the subreddit you want to add into a ContentValues object
        ContentValues values = new ContentValues(1);
        values.put("name", name);

        // call getWritableDatabase and insert in the "Subreddits" table, under the "name" column the
        // values in the ContentValues object
        getWritableDatabase().insert(SUBREDDIT_TABLE_NAME, "name", values);
    }

    public void addPost(String title, String author, String subreddit, int numComments, byte[] thumbnail, byte[] image, int subredditID) {
        ContentValues values = new ContentValues(7);
        values.put("title", title);
        values.put("author", author);
        values.put("subreddit", subreddit);
        values.put("numComments", numComments);
        values.put("thumbnailBlob", thumbnail);
        values.put("imageBlob", image);
        values.put("subredditID", subredditID);

        getWritableDatabase().insert(POSTS_TABLE_NAME, "title", values);
    }

    public void addComment (String author, String body, String postTitle, int ups, int downs, int postID) {
        ContentValues values = new ContentValues(6);
        values.put("author", author);
        values.put("body", body);
        values.put("postTitle", postTitle);
        values.put("ups", ups);
        values.put("downs", downs);
        values.put("postID", postID);

        getWritableDatabase().insert(COMMENTS_TABLE_NAME, "author", values);
    }

    public Cursor getSubreddits() {
        Cursor cursor = getReadableDatabase().rawQuery("select * from " + SUBREDDIT_TABLE_NAME, null);
        return cursor;
    }

    public Cursor getPosts(int subredditID) {
        Cursor cursor = getReadableDatabase().rawQuery("select * from " + POSTS_TABLE_NAME + " where subredditID = " + subredditID, null);
        return cursor;
    }

    public Cursor getPosts(String subredditName) {
        Cursor cursor = getReadableDatabase().rawQuery("select * from " + POSTS_TABLE_NAME + " where subreddit = \"" + subredditName + "\"", null);
        return cursor;
    }

    public Cursor getComments(int postID) {
        Cursor cursor = getReadableDatabase().rawQuery("select * from " + COMMENTS_TABLE_NAME + " where postID = " + postID, null);
        return cursor;
    }

    public Cursor getComments(String postTitle) {
        Cursor cursor = getReadableDatabase().rawQuery("select * from " + COMMENTS_TABLE_NAME + " where postTitle = \"" + postTitle + "\"", null);
        return cursor;
    }

    public void deleteAll() {
        getWritableDatabase().delete(SUBREDDIT_TABLE_NAME, null, null);
        getWritableDatabase().delete(POSTS_TABLE_NAME, null, null);
        getWritableDatabase().delete(COMMENTS_TABLE_NAME, null, null);
        getWritableDatabase().execSQL("delete from sqlite_sequence where name='"+ SUBREDDIT_TABLE_NAME + "';");
        getWritableDatabase().execSQL("delete from sqlite_sequence where name='"+ POSTS_TABLE_NAME + "';");
        getWritableDatabase().execSQL("delete from sqlite_sequence where name='"+ COMMENTS_TABLE_NAME + "';");
    }

}




Java Source Code List

com.cd.reddit.RedditException.java
com.cd.reddit.Reddit.java
com.cd.reddit.exception.RedditRateLimitException.java
com.cd.reddit.http.QueryBuilder.java
com.cd.reddit.http.RedditRequestor.java
com.cd.reddit.http.util.RedditApiParameterConstants.java
com.cd.reddit.http.util.RedditApiResourceConstants.java
com.cd.reddit.http.util.RedditRequestInput.java
com.cd.reddit.http.util.RedditRequestResponse.java
com.cd.reddit.json.jackson.RedditJacksonManager.java
com.cd.reddit.json.jackson.RedditJsonParser.java
com.cd.reddit.json.mapping.RedditAccount.java
com.cd.reddit.json.mapping.RedditComment.java
com.cd.reddit.json.mapping.RedditJsonMessage.java
com.cd.reddit.json.mapping.RedditLink.java
com.cd.reddit.json.mapping.RedditMessage.java
com.cd.reddit.json.mapping.RedditMore.java
com.cd.reddit.json.mapping.RedditSubreddit.java
com.cd.reddit.json.mapping.RedditType.java
com.cd.reddit.json.util.RedditComments.java
com.cd.reddit.json.util.RedditJsonConstants.java
com.mikedaguillo.reddit_underground.ApplicationTest.java
com.mikedaguillo.reddit_underground.ImageViewScreen.java
com.mikedaguillo.reddit_underground.LoginScreen.java
com.mikedaguillo.reddit_underground.ManualEntryScreen.java
com.mikedaguillo.reddit_underground.RedditInstance.java
com.mikedaguillo.reddit_underground.RedditListItem.java
com.mikedaguillo.reddit_underground.SavedSubredditsScreen.java
com.mikedaguillo.reddit_underground.StartScreen.java
com.mikedaguillo.reddit_underground.SubredditsSelectionScreen.java
com.mikedaguillo.reddit_underground.TinyDB.java
com.mikedaguillo.reddit_underground.SubredditDatabaseModel.SubredditsDatabaseHelper.java