Android--SQLite(增,删,改,查)操作实例代码
需要5个类:
1.实体类:Person.java
2.抽象类:SQLOperate.java(封装了对数据库的操作)
3.助手类:DBOpenHelper.java(继承SQLiteOpenHelper)
4.实现类:SQLOperateImpl.java(实现抽象类SQLOperate.java)
5.测试类:Test.java(继承AndroidTestCase)
1.Person.java
packagecom.mrzhu.sqltite;
publicclassPerson{
privateint_id;
privateStringname;
publicintgetId(){
return_id;
}
publicvoidsetId(int_id){
this._id=_id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
@Override
publicStringtoString(){
return"Person[id="+_id+",name="+name+"]";
}
publicPerson(){
super();
}
publicPerson(int_id,Stringname){
super();
this._id=_id;
this.name=name;
}
}
2.SQLOperate.java
packagecom.mrzhu.sqltite;
importjava.util.List;
/**
*增删改查
*@authorZLQ
*
*/
publicinterfaceSQLOperate{
publicvoidadd(Personp);
publicvoiddelete(intid);
publicvoidupdata(Personp);
publicList<Person>find();
publicPersonfindById(intid);
}
3.DBOpenHelper.java
importandroid.content.Context; /** privatestaticfinalintVERSION=1;//版本 //数据库第一次被创建时调用 //版本升级时被调用 } } 4.SQLOperateImpl.java importjava.util.ArrayList; importandroid.content.ContentValues; publicclassSQLOperateImplimplementsSQLOperate{ privateDBOpneHelperdbOpenHelper; /** /** /** /** /** 5.Test.java 在AndroidManifest.xml中的<application></application>外添加 (targetPackage是当前工程的包名) <instrumentation android:targetPackage="com.mrzhu.sqltite" android:name="android.test.InstrumentationTestRunner"> </instrumentation> 在<application></application>中添加<uses-libraryandroid:name="android.test.runner"/> importjava.util.List; importandroid.test.AndroidTestCase; publicclassTestextendsAndroidTestCase{
packagecom.mrzhu.sqltite;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
*助手类
*@authorZLQ
*
*/
publicclassDBOpneHelperextendsSQLiteOpenHelper{
privatestaticfinalStringDB_NAME="people.db";//数据库名
publicstaticfinalStringSTUDENT_TABLE="student";//表名
publicstaticfinalString_ID="_id";//表中的列名
publicstaticfinalStringNAME="name";//表中的列名
//创建数据库语句,STUDENT_TABLE,_ID,NAME的前后都要加空格
privatestaticfinalStringCREATE_TABLE="createtable"+STUDENT_TABLE+"("+_ID+"Integerprimarykeyautoincrement,"+NAME+"text)";
publicDBOpneHelper(Contextcontext){
super(context,DB_NAME,null,VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
db.execSQL(CREATE_TABLE);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
packagecom.mrzhu.sqltite;
importjava.util.List;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
publicSQLOperateImpl(Contextcontext){
dbOpenHelper=newDBOpneHelper(context);
}
*增,用insert向数据库中插入数据
*/
publicvoidadd(Personp){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put(DBOpneHelper._ID,p.getId());
values.put(DBOpneHelper.NAME,p.getName());
db.insert(DBOpneHelper.STUDENT_TABLE,null,values);
}
*删,通过id删除数据
*/
publicvoiddelete(intid){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
db.delete(DBOpneHelper.STUDENT_TABLE,DBOpneHelper._ID+"=?",newString[]{String.valueOf(id)});
}
*改,修改指定id的数据
*/
publicvoidupdata(Personp){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put(DBOpneHelper._ID,p.getId());
values.put(DBOpneHelper.NAME,p.getName());
db.update(DBOpneHelper.STUDENT_TABLE,values,DBOpneHelper._ID+"=?",newString[]{String.valueOf(p.getId())});
}
*查,查询表中所有的数据
*/
publicList<Person>find(){
List<Person>persons=null;
SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();
Cursorcursor=db.query(DBOpneHelper.STUDENT_TABLE,null,null,null,null,null,null);
if(cursor!=null){
persons=newArrayList<Person>();
while(cursor.moveToNext()){
Personperson=newPerson();
int_id=cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));
Stringname=cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));
person.setId(_id);
person.setName(name);
persons.add(person);
}
}
returnpersons;
}
*查询指定id的数据
*/
publicPersonfindById(intid){
SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();
Cursorcursor=db.query(DBOpneHelper.STUDENT_TABLE,null,DBOpneHelper._ID+"=?",newString[]{String.valueOf(id)},null,null,null);
Personperson=null;
if(cursor!=null&&cursor.moveToFirst()){
person=newPerson();
int_id=cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));
Stringname=cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));
person.setId(_id);
person.setName(name);
}
returnperson;
}
}
packagecom.mrzhu.sqltite;
importandroid.util.Log;
publicvoidtestAdd()throwsException{
SQLOperateImpltest=newSQLOperateImpl(getContext());
Personperson=newPerson(2,"Peter");
test.add(person);
}
publicvoidtestDelete()throwsException{
SQLOperateImpltest=newSQLOperateImpl(getContext());
test.delete(1);
}
publicvoidtestUpdata()throwsException{
SQLOperateImpltest=newSQLOperateImpl(getContext());
Personperson=newPerson(1,"Tom");
test.updata(person);
}
publicvoidtestFind()throwsException{
SQLOperateImpltest=newSQLOperateImpl(getContext());
List<Person>persons=test.find();
for(Personperson:persons){
Log.i("System.out",person.toString());
}
}
publicvoidtestFindById()throwsException{
SQLOperateImpltest=newSQLOperateImpl(getContext());
Personperson=test.findById(2);
Log.i("System.out",person.toString());
}
}相关文章