1. 程式人生 > >Android使用谷歌封裝好的api進行增刪改查

Android使用谷歌封裝好的api進行增刪改查

本博文是對上一篇使用sql語句進行增刪改查的修改,上一篇地址:
https://blog.csdn.net/liyunfu233/article/details/84193577

本篇主介面程式碼:

package com.example.createsqlitedemo02;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    MyOpenHelper myOpenHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myOpenHelper=new MyOpenHelper(getApplicationContext());
        //開啟或者建立資料庫  如果是第一次就是建立
        //SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase();

        //開啟或建立資料庫 如果是第一次就是建立  如果磁碟滿了只返回一個可讀的
        SQLiteDatabase sqLiteDatabase=myOpenHelper.getReadableDatabase();


    }

    //點選按鈕增加一條記錄
    public void click1(View view) {
        //[1]獲取資料庫物件
        SQLiteDatabase db=myOpenHelper.getReadableDatabase();
        //[2]執行增加一條的sql語句
        //db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"張三","138888"});

        /**
         * table 表名
         * contentvalues 內部封裝了一個map key:對應列的名字 value對應的值
         *
         */
        ContentValues values=new ContentValues();
        values.put("name","王五");
        values.put("phone","110");

        //返回值代表插入新行的id
        long insert=db.insert("info",null,values);


        //[3]資料庫用完需要關閉
        db.close();


        if (insert>0){
            Toast.makeText(getApplicationContext(),"新增成功",Toast.LENGTH_SHORT).show();
        }else {
            Toast.makeText(getApplicationContext(),"新增失敗",Toast.LENGTH_SHORT).show();
        }

    }


    //刪除
    public void click2(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        //db.execSQL("delete from info where name=?",new Object[]{"張三"});

        //返回值代表影響的行數
        int delete=db.delete("info","name=?",new String[]{"王五"});


        db.close();

        Toast.makeText(getApplicationContext(),"刪除了"+delete+"行",Toast.LENGTH_SHORT).show();

    }

    //更新
    public void click3(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        //db.execSQL("update info set phone=? where name=?",new Object[]{"139999"});

        ContentValues values=new ContentValues();
        values.put("phone","145");
        int update=db.update("info",values,"name=?",new String[]{"王五"});


        db.close();
        Toast.makeText(getApplicationContext(),"更新了"+update+"行",Toast.LENGTH_SHORT).show();

    }

    //查詢
    public void click4(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        //colums 代表你要查詢的列
        Cursor cursor=db.query("info",new String[]{"phone"},"name=?",new String[]{"王五"},null,null,null);
        //Cursor cursor=db.rawQuery("select * from info",null);

        if (cursor!=null&&cursor.getCount()>0){
            while (cursor.moveToNext()){
                //columindex代表列的索引
                String phone=cursor.getString(0);

                System.out.println("phone"+phone);


            }
        }
    }
}

下面是純使用sql語句進行的增刪改查

package com.example.a15114.createsqlitedemo;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
    MyOpenHelper myOpenHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myOpenHelper=new MyOpenHelper(getApplicationContext());
        //開啟或者建立資料庫  如果是第一次就是建立
        //SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase();

        //開啟或建立資料庫 如果是第一次就是建立  如果磁碟滿了只返回一個可讀的
        SQLiteDatabase sqLiteDatabase=myOpenHelper.getReadableDatabase();


    }

    //點選按鈕增加一條記錄
    public void click1(View view) {
        //[1]獲取資料庫物件
        SQLiteDatabase db=myOpenHelper.getReadableDatabase();
        //[2]執行增加一條的sql語句
        db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"張三","138888"});
        //[3]資料庫用完需要關閉
        db.close();
    }


    //刪除
    public void click2(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        db.execSQL("delete from info where name=?",new Object[]{"張三"});

        db.close();
    }

    //更新
    public void click3(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        db.execSQL("update info set phone=? where name=?",new Object[]{"139999"});

        db.close();

    }

    //查詢
    public void click4(View view) {

        SQLiteDatabase db=myOpenHelper.getReadableDatabase();

        Cursor cursor=db.rawQuery("select * from info",null);
        if (cursor!=null&&cursor.getCount()>0){
            while (cursor.moveToNext()){
                //columindex代表列的索引
                String name=cursor.getString(1);
                String phone=cursor.getString(2);
                System.out.println("name:"+name+"---------"+phone);
            }
        }
    }
}

可以看出在對一個數據庫進行操作時谷歌api更好用,他封裝了 insert 新增方法 delete刪除方法
update更新方法 以及 query 查詢方法

但是對多個數據庫進行操作時 純sql語句 更好使用,他可以隨意修改sql語句。