Android Programming The Big Nerd Ranch Guide by Bill Phillips, Chris Stewart, Kristin Marsicano (z-lib.org)

(gtxtreme123) #1

For the More Curious: More Databases


This is also a good time to test that calls to updateCrime(Crime) in CrimeFragment work, too. Press a
Crime and edit its title inside CrimePagerActivity. Press the Back button and make sure that the new
title is reflected in the list.


For the More Curious: More Databases


For the sake of space and simplicity, we do not go into all the details you might see in a professional
app’s application database here. There is a reason people resort to tools like ORMs: This stuff can get
complicated.


For a more substantial application, you will want to look into adding the following to your database
and your description of it:



  • Data types on columns. Technically, SQLite does not have typed columns, so you can get by
    without them. Giving SQLite hints is kinder, though.

  • Indexes. Queries against columns with appropriate indexes are much faster than columns without
    them.

  • Foreign keys. Your database here only has one table, but associated data would need foreign key
    constraints, too.


There are also deeper performance considerations to dive into. Your app creates a new list of all-new
Crime objects every time you query the database. A high-performance app would optimize this by
recycling instances of Crime or by treating them like an in-memory object store (like you did before
this chapter). That ends up being quite a bit more code, so this is another problem ORMs often try to
solve.

Free download pdf