SQLite
可以定一个接口,用来存放数据库的名称以及各个字段名: publicinterfaceConstantsextendsBaseColumns{ publicstaticfinalStringTABLE_NAME="student"; publicstaticfinalStringSID="sid"; publicstaticfinalStringNAME="name"; publicstaticfinalStringSEX="sex"; } 接下来创建一个帮助类,用来表示数据库本身,它负责管理数据库的创建和版本,必须提供一个构造函数并重写两个方法: //静态导入 importstaticcom.shutao.SQLiteTest.Constants.NAME; importstaticcom.shutao.SQLiteTest.Constants.SEX; importstaticcom.shutao.SQLiteTest.Constants.SID; importstaticcom.shutao.SQLiteTest.Constants.TABLE_NAME; importandroid.content.Context; importandroid.database.sqlite.SQLiteDatabase; importandroid.database.sqlite.SQLiteOpenHelper;
publicclassStudentDataextendsSQLiteOpenHelper{ privatestaticfinalStringDATABASE_NAME="testSQLite"; privatestaticfinalintDATABASE_VERSION=1;
publicStudentData(Contextcontext){ super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override publicvoidonCreate(SQLiteDatabasedb){ db.execSQL("CREATETABLE"+TABLE_NAME+"("+SID +"VARCHARPRIMARYKEY,"+NAME+"VARCHARNOTNULL,"+SEX +"VARCHARNOTNULL);"); } @Override //当数据库检测到你在引用一个旧数据库时(根据版号判断),它将调用onUpgrate()方法。 publicvoidonUpgrade(SQLiteDatabasedb,intarg1,intarg2){ db.execSQL("DROPTABLEIFEXISTS"+TABLE_NAME); onCreate(db); }
} 接下来编写数据库的操作: publicclassSQLiteextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateStudentDatasd; privateStringcolumns[]={SID,NAME,SEX}; privateStringorderBy=SID+"DESC";
@Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ sd=newStudentData(this); //程序一旦运行一次以后变存在了数据库中了,再次运行由于主键的冲突会使程序出现错误 /* *addStudent("07141218","林树涛","M");addStudent("07141201","曹育省", *"F");addStudent("07141205","范小桂","M");addStudent("07141217", *"林坚松","M"); */ Cursorcursor=getStudents(); showStudents(cursor);
}finally{ sd.close(); } }
privatevoidaddStudent(Stringsid,Stringname,Stringsex){ //获得StudetData数据库的一个读/写句柄 SQLiteDatabasedb=sd.getWritableDatabase(); ContentValuesvalues=newContentValues(); values.put(SID,sid); values.put(NAME,name); values.put(SEX,sex); db.insertOrThrow(TABLE_NAME,values); }
privateCursorgetStudents(){ SQLiteDatabasedb=sd.getReadableDatabase(); Cursorcursor=db.query(TABLE_NAME,columns, orderBy); this.startManagingCursor(cursor); returncursor; }
privatevoidshowStudents(Cursorcursor){ StringBuilderresults=newStringBuilder("Allstudents:/n"); while(cursor.moveToNext()){ Stringsid=cursor.getString(0); Stringname=cursor.getString(1); Stringsex=cursor.getString(2); results.append(sid+""); results.append(name+""); results.append(sex+"/n"); } //显示 TextViewview=(TextView)this.findViewById(R.id.result_text); view.setText(results); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |