Created
July 2, 2018 16:10
-
-
Save EduardoSimon/2543b6b5924481e28c9e9ff8d4cc7a1f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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