安卓資料庫的基本操作

來源:互聯網
上載者:User

標籤:

package com.hanqi.cunchu;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class shujuku extends AppCompatActivity {    EditText name,id,sex,age;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.shujuku);        id=(EditText)findViewById(R.id.i1);        name=(EditText)findViewById(R.id.i2);        sex=(EditText)findViewById(R.id.i3);        age=(EditText)findViewById(R.id.i4);    }    //初始化資料庫    public  void  b1(View view){        //使用工具類得到資料庫物件        //test表名        mdb mdb = new mdb("test",1);        //得到串連        SQLiteDatabase sqLiteDatabase= mdb.getWritableDatabase();        //關閉串連        sqLiteDatabase.close();    }    public  void  b2(View view){        //使用工具類得到資料庫物件        mdb mdb = new mdb("test",2);        //得到串連        SQLiteDatabase sqLiteDatabase= mdb.getWritableDatabase();        //關閉串連        sqLiteDatabase.close();    }    public  void  b3(View view){        //串連資料庫,得到資料庫連接對象        //注意版本號碼        SQLiteDatabase sqLiteDatabase=new mdb("test",2).getWritableDatabase();        //得到資料        ContentValues cv=new ContentValues();        cv.put("_id", id.getText().toString());        cv.put("name",name.getText().toString());        cv.put("sex", sex.getText().toString());        cv.put("age",age.getText().toString());        //調用 insert(),插入資料        //添加表名。不是檔案名稱        long l=sqLiteDatabase.insert("NewTable",null,cv);        Toast.makeText(shujuku.this, "增加的資料條數"+l, Toast.LENGTH_SHORT).show();        //關閉串連        sqLiteDatabase.close();    }    public  void  b4(View view){        //串連資料庫,得到資料庫連接對象        SQLiteDatabase sqLiteDatabase=new mdb("test",2).getWritableDatabase();        //搜尋全表欄位,null代表搜尋條件       Cursor c= sqLiteDatabase.query("NewTable", null, null, null, null, null, null);        //遍曆結果        while (c.moveToNext()){            //讀取資料            //getstring(表中的排列順序,從0開始,類似索引)            String st=c.getLong(c.getColumnIndex("_id"))+"name="+c.getString(1)+"sex="+c.getString(2)                    +"age="+c.getString(3);            String st2=c.getLong(c.getColumnIndex("_id"))+"name="+c.getString(0);            Log.e("tag",st);            Log.e("tag",st2);        }        //關閉串連        sqLiteDatabase.close();        c.close();    }    //內部類    class  mdb extends SQLiteOpenHelper{        //(要建立的檔案名稱,版本號碼)        public  mdb(String dbname,int ver){            //顯示調用父類的構造方法            //必須在第一行            //(content,資料庫名,預設值,版本號碼)            super(shujuku.this,dbname,null,ver);        }        //建立初始化資料庫        @Override        public void onCreate(SQLiteDatabase db) {            //1.執行建立資料的語句            String sql="CREATE TABLE  \"main\".\"NewTable\" (\"_id\"  INTEGER NOT NULL," +                    "\"name\"  varchar(20),\"sex\"  char(1)," +                    "\"age\"  INTEGER,PRIMARY KEY (\"_id\")\n" +                    ")\n" +                    ";";            //void execSQL(sql語句);            //通常是建表,修改或刪除表等語句            db.execSQL(sql);            Log.e("tag","建立完成");            //2.執行初始化資料的語句,insert語句            // ContentValues 放入值的方法            ContentValues cv=new ContentValues();            cv.put("name","張三");            cv.put("sex","男");            cv.put("age",15);            //執行插入            //表名,欄位的預設值,要插入的值           long l= db.insert("NewTable",null,cv);            //l返回新插入資料的主索引值_id            //失敗返回-1            Log.e("tag","初始化資料"+l);        }        //升級資料庫        //觸發條件,當版本號碼增大        @Override        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            //修改資料            if(newVersion==2){               ContentValues cv=new ContentValues();                cv.put("name","李四");                //String sql="update NewTable set name=‘李四‘ where _id=1";               // db.execSQL(sql);                String s[]={"1","18"};                //調用db的更新方法                //"表名",contentValues,帶預留位置?的where條件,String[]匹配?的條件值的數組               int i= db.update("NewTable",cv,"_id=? and age <?",s);                //i返回改變的資料條數                //失敗返回-1                Log.e("tag", "升級資料 資料條數=" + i);            }        }    }}

 

安卓資料庫的基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.