Android使用谷歌封裝好的api進行增刪改查
阿新 • • 發佈:2018-11-19
本博文是對上一篇使用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語句。