zoukankan      html  css  js  c++  java
  • Android连载35-使用SQLiteDatabase自带增删改功能

    一、添加数据

    • SQLiteDatabase中提供了insert方法,内含有三个参数,一个是表名,第二个是在未指定添加数据的情况下给某些可为空的列自动赋值NULL,第三个参数是一个CotentValues对象,它提供了一系列put方法重载,用于向ContentValues中添加数据。
    • 修改activity_main.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ..............省略部分重复的代码............
    	<Button
    	    android:id="@+id/add_data"
    	    android:layout_width="match_parent"
    	    android:layout_height="wrap_content"
    	    android:text="Add data"/>
    
    </LinearLayout>
    
    • 我们添加了一个按钮,然后为这个按钮绑定事件,修改MainActivity.java
    ..........省略上面的代码...........
    		Button addData = (Button)findViewById(R.id.add_data);
    		addData.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				SQLiteDatabase db = dbHelper.getWritableDatabase();
    				ContentValues values = new ContentValues();
    				//开始组装第一条数据
    				values.put("name", "The Da Vinci Code");
    				values.put("author", "Dan Brown");
    				values.put("pages", 454);
    				values.put("price", 16.96);
    				db.insert("Book",null,values);//插入第一条数据
    				values.clear();
    				//开始组装第二条数据
    				values.put("name", "The Lost Symbol");
    				values.put("author", "Dan Brown");
    				values.put("pages", 510);
    				values.put("price", 19.95);
    				db.insert("Book", null, values);//插入第二条数据
    			}
    		});
    
    • 我们生成这个app,进行点击“Add data"按钮,然后利用dos窗口工具查看数据库内含有的Book表
      35.2

    二、更新数据

    • SQLiteDatabase中提供了update方法,内含有四个参数,一个是表名,第二个参数是一个CotentValues对象,它提供了一系列put方法重载,用于向ContentValues中添加数据。第三个或者第四个参数用于去约束更新某一行或者几行的数据。不指定的话就会默认更新所有行。
    • 修改activity_main.xml
    	<Button 
    	    android:id="@+id/update_data"
    	    android:layout_width="match_parent"
    	    android:layout_height="wrap_content"
    	    android:text="Update data"
    	    />
    
    • 在添加一个按钮,然后来绑定点击事件
    		Button updateData = (Button)findViewById(R.id.update_data);
    		updateData.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				SQLiteDatabase db = dbHelper.getWritableDatabase();
    				ContentValues values = new ContentValues();
    				values.put("price", 10.99);
    				db.update("Book",values,"name=?",new String[] {
    						"The Da Vinci Code"
    				});
    			}
    		});
    

    35.3

    • 可以看到其实三四个参数类似于SQL语句的where部分和PreparedStatement用法有异曲同工之妙。

    三、删除数据

    • SQLiteDatabase中提供了delete方法,内含有三个参数,一个是表名,第二个和第三个参数用于去约束删除某一行或者几行的数据。不指定的话就会默认删除所有行。
    • 修改activity_main.xml
    	<Button 
    	    android:id="@+id/delete_data"
    	    android:layout_width="match_parent"
    	    android:layout_height="wrap_content"
    	    android:text="Delete data"
    	    />
    
    		Button deleteButton = (Button)findViewById(R.id.delete_data);
    		deleteButton.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				SQLiteDatabase db = dbHelper.getWritableDatabase();
    				db.delete("Book", "pages > ?", new String[] {
    						"500"
    				});
    			}
    		});
    

    35.5
    35.6

    四、源码:

  • 相关阅读:
    Android 的 ramdisk.img、system.img、userdata.img 作用说明,以及UBoot 系统启动过程
    Android启动过程以及各个镜像的关系
    程序员如何利用空余时间挣零花钱?
    hcharts实现堆叠柱形图
    [慕课笔记] node+mongodb建站攻略
    【每周一图】蜂鸟
    [慕课笔记]Node入口文件分析和目录初始化
    [慕课笔记] node+mongodb建站攻略
    hcharts实现堆叠柱形图
    程序员常用的六大技术博客类
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13727511.html
Copyright © 2011-2022 走看看