Android Database Operations

Source: Internet
Author: User

Sqlitedatabase Database Operations

Sqlitedatabase Open Administrative Tools Sqliteexpertsetup

Create a database

Automatically create DATABASE features
Sqliteopenhelper. Getreadabledatabase () or. getwriteabledatabase
Create Dbopenhelper extends Sqliteopenhelper
{
Public Dbopenhelper (Context context)
{
Super (context, "itcast.db", null,1); Database name, version number default save Directory < package >/databases/
}
public void OnCreate (Sqlitedatabase db)//is called when the database is created every time
{
Manipulating SQL statements through instances of class Sqlitedatabase
Db.execsql ("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, as if the version changed from 1 to 2
Db.execsql ("ALTER TABLE person ADD phone VARCHAR () 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.execsql ("INSERT into person (Name,phone) VALUES (?,?)", New Object[]{person.getname (), +person.getphone ()});
Db.close ();
}
public void Delete (person person)
{
Sqlitedatabase db=dbopenhelper.getwriteabledatabase ();
Db.execsql ("Delete from person where personid=?", New Object[]{id});
}
public void update (person person)
{
Sqlitedatabase db=dbopenhelper.getwriteabledatabase ();
Db.execsql ("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;
}
/**
* Paging to get records
* @param offset skips the previous number of records
* @param maxresult how many records each page gets
* @return
**/

Public list<person> getscrolldata (int offset,int maxresult)
{
list<person> persons = new arraylist<person> ();
Sqlitedatabase db=dbopenhelper.getreadabledatabase ();
Cursor cursor= db.rawquery ("SELECT * from Person ORDER by PersonID ASC limit?,?", New string[]{string.valueof (offset), St Ring.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> Person=service.getscrolldata (0,5);
for (person person:p ersons)
{
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.execsql ("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.execsql ("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.execsql ("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,null,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;
}
/**
* Paging to get records
* @param offset skips the previous number of records
* @param maxresult how many records each page gets
* @return
**/

Public list<person> getscrolldata (int offset,int maxresult)
{
list<person> persons = new arraylist<person> ();
Sqlitedatabase db=dbopenhelper.getreadabledatabase ();
Cursor cursor=db.query ("person", Null,null,null,null,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,null,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.