· 8 years ago · May 21, 2018, 06:38 PM
1package com.example.piotr.aplikacja;
2
3import android.content.ContentValues;
4import android.content.Context;
5import android.database.Cursor;
6import android.database.SQLException;
7import android.database.sqlite.SQLiteDatabase;
8import android.database.sqlite.SQLiteOpenHelper;
9import android.util.Log;
10
11
12/**
13 * Created by Piotr on 18.05.2018.
14 */
15
16public class BookDbAdapter {
17 private static final String DATABASE_NAME = "BOOK_DATABASE.db";
18 private static final String BOOK_TABLE="BOOK_TABLE";
19 private static final int DATABASE_VERSION=1;
20 private final Context context;
21
22 private DatabaseHelper databaseHelper;
23 SQLiteDatabase sqLiteDatabase;
24
25 public static final String KEY_ROWID = "_id";
26 public static final String TITLE = "title";
27 public static final String AUTHOR = "author";
28 public static final String PRICE = "price";
29
30 public static final String[] BOOK_FIELDS = new String[]{
31 KEY_ROWID,
32 TITLE,
33 AUTHOR,
34 PRICE,
35 };
36
37 private static final String CREATE_TABLE_BOOK =
38 "create table " + BOOK_TABLE + "("
39 +KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
40 +TITLE + " text not null UNIQUE,"
41 +AUTHOR + " text,"
42 +PRICE + " INTEGER"
43 +");";
44
45 //konstruktor w którym pobieramy kontekst aplikacji
46 public BookDbAdapter(Context ctx){
47 this.context =ctx;
48 }
49 public BookDbAdapter open() throws SQLException {
50 databaseHelper = new DatabaseHelper(context);
51 sqLiteDatabase = databaseHelper.getWritableDatabase();
52 return this;
53 }
54 public void close(){
55 if(databaseHelper !=null){
56 databaseHelper.close();
57 }
58 }
59 public void upgrade() throws SQLException{
60 databaseHelper = new DatabaseHelper(context);
61 sqLiteDatabase = databaseHelper.getWritableDatabase();
62 databaseHelper.onUpgrade(sqLiteDatabase,1,0);
63 }
64
65 public long insertBook(ContentValues initialValues){
66 return sqLiteDatabase.insertWithOnConflict(BOOK_TABLE,null,initialValues,SQLiteDatabase.CONFLICT_IGNORE);
67 }
68 public boolean updateBook(String title, ContentValues newValues){
69 String[] selectionArgs = {title};
70 return sqLiteDatabase.update(BOOK_TABLE, newValues, TITLE + "=?",
71 selectionArgs)>0;
72 }
73 public boolean deleteBook(String title){
74 String[] selectionArgs = {title};
75 return sqLiteDatabase.delete(BOOK_TABLE,TITLE+"=?",selectionArgs)>0;
76 }
77
78 //pobieranie danycho o wszystkich książkach
79 public Cursor getBooks(){
80 return sqLiteDatabase.query(BOOK_TABLE,BOOK_FIELDS,null,null,null,null,null);
81 }
82
83 public Cursor getBook(String title){
84 String selection = TITLE + " =?";
85 String[] args = {title};
86 return sqLiteDatabase.query(BOOK_TABLE,BOOK_FIELDS,selection,args,null,null,null,null);
87 }
88
89 public Cursor getSorted(){
90 return sqLiteDatabase.query(BOOK_TABLE,BOOK_FIELDS,null,null,TITLE ,null,null);
91 }
92 public class DatabaseHelper extends SQLiteOpenHelper {
93 DatabaseHelper (Context context){
94 super(context,DATABASE_NAME, null, DATABASE_VERSION);
95 }
96
97 @Override
98 public void onCreate(SQLiteDatabase db) {
99 db.execSQL(CREATE_TABLE_BOOK);
100 }
101 @Override
102 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
103 db.execSQL("DROP TABLE IF EXISTS "+ BOOK_TABLE);
104 onCreate(db);
105 }
106 }
107}