Android database operations

Source: Internet
Author: User

Android database operations
SQLiteDatabase operations

SQLiteDatabase open the management tool SQLiteExpertSetup

Create a database

Automatic database creation
SQLiteOpenHelper. getReadableDatabase () or. getWriteableDatabase
Create DBOpenHelper extends SQLiteOpenHelper
{
Public DBOpenHelper (Context context)
{
Super (context, "itcast. db", null, 1); // database name. The default version number is saved in the directory. <包> /Databases/
}
Public void onCreate (SQLiteDatabase db) // It is called every time the database is created
{
// Operate SQL statements through an instance similar to SQLiteDatabase
Db.exe cSQL ("create table person (personid integer primary key autoincrement, name varchar (20 ))");
}
Public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)
{
// Called when the file version number is changed. For example, the version number is changed from 1 to 2.
Db.exe cSQL ("alter table person ADD phone VARCHAR (12) NULL ");
}
}
Person table class
Public class Person
{
Private Integer id;
Private String name;
Private String phone;
Public Integer getId ()
{
Return id;
}
Public void setId (Integer id)
{
This. id = id;
}
Public String getName ()
{
Return name;
}
Public void setName (String name)
{
This. name = name;
}
Public String getPhone ()
{
Return phone;
}
Public void setPhone (String phone)
{
This. phone = phone;
}
Public String toString ()
{
Return "Person [id =" + id + ", name =" + name + ", phone =" + phone + "]";
}

}
Business PersonService
Private DBOpenHelper dbOpenHelper;
Public PersonService (Context context ){
This. dbOpenHelper = new DBOpenHelper (context );
}
Public class PersonService {
Public void save (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
Db.exe cSQL ("insert into person (name, phone) values (?,?) ", New Object [] {person. getName (), + person. getPhone ()});
// Db. close ();
}
Public void delete (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
Db.exe cSQL ("delete from person where personid =? ", New Object [] {id });
}
Public void update (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
Db.exe cSQL ("update person set name = ?, Phone =? Where personid =? ", New Object [] {person. getName (), person. getPhone (), person. getId ()});
}
Public void find (Person person)
{
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. rawQuery ("select * from person where personid =? ", New String [] {id. toString ()}); // cursor is used to randomly access the query result set.
If (cursor. moveToFirst ())
{
Int personid = cursor. getInt (cursor. getColumnIndex ("personid "));
String name = cursor. getString (cursor. getColumnIndex ("name "));
String phone = cursor. getString (cursor. getColumnIndex ("phone "));
Return new Person (personid, name, phone );
}
Cursor. close ();
Return null;
}
/**
* Retrieve records by PAGE
* @ Param offset skips the previous number of records
* @ Param maxResult how many records are obtained per page
* @ Return
**/

Public List GetScrollData (int offset, int maxResult)
{
List Persons = new ArrayList ();
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. rawQuery ("select * from person order by personid asc limit ?,? ", New String [] {String. valueOf (offset), String. valueOf (maxResult )});
While (cursor. moveToNext () // similar to ResultSet. next ()
{
Int personid = cursor. getInt (cursor. getColumnIndex ("personid "));
String name = cursor. getString (cursor. getColumnIndex ("name "));
String phone = cursor. getString (cursor. getColumnIndex ("phone "));
Person. add (new Person (personid, name, phone ));
}
Cursor. close ();
Return persons;
}

Public long getCount ()
{
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. rawQuery ("select count (*) from person", null );
Cursor. moveToFirst ();
Long result = cursor. getLong (0 );
Cursor. close ();
Return result;
}
}
Test class:
Public class PersonServiceTest extends AndroidTestCase
{
Private static final String TAG = "PersonServiceTest ";
Public void testCreateDB () throws Exception
{
DBOpenHelper dbOpenHelper = new DBOpenHelper (getContext ());
DbOpenHelper. getWriteableDatabase ();
}
Public void testSave () throws Exception
{
PersonService service = new PersonService (this. getContext ());
For (int I = 0; I <20; I ++)
{
Person person = new Person ("zhangxx" + I, "132234324" + I );
Service. save (person );
}
}
Public void testDelete () throws Exception
{
PersonService service = new PersonService (this. getContext ());
Service. delete (21 );
}
Public void testUpdate () throws Exception
{
PersonService service = new PersonService (this. getContext ());
Person person = service. find (1 );
Person. setName ("zhangxiaoxiao ");
Service. update (person );
}
Public void testFind () throws Exception
{
PersonService service = new PersonService (this. getContext ());
Person person = service. find (1 );
Log. I (TAG, person. toString ());
}
Public void testScrollData () throws Exception
{
PersonService service = new PersonService (this. getContext ());
List Person = service. getScrollData (0, 5 );
For (Person person: persons)
{
Log. I (TAG, person. toString ());
}
}
Public void testCount () throws Exception
{
PersonService service = new PersonService (this. getContext ());
Long result = service. getCount ();
Log. I (TAG, result + "");

}
}

Other PersonService
Private DBOpenHelper dbOpenHelper;
Public PersonService (Context context ){
This. dbOpenHelper = new DBOpenHelper (context );
}
Public class PersonService {
Public void save (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
ContentValues values = new ContentValues ();
Values. put ("name", person. getName ());
Values. put ("phone", person. getPhone ());
Db. insert ("person", null, values); // NULL Value Field

// Db.exe cSQL ("insert into person (name, phone) values (?,?) ", New Object [] {person. getName (), + person. getPhone ()});
// Db. close ();
}
Public void delete (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
Db. delete ("person", "personid =? ", New String [] {id. toString ()});

// Db.exe cSQL ("delete from person where personid =? ", New Object [] {id });
}
Public void update (Person person)
{
SQLiteDatabase db = dbOpenHelper. getWriteableDatabase ();
ContentValues values = new ContentValues ();
Values. put ("name", person. getName ());
Values. put ("phone", person. getPhone ());
Db. update ("person", values, "personid =? ", New String [] {person. getId (). toString ()});
// Db.exe cSQL ("update person set name = ?, Phone =? Where personid =? ", New Object [] {person. getName (), person. getPhone (), person. getId ()});
}
Public void find (Person person)
{
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. query ("person", null, "personid =? ", New String [] {id. toString ()}, null });
If (cursor. moveToFirst ())
{
Int personid = cursor. getInt (cursor. getColumnIndex ("personid "));
String name = cursor. getString (cursor. getColumnIndex ("name "));
String phone = cursor. getString (cursor. getColumnIndex ("phone "));
Return new Person (personid, name, phone );
}
Cursor. close ();
Return null;
}
/**
* Retrieve records by PAGE
* @ Param offset skips the previous number of records
* @ Param maxResult how many records are obtained per page
* @ Return
**/

Public List GetScrollData (int offset, int maxResult)
{
List Persons = new ArrayList ();
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. query ("person", null, "personid asc", offset + "," + maxResult );
While (cursor. moveToNext () // similar to ResultSet. next ()
{
Int personid = cursor. getInt (cursor. getColumnIndex ("personid "));
String name = cursor. getString (cursor. getColumnIndex ("name "));
String phone = cursor. getString (cursor. getColumnIndex ("phone "));
Person. add (new Person (personid, name, phone ));
}
Cursor. close ();
Return persons;
}

Public long getCount ()
{
SQLiteDatabase db = dbOpenHelper. getReadableDatabase ();
Cursor cursor = db. query ("person", new String [] {"count (*)"}, null, null );
Cursor. moveToFirst ();
Long result = cursor. getLong (0 );
Cursor. close ();
Return result;
}
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.