Android实验七之SQLite数据库存储
16lz
2021-01-23
实验效果图:
LogCat中打印出的数据:
代码:
MainActivity.java
package com.example.sqlist;import com.example.helper.MyDataHelper;import android.os.Bundle;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity{private MyDataHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dbHelper = new MyDataHelper(this, "BookStore.db", null, 2);Button createDatabase = (Button) findViewById(R.id.create);Button addData = (Button) findViewById(R.id.add);Button updateData = (Button) findViewById(R.id.update);Button deleteData = (Button) findViewById(R.id.delete);Button queryData = (Button) findViewById(R.id.query);createDatabase.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubdbHelper.getWritableDatabase();}});addData.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubSQLiteDatabase 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.put("name", "The Lost Symol");values.put("author", "Dan brown");values.put("pages", 510);values.put("price", 19.95);db.insert("Book", null,values);//插入第二条}});updateData.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubSQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("price", 10.99);db.update("Book", values, "name=?", new String[]{"The Da Vinci Code"});}});deleteData.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubSQLiteDatabase db = dbHelper.getWritableDatabase();db.delete("Book", "pages>?", new String[]{"500"});}});queryData.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubSQLiteDatabase db = dbHelper.getWritableDatabase();Cursor cursor = db.query("Book", null, null, null, null, null, null);if(cursor.moveToFirst()){do{//遍历Cursor对象,取出数据并打印String name = cursor.getString(cursor.getColumnIndex("name"));String author = cursor.getString(cursor.getColumnIndex("author"));int pages = cursor.getInt(cursor.getColumnIndex("pages"));double price = cursor.getDouble(cursor.getColumnIndex("price"));Log.d("MainActivity", "book name is "+name);Log.d("MainActivity", "book author is "+author);Log.d("MainActivity", "book pages is "+pages);Log.d("MainActivity", "book price is "+price);}while(cursor.moveToNext());}cursor.close();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
MyDataHelper.java
package com.example.helper;import android.R.string;import android.content.Context;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.widget.Toast;public class MyDataHelper 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 MyDataHelper(Context context, String name, CursorFactory factory,int version){super(context, name, factory, version);// TODO Auto-generated constructor stubmContext = context;}@Overridepublic void onCreate(SQLiteDatabase db){// TODO Auto-generated method stubdb.execSQL(CREATE_BOOK);db.execSQL(CREATE_CATEGORY);Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_LONG).show();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){// TODO Auto-generated method stubdb.execSQL("drop table if exists Book");db.execSQL("drop table if exists Category");onCreate(db);}}
activity_main.xml
总结:
在Add时,点了三次add,就添加了三次重复的数据,重复的数据多占用了空间,是该程序的弊端之一,应该在添加数据时先判断是否是完全一致的数据,避免数据的重复录入!
更多相关文章
- Android ContentProviders数据共享
- android inputreader 部分对event数据的处理
- Android sqlite3 数据库批量操作
- android 使图片显示 圆角
- android ImageUtils 图片处理工具类
- Android 获取SDCard上图片和视频的缩略图
- android 网络图片与网页读取
- Android File 数据存储