android数据库的简单例子

下面代码是简单的数据库创建:

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

    }

 

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章