package com.example.dbdemo; import android.content.Context; import android.database.sqlite.sqliteDatabase; import android.database.sqlite.sqliteDatabase.CursorFactory; import android.database.sqlite.sqliteOpenHelper; import android.widget.Toast; public class MyDatabaseHelper extends sqliteOpenHelper { //创建自定义数据库操作类的两个成员变量,静态常量字符串 public static final String CREATE_BOOK="create table book(id integer primary key autoincrement,author text,price real,pages integer,name text)"; public static final String CREATE_CATEGORY="create table category(id integer primary key autoincrement"+ ",category_name text,category_code integer)"; private Context mContext; //上下文对象; public MyDatabaseHelper(Context context,String name,CursorFactory factory,int version) { super(context,name,factory,version); mContext=context; //给当前上下文对象赋值 } //1.创建数据库的方法 @Override public void onCreate(sqliteDatabase db) { //使用db的execsql方法,来执行创建数据表的方法 db.execsql(CREATE_BOOK); db.execsql(CREATE_CATEGORY); Toast.makeText(mContext,"创建数据成功!",Toast.LENGTH_SHORT).show(); } //更新数据的方法;更新数据内容的方法;因为已经有了数据库,则不会再次创建数据库 ; @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { db.execsql("drop table if exists book"); //如果存在,则删除!!! db.execsql("drop table if exists category"); onCreate(db); } }
package com.example.dbdemo; import android.app.Activity; import android.content.ContentValues; import android.database.sqlite.sqliteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { //1.创建主活动类的成员变量是数据库操作类 private MyDatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //---------------------------在主活动的方法里面来调用写数据的方法; //如何让调用onUpgrade()方法,使用版本号,即第四个参数 dbHelper=new MyDatabaseHelper(MainActivity.this,"BookStore.db",null,2); Button btnDb=(Button)findViewById(R.id.btnDb); btnDb.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { dbHelper.getWritableDatabase(); } }); //------------------为插入数据,编写相应的代码----------------- //sqliteDatabase对象,借助这个对象,就可以对数据进行CRUD操作! //sqliteDatabase类提供了一个insert()方法,这个方法专门用于对数据进行添加数据。它接受三个参数,第一个参数是表名,我们希望向哪个表添加数据,这里就传入该表的名字 //第二个参数用于在未指定给某些可为空的列自动赋值NULL,一般我们用不到这个功能; //第三个参数是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待添加数据传入即可 Button btnAddData=(Button)findViewById(R.id.btnAddData); btnAddData.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { sqliteDatabase db=dbHelper.getWritableDatabase(); //返回一个sqliteDatabase对象,可以对sqlite数据库进行操作; ContentValues values=new ContentValues(); //开始组装第一条数据 values.put("name","魔兽"); values.put("author","张"); values.put("pages",454); values.put("price",16.96); long i1=db.insert("Book",values); //插入第一条数据; values.clear(); //清楚内容值对象里面的数据; values.put("name","JQuery"); values.put("author","li.sir"); values.put("pages",510); values.put("price",19.95); long i2=db.insert("Book",values); //插入第二条数据; if(i1!=-1){ Toast.makeText(MainActivity.this,"第一条数据插入成功",Toast.LENGTH_LONG).show(); } if(i2!=-1){ Toast.makeText(MainActivity.this,Toast.LENGTH_LONG).show(); } } }); //针对数据进行更新; Button btnUpdateData=(Button)findViewById(R.id.btnUpData); btnUpdateData.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { sqliteDatabase db=dbHelper.getWritableDatabase(); //获得sqliteDatabase对象; ContentValues values=new ContentValues(); //获得内容值对象; values.put("price",188); int i3=db.update("Book",values,"name=?",new String[]{"魔兽"}); //update(表名 ,值对象,列名,确定原来的哪一行数据 if(i3!=0){ Toast.makeText(MainActivity.this,"数据修改成功",Toast.LENGTH_LONG).show(); } } }); //-------------------使用删除按钮,对数据删除------------ Button btnDeleteData=(Button)findViewById(R.id.btnDeleteData); btnDeleteData.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { sqliteDatabase db=dbHelper.getWritableDatabase(); //获得sqliteDatabase对象db int i4=db.delete("Book","pages>?",new String[]{"500"}); //delete(表名,哪个参数,具体值) Toast.makeText(MainActivity.this,"数据删除成功"+i4,Toast.LENGTH_LONG).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } }