Android SQLite数据库(一 )

来源:互联网 发布:js怎么定义数组的长度 编辑:程序博客网 时间:2024/05/29 09:57

                                                         创建SQLite数据库

   一般来做法,采用继承SQLiteOpenHelp来实现数据库的创建和打开。继承类需要重写它的2个函数,分别为:

  1.onCreate(SQLiteDatabase db)

    该方法一般是生成数据库的。

 2.onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)

  数据库升级时被调用。


另外继承类还必须实现这样的一个构造方法:

  public LoginSql(Context context,String databasename,CursorFactory factory,int version)    {        super(context,databasename,factory, version);//    }


然后创建该类的实例,调用getWritableDatabase 返回一个SQLiteDatabase,该方法是以读写的方式开打数据库的,如果磁盘空间满了,则会报错。

或者调用 getReadableDatabase ,该方法同样返回一个SQLliteDatabase,该方法是先以读写方式打开数据库,如果磁盘空间满了,则会尝试以只读方式打开数据库。


得到了  SQLiteDatabase对象后,则可以对数据库进行相关的增删查改操作。


继承SQLiteOpenHelp类的代码如下:

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Build;/** * Created by Adminzz on 2016/5/27. */public class LoginSql extends SQLiteOpenHelper {    public LoginSql(Context context)    {        super(context,"logindata",null, 1);    }    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        String sql="create table login(_id integer primary key autoincrement, name text not null,password text not null)";        sqLiteDatabase.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {    }}
Activity  代码:
import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private EditText name;    private EditText password;    private LoginSql sql;    private SQLiteDatabase databasewrite;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.share);        name=(EditText)findViewById(R.id.name);        password=(EditText)findViewById(R.id.password);            sql=new LoginSql(this);        databasewrite=sql.getWritableDatabase();    }    public void login(View view)    {        String n=this.name.getText().toString();        String p=this.password.getText().toString();               ContentValues contentValues=new ContentValues();        contentValues.put("name",n);        contentValues.put("password",p);        this.databasewrite.insert("login",null,contentValues);         }    public void show(View view)    {        Cursor cursor =this.databasewrite.query("login",new String[]{"name","password"},null,null,null,null,null);        cursor.moveToFirst();        String n=cursor.getString(cursor.getColumnIndex("name"));        String p=cursor.getString(cursor.getColumnIndex("password"));        Toast.makeText(this,n+"  "+p,Toast.LENGTH_SHORT).show();    }}


0 0