SQLiteOpenHelper是一个帮助类数据库管理的帮助类,让开发者直接操作这个类实现对数据库各种框架的完善
首先建立一个SQLiteOpenHelper文件,在这个文件里面进行数据框架的操作
下面是一个简单的一个小例子,主要是通过SQliteOpenHelper来完成
1:首先建一个XML文件给4个按钮,分别表示 对数据库的添删改查,
<-----------activity_main.xml------------->布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.yongninggo.helloworld2.MainActivity"
android:orientation="vertical"
android:gravity="center_horizontal">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="新建数据库"/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="插入数据"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改数据"/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除数据"/>
</LinearLayout>
<-----------DBopenhelper.Java------>文件,这个文件就是一个SQliteOpenHelper的帮助类
package com.yongninggo.helloworld2;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* SQLiteOpenHelper帮助类,
*/
public class DBopenhelper extends SQLiteOpenHelper{
public DBopenhelper(Context context, String name) {
super(context, SQLValue.DATABASE_NAME, null, SQLValue.DATABASE_VERTION);
}
@Override //创建数据库调用这个类
public void onCreate(SQLiteDatabase db) {
//创建数据表
String sql =("create table if not exists "+SQLValue.DATABASE_TABLE+"" +
"("+SQLValue._ID+" integer primary key autoincrement," +
""+SQLValue.TABLE_NAME+" text not null,"+SQLValue.TABLE_SEX+" text not null," +
""+SQLValue.TABLE_AGE+" integer not null)");
//插入数据
db.execSQL(sql);
}
@Override //跟新版本调用这个类
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
其中的值全部写入里一个文件夹方便管理,修改
package com.yongninggo.helloworld2;
<-----------SQLValue.java----------->布局文件
package com.yongninggo.helloworld2; /** * SQlite 数据值信息 */ public class SQLValue { public static final String DATABASE_NAME ="pass.db"; public static final int DATABASE_VERTION = 1; public static final String DATABASE_TABLE = "pass"; public static final String _ID ="_id"; public static final String TABLE_NAME = "name"; public static final String TABLE_SEX = "sex"; public static final String TABLE_AGE = "age"; }
<-----------MainActivity.java----------->布局文件 在这里进行对数据库的操作
package com.yongninggo.helloworld2; 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.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button btn; private Button btn1; private Button btn2; private Button btn3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn3 = (Button) findViewById(R.id.btn3); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db"); SQLiteDatabase db = helper.getWritableDatabase(); //返回游标对象的select 查询 Cursor c = db.rawQuery("select * from pass",null); if (c != null){ String [] cols = c.getColumnNames(); while (c.moveToNext()){ for (String colsnames : cols){ Log.i("myc",colsnames+":"+c.getString(c.getColumnIndex(colsnames))); } } c.close(); } db.close(); } }); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //插入数据信息 DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db"); SQLiteDatabase db = helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name","马延超"); values.put("sex","男"); values.put("age",20); db.insert("pass",null,values); values.clear(); values.put("name","马超"); values.put("sex","男"); values.put("age",0); db.insert("pass",null,values); values.clear(); values.put("name","马延"); values.put("sex","男"); values.put("age",2); db.insert("pass",null,values); values.clear(); } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db"); SQLiteDatabase db = helper.getWritableDatabase(); // 修改数据信息 ContentValues values = new ContentValues(); values.put("sex","女"); db.update("pass",values,"_id> ?",new String[]{"3"}); } }); btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db"); SQLiteDatabase db = helper.getWritableDatabase(); //删除数据信息 db.delete("pass","name like ?",new String[]{"%延%"}); Cursor c = db.query("pass",null,"_id > ?",new String[]{"0"},null,null,"age"); if (c != null){ String[]columes = c.getColumnNames(); while (c.moveToNext()){ for (String columenames : columes){ Log.i("myc",c.getString(c.getColumnIndex(columenames))); } } c.close(); } db.close(); } }); } }