• Save
Mobile Application Development: Lecture 15
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Mobile Application Development: Lecture 15






Total Views
Views on SlideShare
Embed Views



26 Embeds 289

http://vkedco.blogspot.com 149
http://www.vkedco.blogspot.com 72
http://vkedco.blogspot.in 13
http://vkedco.blogspot.co.uk 11
http://vkedco.blogspot.mx 7
http://vkedco.blogspot.co.il 6
http://vkedco.blogspot.com.es 5
http://vkedco.blogspot.de 3
http://www.vkedco.blogspot.in 3
http://vkedco.blogspot.fr 2
http://vkedco.blogspot.fi 2
http://vkedco.blogspot.ca 2
http://vkedco.blogspot.com.br 1
http://vkedco.blogspot.co.nz 1
http://vkedco.blogspot.sk 1
http://vkedco.blogspot.nl 1
http://vkedco.blogspot.ch 1
http://vkedco.blogspot.cz 1
http://www.vkedco.blogspot.co.uk 1
http://vkedco.blogspot.ie 1
http://www.blogger.com 1
http://vkedco.blogspot.ro 1
http://vkedco.blogspot.hu 1
http://www.vkedco.blogspot.ca 1
http://vkedco.blogspot.it 1
http://vkedco.blogspot.kr 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Mobile Application Development: Lecture 15 Presentation Transcript

  • 1. Mobile Application Development Lecture 15 Vladimir Kulyukin Department of Computer Science Utah State Universityhttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 2. Outline ● SQLite Data Types ● SQLite Database Construction – Object-Oriented Data Modeling – XML Specifications of DB Tables – Design & Implementation of SQLite Database Adapters – DB Population with Database Adaptershttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 3. SQLite Data Typeshttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 4. SQL vs SQLite Data Typing ● SQL engines typically use static typing: datatype of a value is determined by the column in which the value is stored ● SQLite engines use dynamic typing: datatype of a value is associated with the value not the column in which it is stored ● Basic SQL vs. SQLite tradeoff: security and safety (SQL) vs. flexibility (SQLite) ● SQLite rule of thumb: do not expose your SQLite API to third partieshttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 5. SQLite Datatypes ● NULL – the value is NULL ● INTEGER – signed integers; signed integer can be stored as 1, 2, 3, 4, 5, 6, or 8 bytes; the storage size depends on the value magnitude ● REAL – float-point numbers; stored as 8 bytes ● TEXT – text string; stored according to the database encoding (e.g., UTF-8) ● BLOB – data blob, typically stored as array of byteshttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 6. SQLite Database Constructionhttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 7. Sample Table 01: Book Title ID Title Author Translator ISBN Price 1 The Essential Rumi Jalal al-Din Rumi C. Barks, J. Moyne 9780062509581 17.51 2 The Illuminated Rumi Jalal al-Din Rumi C. Barks 9780767900027 25.04 3 A Year with Rumi: Daily Jalal al-Din Rumi C. Barks 9780060845971 14.92 Readings 4 A Year with Hafiz: Daily Hafiz D. Ladinsky 9780143117544 12.24 Contemplations 5 The Gift Hafiz D. Ladinsky 9780140195811 12.24 - Book Title is a Class - ID, Title, Author, Translator, ISBN, Price are Attributes - Rows 1 – 5 are Book Objectshttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 8. Sample Table 02: Book Author ID Name BirthYear DeathYear Country 1 Jalal al-Din Rumi 1207 1273 Persia 2 Hafiz 1325 1389 Persia - Book Author is a Class - ID, Name, BirthYear, DeathYear, Country, are Attributes - Row 1 is an Author Object - Row 2 is an Author Objecthttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 9. Sample Table 03: Book Cover Image ISBN IMG 9780062509581 BLOB 9780767900027 BLOB 9780060845971 BLOB 9780143117544 BLOB 9780140195811 BLOB - Book Cover Image is a Class - ISBN, IMG, are Attributes - Each row is a book cover image entry mapping isbn to image blobhttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 10. Steps of SQLite DB Construction ● For each database, model each table as a Java class ● Obtain XML specifications of database tables ● For each database, design and implement a database adapter class ● Database adapters are Java classes responsible for creating, populating, querying, and maintaining databases ● Populate databases with database adapters ● Move the population databases with database adapters into background services (more on this later; we will stay in the main UI thread for now)http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 11. Object-Oriented Data Modeling: Modeling Tables as Java Classeshttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 12. Book Title Table as BookTitle Class public class BookTitle { protected String mTitle; // title column protected String mAuthor; // author column protected String mISBN; // isbn column protected float mPrice; // price column // constructors and other methods } Source code is in BookTitle.java of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 13. Book Author Table as BookAuthor Class public class BookAuthor { protected String mName; // name column protected String mBirthYear; // birth year column protected String mDeathYear; // death year column protected float mCountry; // country column // constructors and other methods } Source code is in BookAuthor.java of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 14. Book Cover Image Table as BookCoverImage Class public class BookCoverImage { protected String mISBN; // isbn column protected byte[] mCoverRef; // img column // constructors and other methods } Source code is in BookCoverImage.java of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 15. Obtaining XML Specifications of DB Tableshttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 16. XML DB Table Specs ● XML DB table specs can come in a variety of formats and from a variety of resources ● Basically, each table spec must describe inflatable row records; table specs inflated into table Java objects ● Table specs give you the flexibility to persist (save) Java into SQLite databases or Object databases ● Source of table specs can vary from local XML files, remote XML files, RSS feeds, etchttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 17. XML Specs of Book Title Table <string-array name="book_title_table"> <item>The Essential Rumi;Jalal adDin Rumi;C. Barks, J. Moyne;9780062509581;17.51</item> <item>The Illuminated Rumi;Jalal adDin Rumi;C. Barks;9780767900027;25.04</item> <item>A Year with Rumi: Daily Readings;Jalal adDin Rumi;C. Barks;9780060845971;14.92</item> <item>A Year with Hafiz: Daily Contemplations;Hafiz;D. Ladinsky;9780143117544;12.24</item> <item>The Gift;Hafiz;Daniel Ladinsky;9780140195811;12.24</item> </string-array> XML source is in strings.xml of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 18. XML Specs of Book Author Table <string-array name="book_author_table"> <item>Jalal adDin Rumi;1207;1273;Persia</item> <item>Hafiz;1325;1389;Persia</item> </string-array> XML source is in strings.xml of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 19. XML Specs of Book Cover Image Table <string-array name="book_cover_image_table"> <item>9780062509581;essential_rumi_cover</item> <item>9780767900027;illuminated_rumi_cover</item> <item>9780060845971;year_with_rumi_cover</item> <item>9780143117544;year_with_hafiz_cover</item> <item>9780140195811;the_gift_cover</item> </string-array> XML source is in strings.xml of SimpleDbApp02http://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 20. DB XML Specs Table Inflation ● Typically there is a class that creates objects from XML table specs ● In our case, we simply inflate XML string-arrays given in strings.xml and create objects from XML strings ● Each object is then given to the database adapter (BookDbAdptr) for SQLite persistence ● Source code of the DB XML specs table inflater is in BookDbPopulator.java of the SimpleDbApp02 applicationhttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 21. Design & Implementation of Database Adaptershttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com
  • 22. DB Adapter Design & Implementation Steps ● For each DB table, publish String constants for the column names and integer constants for the column numbers ● Implement dbOpenHelper class by extending SQLiteOpenHelper ● The dbOpenHelper creates the tables and upgrades them ● If there is Java class X that models table T, DB Adapter class should have a method insertX(X x_object) ● Example: insertBookTitle(BookTitle bi) ● Source code is in BookDbAdptr.javahttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 23. References ● Source code is available here ● www.sqlite.org/datatype3.html ● http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.htmlhttp://www.youtube.com/vkedco www.vkedco.blogspot.com
  • 24. Feedback Bugs to vladimir dot kulyukin at gmail dot comhttp://www.youtube.com/vkedco http://www.vkedco.blogspot.com