您的位置:首页 > 数据库

SQLite数据库创建,增删查改

2016-12-12 16:07 106 查看
转载请注明出处:http://blog.csdn.net/mr_leixiansheng/article/details/53584005

相关文章:更快捷操作数据库LitePal

步骤:

1、新建自己的数据库类继承SQLiteOpenHelper并重写(设置数据库要包含的类别)

2、主程序中实现数据库的创建,和增删查改

1、创建类

packagecom.example.administrator.sqlitetest;

importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.widget.Toast;

/**
*CreatedbyAdministratoron2016/12/7.
*/

publicclassMySQLiteHelperextendsSQLiteOpenHelper{

publicfinalstaticStringDB_NAME="book.db";
publicfinalstaticStringBOOK_TABLE="book";
publicfinalstaticStringPERSON_TABLE="person";

privatestaticfinalStringCREATE_BOOK="createtable"+BOOK_TABLE+"("//相当于:"createtablebook(_idintegerprimarykeyautoincrement,nametext,ageinteger)"
+"idintegerprimarykeyautoincrement,"
+"nametext,"
+"ageinteger)";

privatestaticfinalStringCREATE_PERSON="createtable"+PERSON_TABLE+"("
+"idintegerprimarykeyautoincrement,"
+"nametext,"
+"ageinteger)";

privateContextmContext;

publicMySQLiteHelper(Contextcontext,Stringname,SQLiteDatabase.CursorFactoryfactory,intversion){
super(context,name,factory,version);
mContext=context;
}

@Override
publicvoidonCreate(SQLiteDatabasesqLiteDatabase){
sqLiteDatabase.execSQL(CREATE_BOOK);
sqLiteDatabase.execSQL(CREATE_PERSON);
Toast.makeText(mContext,"CREATEOK",Toast.LENGTH_SHORT).show();
}

@Override
publicvoidonUpgrade(SQLiteDatabasesqLiteDatabase,inti,inti1){

}
}


2、实现对数据库的操作

packagecom.example.administrator.sqlite;

importandroid.content.ContentValues;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Toast;

importstaticcom.example.administrator.sqlitetest.MySQLiteHelper.BOOK_TABLE;
importstaticcom.example.administrator.sqlitetest.MySQLiteHelper.DB_NAME;

importjava.util.zip.CRC32;

publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{

privateMyDatabaseHelperdbHelper;
//新建,增删改查
privateButtoncreate,insert,delete,change,query;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建book.db数据库对象,版本号1
dbHelper=newMyDatabaseHelper(this,DB_NAME,null,1);
//获取元素ID
create=(Button)findViewById(R.id.create);
insert=(Button)findViewById(R.id.insert);
delete=(Button)findViewById(R.id.delete);
change=(Button)findViewById(R.id.change);
query=(Button)findViewById(R.id.query);

//设置按键点击监听
create.setOnClickListener(this);
insert.setOnClickListener(this);
delete.setOnClickListener(this);
change.setOnClickListener(this);
query.setOnClickListener(this);

}

@Override
publicvoidonClick(Viewview){
switch(view.getId()){
caseR.id.create:
dbHelper.getWritableDatabase();
break;
caseR.id.insert:
insertData();
Toast.makeText(this,"添加成功",Toast.LENGTH_SHORT).show();
break;
caseR.id.delete:
deletData();
Toast.makeText(this,"删除成功",Toast.LENGTH_SHORT).show();
break;
caseR.id.change:
changeDate();
Toast.makeText(this,"更改成功",Toast.LENGTH_SHORT).show();
break;
caseR.id.query:
queryData();
Toast.makeText(this,"浏览",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}

privatevoidqueryData(){
SQLiteDatabasedb=dbHelper.getWritableDatabase();
//遍历整个表格Cursor:光标
Cursorcursor=db.query(BOOK_TABLE,null,null,null,null,null,null);

//遍历符合条件的行
//Cursorcursor=db.rawQuery("select*frombookwherename='小明'",null);

//遍历
while(cursor.moveToNext()){
Stringname=cursor.getString(cursor.getColumnIndex("name"));
intage=cursor.getInt(cursor.getColumnIndex("age"));
intid=cursor.getInt(cursor.getColumnIndex("id"));

//防止空指针异常
if(name==null){
Log.i("MainActivity","id:"+id+",name:"+"null"+",age:"+String.valueOf(age));
}else{
Log.i("MainActivity","id:"+id+",name:"+name+",age:"+String.valueOf(age));
}
}
cursor.close();
}

privatevoiddeleteData(){
SQLiteDatabasedb=dbHelper.getWritableDatabase();
db.delete("book","name=?",newString[]{"小明"});
}

privatevoidchangeDate(){
SQLiteDatabasedb=dbHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();

values.put("name","小黄");

db.update("book",values,"name=?",newString[]{"小红"});
}

privatevoidinsertData(){
SQLiteDatabasedb=dbHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();

values.put("name","小明");
values.put("age",5);
db.insert("book",null,values);

values.clear();

values.put("name","小红");
values.put("age",10);
db.insert("book",null,values);

values.clear();

values.put("name","老王");
db.insert("book",null,values);
values.clear();

values.put("age",100);
db.insert("book",null,values);
}
}

Cursor介绍:

cursor.isClosed();//如果为TRUE表示该游标已关闭
cursor.close();//关闭游标,且释放资源
cursor.getColumnCount();//返回所有列的总数
cursor.getColumnNames();//返回一个字符串数组的列名,即将列名全部返回到一个字符串数组中
cursor.getCount();//返回Cursor中的行数
cursor.moveToFirst();//移动光标到第一行
cursor.moveToLast();//移动光标到最后一行
cursor.moveToNext();//移动光标到下一行
cursor.moveToPrevious();//移动光标到上一行
intcolumnIndex=0;
intposition=0;
cursor.getColumnName(columnIndex);//从给定的索引返回列名
cursor.moveToPosition(position);//移动光标到给定位置



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: