{"id":10362,"date":"2019-07-05T14:45:17","date_gmt":"2019-07-05T14:45:17","guid":{"rendered":"https:\/\/ittutorial.org\/?p=10362"},"modified":"2019-07-05T14:45:51","modified_gmt":"2019-07-05T14:45:51","slug":"android-programlama-45-sqlite-provider-class","status":"publish","type":"post","link":"https:\/\/ittutorial.org\/android-programlama-45-sqlite-provider-class\/","title":{"rendered":"Android Programlama -45 SQLite Provider Class"},"content":{"rendered":"<p>Merhaba arkada\u015flar bu g\u00fcn ki makalem de SQLite database&#8217;inde provider class&#8217;\u0131na de\u011finece\u011fim.<\/p>\n<p>Bir \u00f6nceki makalemde Contract class&#8217;\u0131na de\u011finmi\u015ftim. Okumad\u0131ysan\u0131z \u00f6ncelikle onu okuman\u0131z\u0131 tavsiye ederim. <a href=\"https:\/\/ittutorial.org\/android-programlama-44-sqllite-contract-class\/\">Buradan<\/a> okuyabilirsiniz.<\/p>\n<pre>package com.example.user.finalyproject.DataBase;\r\n\r\nimport android.content.ContentProvider;\r\nimport android.content.ContentUris;\r\nimport android.content.ContentValues;\r\nimport android.content.UriMatcher;\r\nimport android.database.Cursor;\r\nimport android.database.sqlite.SQLiteDatabase;\r\nimport android.net.Uri;\r\nimport android.support.annotation.NonNull;\r\nimport android.support.annotation.Nullable;\r\nimport android.widget.Toast;\r\n\r\npublic class Provider extends ContentProvider {\r\npublic static final int PRODUCTS = ..;\r\nprivate static final int PRODUCT_ID = ..;\r\nprivate static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);\r\n\r\nstatic {\r\nsUriMatcher.addURI(ProductContract.CONTENT_AUTHORITY, ProductContract.PATH_PRODUCTS, PRODUCTS);\r\nsUriMatcher.addURI(ProductContract.CONTENT_AUTHORITY, ProductContract.PATH_PRODUCTS + \"\/#\", PRODUCT_ID);\r\n}\r\n\r\nprivate DbHelper mdbHelper;\r\n\r\n@Override\r\npublic boolean onCreate() {\r\nmdbHelper = new DbHelper(getContext());\r\nreturn true;\r\n}\r\n\r\n@Nullable\r\n@Override\r\npublic Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) {\r\nSQLiteDatabase db = mdbHelper.getReadableDatabase();\r\nCursor cursor;\r\nint match = sUriMatcher.match(uri);\r\nswitch (match) {\r\ncase PRODUCTS:\r\ncursor = db.query(ProductContract.ProductEntry.TABLE_NAME, strings, s, strings1, null, null, s1);\r\nbreak;\r\ncase PRODUCT_ID:\r\ns = ProductContract.ProductEntry._ID + \"=?\";\r\nstrings1 = new String[]{String.valueOf(ContentUris.parseId(uri))};\r\ncursor = db.query(ProductContract.ProductEntry.TABLE_NAME, strings, s, strings1, null, null, s1);\r\nbreak;\r\ndefault:\r\nthrow new IllegalArgumentException(\"Cannot query unknown URI\" + uri);\r\n}\r\n\r\ncursor.setNotificationUri(getContext().getContentResolver(), uri);\r\n\r\nreturn cursor;\r\n}\r\n\r\n@Nullable\r\n@Override\r\npublic String getType(@NonNull Uri uri) {\r\nfinal int match = sUriMatcher.match(uri);\r\nswitch (match) {\r\ncase PRODUCTS:\r\nreturn ProductContract.ProductEntry.CONTENT_LIST_TYPE;\r\ncase PRODUCT_ID:\r\nreturn ProductContract.ProductEntry.CONTENT_ITEM_TYPE;\r\ndefault:\r\nthrow new IllegalStateException(\"Unknown URI \" + uri + \" with match \" + match);\r\n}\r\n}\r\n\r\n@Nullable\r\n@Override\r\npublic Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {\r\nfinal int match = sUriMatcher.match(uri);\r\nswitch (match) {\r\ncase PRODUCTS:\r\nreturn insertProduct(uri, contentValues);\r\ndefault:\r\nthrow new IllegalArgumentException(\"Insertion is not supported for \" + uri);\r\n}\r\n}\r\n\r\n@Override\r\npublic int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) {\r\nSQLiteDatabase db = mdbHelper.getWritableDatabase();\r\n\r\nint rowsDeleted;\r\n\r\nfinal int match = sUriMatcher.match(uri);\r\nswitch (match) {\r\ncase PRODUCTS:\r\nrowsDeleted = db.delete(ProductContract.ProductEntry.TABLE_NAME, s, strings);\r\nbreak;\r\ncase PRODUCT_ID:\r\ns = ProductContract.ProductEntry._ID + \"=?\";\r\nstrings = new String[]{String.valueOf(ContentUris.parseId(uri))};\r\nrowsDeleted = db.delete(ProductContract.ProductEntry.TABLE_NAME, s, strings);\r\nbreak;\r\ndefault:\r\nthrow new IllegalArgumentException(\"You cannot delete \" + uri);\r\n}\r\n\r\nif (rowsDeleted != 0) {\r\ngetContext().getContentResolver().notifyChange(uri, null);\r\n}\r\n\r\nreturn rowsDeleted;\r\n}\r\n\r\n@Override\r\npublic int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) {\r\nif (contentValues.containsKey(ProductContract.ProductEntry.COLUMN_PRODUCT_NAME)) {\r\nString name = contentValues.getAsString(ProductContract.ProductEntry.COLUMN_PRODUCT_NAME);\r\nif (name == null) {\r\nthrow new IllegalArgumentException(\"Enter the product name\");\r\n}\r\n}\r\n\r\nif (contentValues.containsKey(ProductContract.ProductEntry.COLUMN_PRODUCT_QUANTITY)) {\r\nInteger quantity = contentValues.getAsInteger(ProductContract.ProductEntry.COLUMN_PRODUCT_QUANTITY);\r\nif (quantity != null &amp;&amp; quantity &lt; 0) {\r\nthrow new IllegalArgumentException(\"enter the quentity\");\r\n}\r\n}\r\n\r\nif (contentValues.containsKey(ProductContract.ProductEntry.COLUMN_PRODUCT_PRICE)) {\r\nInteger price = contentValues.getAsInteger(ProductContract.ProductEntry.COLUMN_PRODUCT_PRICE);\r\nif (price != null &amp;&amp; price &lt; 0) {\r\nthrow new IllegalArgumentException(\"price will be correct\");\r\n}\r\n}\r\n\r\nif (contentValues.size() == 0) {\r\nreturn 0;\r\n}\r\n\r\nSQLiteDatabase db = mdbHelper.getReadableDatabase();\r\nint rowsUpdated = db.update(ProductContract.ProductEntry.TABLE_NAME, contentValues, s, strings);\r\nif (rowsUpdated == -1) {\r\nToast.makeText(getContext(), \"Update is not succesful\", Toast.LENGTH_SHORT).show();\r\nreturn 0;\r\n}\r\nif (rowsUpdated != 0) {\r\ngetContext().getContentResolver().notifyChange(uri, null);\r\n}\r\nreturn rowsUpdated;\r\n}\r\n\r\nprivate Uri insertProduct(Uri uri, ContentValues values) {\r\nString name = values.getAsString(ProductContract.ProductEntry.COLUMN_PRODUCT_NAME);\r\nif (name == null) {\r\nthrow new IllegalArgumentException(\"Enter the product name\");\r\n}\r\nInteger quantity = values.getAsInteger(ProductContract.ProductEntry.COLUMN_PRODUCT_QUANTITY);\r\nif (quantity != null &amp;&amp; quantity &lt; 0) {\r\nthrow new IllegalArgumentException(\"Enter the quant\u0131ty\");\r\n}\r\nInteger price = values.getAsInteger(ProductContract.ProductEntry.COLUMN_PRODUCT_PRICE);\r\n\r\nif (price != null &amp;&amp; price &lt; 0) {\r\nthrow new IllegalArgumentException(\"Product price should be valid\");\r\n}\r\n\r\nSQLiteDatabase db = mdbHelper.getReadableDatabase();\r\nlong id = db.insert(ProductContract.ProductEntry.TABLE_NAME, null, values);\r\nif (id == -1) {\r\nToast.makeText(getContext(), \"Insert \u0131s not sucssesful\", Toast.LENGTH_SHORT).show();\r\nreturn null;\r\n}\r\n\r\ngetContext().getContentResolver().notifyChange(uri, null);\r\n\r\nreturn ContentUris.withAppendedId(uri, id);\r\n}\r\n}<\/pre>\n<p>Bu class ile insert,update,delete gibi i\u015flemlerde yapmak istedi\u011fimiz i\u015flemleri kodluyoruz. B\u00fct\u00fcn i\u015flemlerin ayr\u0131 ayr\u0131 methodlar\u0131 vard\u0131r. \u0130\u00e7eri\u011fini kendi projemize g\u00f6re revize edebiliriz.<\/p>\n<p>Bir makalenin daha sonuna geldik, esenle kal\u0131n..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba arkada\u015flar bu g\u00fcn ki makalem de SQLite database&#8217;inde provider class&#8217;\u0131na de\u011finece\u011fim. Bir \u00f6nceki makalemde Contract class&#8217;\u0131na de\u011finmi\u015ftim. Okumad\u0131ysan\u0131z \u00f6ncelikle onu okuman\u0131z\u0131 tavsiye ederim. Buradan okuyabilirsiniz. package com.example.user.finalyproject.DataBase; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.widget.Toast; public class Provider extends ContentProvider { public &hellip;<\/p>\n","protected":false},"author":44,"featured_media":10302,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[3953,3806,3651,3657,3857,3858,3915,3854,3855,3849,4158,3793,3572,4937,5237,5238,3853,3565,3575,4939,4124,3653,3852,4131,4198,4200,4199],"class_list":["post-10362","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-android","tag-adim-adim-android-programlama","tag-android-activity","tag-android-activity-class-ornekleri","tag-android-activity-yasam-donguleri-ornek","tag-android-adapter","tag-android-adapter-kullanimi","tag-android-adapter-ozellestirme","tag-android-arraylist","tag-android-arraylist-ornek-kodlama","tag-android-baslangic-duzey-konu-anlatimi","tag-android-buttomnavigation-nedir","tag-android-de-giris","tag-android-de-oncreate-fonksiyon-kullanimi","tag-android-floatingactionmenu","tag-android-graph","tag-android-piechart-graph","tag-android-studio-arraylist-kullanimi","tag-android-studio-buton-kodlama","tag-android-studio-degisken-tanimlama","tag-android-studio-floatingactionmenu","tag-android-studio-fragment-kullanimi","tag-android-studio-java-programlama","tag-android-studio-listview-ornek-kod","tag-android-studio-ornek-kodlama","tag-android-tablayout-kullanimi","tag-android-tablayout-ornek-kod","tag-android-tablayout-ornek-uygulama"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/ittutorial.org\/wp-content\/uploads\/2019\/07\/sqlite-and-Android.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/10362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/comments?post=10362"}],"version-history":[{"count":1,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/10362\/revisions"}],"predecessor-version":[{"id":10363,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/posts\/10362\/revisions\/10363"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/media\/10302"}],"wp:attachment":[{"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/media?parent=10362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/categories?post=10362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittutorial.org\/wp-json\/wp\/v2\/tags?post=10362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}