加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite操作数据库的步骤

发布时间:2020-12-12 19:30:06 所属栏目:百科 来源:网络整理
导读: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


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;
	}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读