SQLite操作数据库的步骤

举报
tea_year 发表于 2021/12/30 00:07:13 2021/12/30
3.9k+ 0 0
【摘要】 视频课:https://edu.csdn.net/course/play/7621 package com.example.dbdemo; import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.data...

视频课:https://edu.csdn.net/course/play/7621


      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", null,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",null,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;
      	}
      }
  
 


文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/51744608

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。