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语句。

猜你喜欢

转载自blog.csdn.net/liyunfu233/article/details/84193694