方法一:
import com.example.day014_sqliteopenhelper.db.MySqliteHelper;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
//將數據庫的幫助類聲明出來
private MySqliteHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new MySqliteHelper(MainActivity.this);
}
/**
* helper.getWritableDatabase()
*
* helper.getReadableDatabase()
*
* 磁盤沒滿的時候 他們兩個是一樣 都可以讀寫
* 磁盤滿的時候 getWritableDatabase()打開失敗
* getReadableDatabase()
* @param v
*/
public void onClick(View v){
switch (v.getId()) {
case R.id.btn_create://創建數據庫
SQLiteDatabase db = helper.getWritableDatabase();
db.close();
break;
case R.id.btn_insert://創建數據庫
//首先獲取數據庫
SQLiteDatabase db1 = helper.getWritableDatabase();
String sql_insert = "insert into person values(1,'zhangsan',23)";
String sql_insert1 = "insert into person values(2,'lisi',24)";
String sql_insert2 = "insert into person values(3,'wangwu',25)";
for(int i=4;i<20;i++){
String sql_insert3 = "insert into person values("+i+",'zhangsan"+i+"',25)";
db1.execSQL(sql_insert3);
}
//執行
db1.execSQL(sql_insert);
db1.execSQL(sql_insert1);
db1.execSQL(sql_insert2);
db1.close();
break;
case R.id.btn_query:
//首先獲取數據庫
SQLiteDatabase db2 = helper.getWritableDatabase();
String sql_query = "select * from person";
//指定的查詢語句 cursor遊標
Cursor cursor = db2.rawQuery(sql_query, null);
//判斷下一條語句是否存在
while(cursor.moveToNext()){
// int id = cursor.getInt(0);
// String name = cursor.getString(1);
// int age = cursor.getInt(2);
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
System.out.println("==id==:"+id+"==name=="+name+"==age=="+age);
}
db2.close();
break;
case R.id.btn_update:
//首先獲取數據庫
SQLiteDatabase db3 = helper.getWritableDatabase();
String sql_update = "update person set name 'hah' where _id = 1";
db3.execSQL(sql_update);
db3.close();
break;
case R.id.btn_delete:
//首先獲取數據庫
SQLiteDatabase db4 = helper.getWritableDatabase();
String sql_delete = "delete from person where _id = 2";
db4.execSQL(sql_delete);
db4.close();
break;
default:
break;
}
}
}
方法二:
import com.example.day014_sqliteopenhelper.db.MySqliteHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class SqliteApiActivity extends Activity{
private MySqliteHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new MySqliteHelper(SqliteApiActivity.this);
}
public void onClick(View v){
switch (v.getId()) {
case R.id.btn_create:
//首先獲取數據庫
SQLiteDatabase db = helper.getWritableDatabase();
db.close();
break;
case R.id.btn_insert:
//首先獲取數據庫
SQLiteDatabase db1 = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("_id", 30);
values.put("name", "aaa");
values.put("age", 34);
db1.insert("person", null, values);
values = new ContentValues();
values.put("_id", 31);
values.put("name", "bbb");
values.put("age", 34);
/**
* 參數1:表名 參數2: 如果添加的數據是null null 參數3:添加的數據
*/
db1.insert("person", null, values);
db1.close();
break;
case R.id.btn_query:
//首先獲取數據庫
SQLiteDatabase db2 = helper.getWritableDatabase();
/**
* 參數1:表名
* 參數2:字段數組
* 參數3:查詢的條件 _id = ?
* 參數4:查詢條件的值 new String{"1"}
* 參數5:分組字段
* 參數6:在where條件後再次篩選
* 參數7:查詢排序
*/
Cursor cursor = db2.query("person", null, null, null, null, null, null);
while(cursor.moveToNext()){
// int id = cursor.getInt(0);
// String name = cursor.getString(1);
// int age = cursor.getInt(2);
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
System.out.println("==id==:"+id+"==name=="+name+"==age=="+age);
}
db2.close();
break;
case R.id.btn_update:
//首先獲取數據庫
SQLiteDatabase db3 = helper.getWritableDatabase();
ContentValues values2 = new ContentValues();
values2.put("name", "fffff");
/**
* 參數1:表名
* 參數2:要修改的值
* 參數3:where 條件語句 _id = ?
* 參數4:條件語句的值 new String[]{"1"}
*/
int num = db3.update("person", values2, "_id = ?", new String []{"1"});
if (num>0) {
Log.i("AAAAAA","修改成功");
}else{
Log.i("AAAAAA","修改失敗");
}
db3.close();
break;
case R.id.btn_delete:
//首先獲取數據庫
SQLiteDatabase db4 = helper.getWritableDatabase();
/**
* 參數1:數據庫表名
* 參數2:where 條件語句 _id = ?
* 參數3:條件語句的值 new String[]{"1"}
*/
int num1 = db4.delete("person", "_id = ?", new String[]{1+""});
if (num1>0) {
Log.i("BBBBB","刪除成功");
}else{
Log.i("BBBBB","刪除失敗");
}
db4.close();
break;
default:
break;
}
}
}