下面代碼是簡單的數據庫創建:
package com.example.sqllite4;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper {
//數據名稱,
private static final String DBNAME = "UserDataBase";
// 數據庫版本
private static final int version = 1;
// 構造方法參數,
public MyOpenHelper(Context context) {
super(context, DBNAME, null, version);
}
// 數據庫創建表的名子。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE TestUsers (id integer primary key autoincrement,name varchar(50),sex varchar(50))");
}
// 更新方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("EROP TABLE IF EXISTS TestUsers");
onCreate(db);
}
}
下面是增刪查改的Activity
package com.example.sqllite4;
import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;
public class SQLiteTest4 extends Activity {
Button btnInsert;
Button btnDelete;
Button btnUpdate;
Button btnSelect;
EditText etName;
EditText etSex;
TextView tvShowContent;
MyOpenHelper OpenHelper;
SQLiteDatabase db =null;
View.OnClickListener btnInsertListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
InsertTb();
}
};
View.OnClickListener btnDeleteListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DeleteTb();
}
};
View.OnClickListener btnUpdateListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
UpdateTb();
}
};
View.OnClickListener btnSelectListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Select();
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OpenHelper =new MyOpenHelper(this);
btnInsert = (Button) findViewById(R.id.main_btn_insert);
btnDelete = (Button) findViewById(R.id.main_btn_delete);
btnUpdate = (Button) findViewById(R.id.main_btn_update);
btnSelect = (Button) findViewById(R.id.main_btn_select);
tvShowContent = (TextView) findViewById(R.id.main_tv_showContent);
etName = (EditText) findViewById(R.id.main_et_name);
etSex = (EditText) findViewById(R.id.main_et_sex);
btnInsert.setOnClickListener(btnInsertListener);
btnDelete.setOnClickListener(btnDeleteListener);
btnUpdate.setOnClickListener(btnUpdateListener);
btnSelect.setOnClickListener(btnSelectListener);
}
/**
* 插入數據
*/
public void InsertTb(){
//聲明一個int型變量賦值爲-1
int flag =-1;
//創建或打開一個數據庫
db = OpenHelper.getWritableDatabase();
//獲取寫入到EditText的姓名
String strName = etName.getText().toString();
//獲取寫入到EditText的性別
String strSex = etSex.getText().toString();
//寫數據庫的插入語句並執行sql語句,插入成功給予提示,失敗也同樣給予提示
String sql ="insert into TestUsers (name,sex) values ('"+strName+"','"+strSex+"')";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "insert failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "插入失敗!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "插入成功!", Toast.LENGTH_SHORT).show();
}
}
/**
* 刪除表中的數據
*/
public void DeleteTb(){
//聲明一個int型變量賦值爲-1
int flag =-1;
//創建或打開一個數據庫
db = OpenHelper.getWritableDatabase();
//刪除TestUsers表中id爲1的數據並執行SQL,刪除成功給予提示,刪除失敗也同樣給予提示
String sql ="delete from TestUsers where id=1";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "delete failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "刪除失敗!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "刪除成功!", Toast.LENGTH_SHORT).show();
}
}
public void UpdateTb() {
//聲明一個int型變量賦值爲-1
int flag =-1;
//創建或打開一個數據庫
db = OpenHelper.getWritableDatabase();
//獲取寫入到EditText的姓名
String Name = etName.getText().toString();
//根據姓名更新TestUsers表中的姓名與性別並執行SQL,更新成功給予提示,刪除失敗也同樣給予提示
String sql ="Update TestUsers set name='abc',sex='men' where name = '"+Name+"'";
try {
db.execSQL(sql);
} catch (SQLException e) {
Log.i("err", "update failed");
flag =0;
Toast.makeText(SQLiteTest4.this, "更新失敗!", Toast.LENGTH_SHORT).show();
}
db.close();
if (flag ==-1){
Toast.makeText(SQLiteTest4.this, "更新成功!", Toast.LENGTH_SHORT).show();
}
}
//查詢所有
public void Select(){
//打開或者創建數據庫
db = OpenHelper.getReadableDatabase();
//查詢所有的姓名與性別返回的值用遊標保存
Cursor cursor=db.query("TestUsers", new String[]{"name","sex"}, null,null, null, null, null);
//得到總條數
int count = cursor.getCount();
//聲明兩個String數組來保存性別與性別
String [] Name =new String[count];
String [] Sex =new String[count];
//聲明一個初始變量i爲0
int i =0;
//當有數據的時候獲取到name列與sex列的總數,從遊標第一個到最後一個進行移動獲取數據
if (cursor.getCount() >0){
int nameIndex = cursor.getColumnIndex("name");
int sexIndex = cursor.getColumnIndex("sex");
for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){
Name[i] = cursor.getString(nameIndex);
Sex[i]=cursor.getString(sexIndex);
i++;
}
}
//通過另一個變量j對上面得到的兩個數組進行分別的遍歷
for(int j =0; j < count; j++){
tvShowContent.append(Name[j]);
tvShowContent.append(" : ");
tvShowContent.append(Sex[j]);
tvShowContent.append("\n");
}
}
}