Skip to content

Instantly share code, notes, and snippets.

@EduardoSimon
Created July 2, 2018 16:10
Show Gist options
  • Save EduardoSimon/2543b6b5924481e28c9e9ff8d4cc7a1f to your computer and use it in GitHub Desktop.
Save EduardoSimon/2543b6b5924481e28c9e9ff8d4cc7a1f to your computer and use it in GitHub Desktop.
package com.example.marc.finalproject.Model;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQuery;
import java.util.ArrayList;
import java.util.List;
import static java.sql.Types.FLOAT;
public class VideosDatabase extends SQLiteOpenHelper implements IVideosDatabase {
private static final String VIDEOS = "VIDEOS";
private static final String DB_NAME = "myvideos.db";
private static final int DB_VERSION = 1;
private static final String VIDEO_ID = "VIDEO_ID";
private static final String VIDEO_TITLE = "VIDEO_TITLE";
private static final String INTEGER_NOT_NULL = "integer not null";
private static final String INTEGER = "integer";
private static final String TEXT_NOT_NULL = "text not null";
private static final String TEXT_NOT_NULL_UNIQUE = "text not null unique";
private static final String TEXT = "text";
private static final String REAL = "real";
private static final String VIEW_COUNT = "VIEW_COUNT";
private static final String THUMBNAIL_URL = "THUMBNAIL_URL";
private static final String VIDEO_RATING = "VIDEO_RATING";
private static final String VIDEO_COMMENT = "VIDEO_COMMENT";
private static final String CHANNEL = "CHANNEL";
public VideosDatabase(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
createVideosTable(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists " + VIDEOS);
onCreate(db);
}
@Override
public List<VideoData> getAllVideos() {
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(VIDEOS,null,
null,
null,
null,
null,
VIDEO_TITLE);
List<VideoData> videos = new ArrayList <>();
while(cursor.moveToNext()){
VideoData videoData = new VideoData(cursor.getString(1));
videoData.setVideoId(cursor.getString(0));
videoData.setRating(cursor.getFloat(2));
videoData.setChannel(cursor.getString(3));
videoData.setComment(cursor.getString(4));
videoData.setViewCount(cursor.getLong(5));
videoData.setThumbnailURL(cursor.getString(6));
videos.add(videoData);
}
cursor.close();
return videos;
}
@Override
public VideoData getVideoData(String id) {
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(VIDEOS,
null,
VIDEO_ID + "=?",
new String[]{id},
null,
null,
null,
null);
VideoData videoData = null;
if(cursor.moveToNext()){
videoData = new VideoData(cursor.getString(1));
videoData.setVideoId(cursor.getString(0));
videoData.setRating(cursor.getFloat(2));
videoData.setChannel(cursor.getString(3));
videoData.setComment(cursor.getString(4));
videoData.setViewCount(cursor.getInt(5));
videoData.setThumbnailURL(cursor.getString(6));
}
cursor.close();
return videoData;
}
@Override
public void insertVideoData(VideoData videoData) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(VIDEO_ID, videoData.getVideoId());
values.put(VIDEO_TITLE, videoData.getTitle());
values.put(VIDEO_RATING, videoData.getRating());
values.put(CHANNEL, videoData.getChannel());
values.put(VIDEO_COMMENT, videoData.getComment());
values.put(VIEW_COUNT, videoData.getViewCount());
values.put(THUMBNAIL_URL, videoData.getThumbnailURL());
db.insertWithOnConflict(VIDEOS, null, values, SQLiteDatabase.CONFLICT_REPLACE);
}
@Override
public void deleteVideo(String storeVideoId) {
SQLiteDatabase db = getWritableDatabase();
db.delete(VIDEOS, VIDEO_ID + "=?" , new String[]{storeVideoId});
}
private void createVideosTable(SQLiteDatabase db) {
String create = "create table " + VIDEOS + " ("
+ VIDEO_ID + " " + TEXT_NOT_NULL_UNIQUE + " primary key not null,"
+ VIDEO_TITLE + " " + TEXT + ","
+ VIDEO_RATING + " " + REAL + ","
+ CHANNEL + " " + TEXT + ","
+ VIDEO_COMMENT + " " + TEXT + ","
+ VIEW_COUNT + " " + INTEGER + ","
+ THUMBNAIL_URL + " " + TEXT + ");";
db.execSQL(create);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment