Android中SQLite的使用

来源:互联网 发布:php用逗号拼接字符串 编辑:程序博客网 时间:2024/06/06 00:16
QLitepackage com.duoguo.androidActivity:SQLiteActivitystrings.xml <?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">SQLite</string><string name="careteDataBase">创建数据库</string><string name="updateDataBase">更新数据库</string><string name="deleteDataBase">删除数据库</string><string name="createTable">创建数据表</string><string name="deleteTable">删除数据表</string><string name="insertData">增加数据</string><string name="updateData">更新数据</string><string name="selectData">查询数据</string><string name="deleteData">删除数据</string></resources>main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- 创建数据库 --><Button android:id="@+id/careteDataBaseButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/careteDataBase" /><!-- 更新数据库 --><Button android:id="@+id/updateDataBaseButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/updateDataBase" /><!-- 删除数据库 --><Button android:id="@+id/deleteDataBaseButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/deleteDataBase" /><!-- 创建数据表 --><Button android:id="@+id/createTableButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/createTable" /><!-- 删除数据表 --><Button android:id="@+id/deleteTableButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/deleteTable" /><!-- 增加数据 --><Button android:id="@+id/insertDataButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/insertData" /><!-- 更新数据 --><Button android:id="@+id/updateDataButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/updateData" /><!-- 查询操作 --><Button android:id="@+id/selectDataButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/selectData" /><!-- 删除操作 --><Button android:id="@+id/deleteDataButtonId"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_margin="10px" android:layout_gravity="center"  android:gravity="center" android:text="@string/deleteData" /></LinearLayout>SQLiteActivity.javapackage com.duoguo.android;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import com.duoguo.sql.DataBaseHelpr;public class SQLiteActivity extends Activity {// 声明Button控件private Button createDataBaseButton;private Button updateDataBaseButton;private Button deleteDataBaseButton;private Button createTableButton;private Button deleteTableButton;private Button insertDataButton;private Button updataDataButton;private Button selectDataButton;private Button deleteDataButton;@Overridepublic void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  // 通过控件的ID获取Button控件对象  createDataBaseButton = (Button) findViewById(R.id.careteDataBaseButtonId);  updateDataBaseButton = (Button) findViewById(R.id.updateDataBaseButtonId);  deleteDataBaseButton = (Button) findViewById(R.id.deleteDataBaseButtonId);  createTableButton = (Button) findViewById(R.id.createTableButtonId);  deleteTableButton = (Button) findViewById(R.id.deleteTableButtonId);  insertDataButton = (Button) findViewById(R.id.insertDataButtonId);  updataDataButton = (Button) findViewById(R.id.updateDataButtonId);  selectDataButton = (Button) findViewById(R.id.selectDataButtonId);  deleteDataButton = (Button) findViewById(R.id.deleteDataButtonId);  createDataBaseButton    .setOnClickListener(new CreateDataBaseClickListener());// 为创建数据库添加单击事件监听器  updateDataBaseButton    .setOnClickListener(new UpdateDataBaseClickListener());// 为更新数据库添加单击事件监听器  deleteDataBaseButton    .setOnClickListener(new DeleteDataBaseClickListener());// 为删除数据库添加单击事件监听器  createTableButton.setOnClickListener(new CreateTableClickListener());// 为创建数据表添加单击事件监听器  deleteTableButton.setOnClickListener(new DeleteTableClickListener());// 为删除数据表添加单击事件监听器  insertDataButton.setOnClickListener(new InsertDataClickListener());// 为增加数据添加单击事件监听器  updataDataButton.setOnClickListener(new UpdateDataClickListener());// 为更新数据添加单击事件监听器  selectDataButton.setOnClickListener(new SelectDataClickListener());// 为查询数据添加单击事件监听器  deleteDataButton.setOnClickListener(new DeleteDataClickListener());// 为删除数据添加单击事件监听器}// 创建数据库监听器class CreateDataBaseClickListener implements OnClickListener {  @Override  public void onClick(View v) {   DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(     SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象   dataBaseHelpr.getReadableDatabase();// 创建数据库  }}// 更新数据库监听器class UpdateDataBaseClickListener implements OnClickListener {  @Override  public void onClick(View v) {   DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(     SQLiteActivity.this, "user_db", 2);// 实例化DataBaseHelpr对象   dataBaseHelpr.getReadableDatabase();// 更新数据库  }}// 删除数据库监听器class DeleteDataBaseClickListener implements OnClickListener {  @Override  public void onClick(View v) {   System.out.println("delete database");   boolean success = deleteDatabase("user_db");   if (success) {    System.out.println("delete successfully");   } else {    System.out.println("delete unsuccessfully");   }  }}// 创建数据表监听器class CreateTableClickListener implements OnClickListener {  @Override  public void onClick(View v) {   System.out.println("create table");   DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(     SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象   SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象   sqLiteDatabase     .execSQL("create table user(id int,name varchar(20))");// 创建数据表  }}// 删除数据表监听器class DeleteTableClickListener implements OnClickListener {  @Override  public void onClick(View v) {   System.out.println("delete table");   DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(     SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象   SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象   sqLiteDatabase.execSQL("drop table if exists user");// 删除数据表  }}// 增加数据监听器class InsertDataClickListener implements OnClickListener {  @Override  public void onClick(View v) {   System.out.println("insert data");   ContentValues contentValues = new ContentValues();// 实例化ContentValues对象   // 向数据表中插入相应的数据,其中key是列名,value是列名对应的值   contentValues.put("id", 1);   contentValues.put("name", "shyboy");   DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(     SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象   SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象,因要插入相应的数据,故获取可写入的   sqLiteDatabase.insert("user", null, contentValues);// 增加数据  }}// 更新数据监听器class UpdateDataClickListener implements OnClickListener { @Override public void onClick(View v) {  System.out.println("update data");  DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(    SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象  SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象,因要更新相应的数据,故获取可写入的  ContentValues contentValues = new ContentValues();// 实例化ContentValues对象  contentValues.put("name", "playboy");  sqLiteDatabase.update("user", contentValues, "id=?",    new String[] { "1" });// 更新数据,其中参数一为表名,参数二为修改的值,参数三为修改的条件,参数四位修改的条件值 }}// 查询数据监听器class SelectDataClickListener implements OnClickListener { @Override public void onClick(View v) {  System.out.println("select data");  DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(    SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象  SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getReadableDatabase();// 获取SQLiteDatabase对象  Cursor cursor = sqLiteDatabase.query("user", new String[] { "id",    "name" }, "id=?", new String[] { "1" }, null, null, null);// 查询数据  while (cursor.moveToNext()) {   int id = cursor.getInt(cursor.getColumnIndex("id"));// 获取编号   System.out.println("id:" + id);   String name = cursor.getString(cursor.getColumnIndex("name"));// 获取名称   System.out.println("name:" + name);  } }}// 删除数据监听器class DeleteDataClickListener implements OnClickListener { @Override public void onClick(View v) {  System.out.println("delete data");  DataBaseHelpr dataBaseHelpr = new DataBaseHelpr(    SQLiteActivity.this, "user_db");// 实例化DataBaseHelpr对象  SQLiteDatabase sqLiteDatabase = dataBaseHelpr.getWritableDatabase();// 获取SQLiteDatabase对象  sqLiteDatabase.delete("user", "id=?", new String[] { "1" });// 删除数据 }}}在项目上增加一个新类   NEW--CLASSDataBaseHelprpackage com.duoguo.sqlDataBaseHelpr.javapackage com.duoguo.sql;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DataBaseHelpr extends SQLiteOpenHelper {private static final int VERSION = 1;// 声明数据库的版本为1public DataBaseHelpr(Context context, String name, CursorFactory factory,   int version) {  super(context, name, factory, version);// 继承父类的构造方法}public DataBaseHelpr(Context context, String name, int version) {  this(context, name, null, version);// 调用第一构造方法}public DataBaseHelpr(Context context, String name) {  this(context, name, VERSION);// 调用第二构造方法}@Overridepublic void onCreate(SQLiteDatabase arg0) {  System.out.println("create a database");  arg0.execSQL("create table user(id int,name varchar(20))");// 执行sql语句}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  System.out.println("update a database");}}