加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite

发布时间:2020-12-13 00:22:31 所属栏目:百科 来源:网络整理
导读:可以定一个接口,用来存放数据库的名称以及各个字段名: public interface Constants extends BaseColumns{ public static final String TABLE_NAME = "student" ; public static final String SID = "sid" ; public static final String NAME = "name" ; pu

可以定一个接口,用来存放数据库的名称以及各个字段名:

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);

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读