Android-SQLite使用总结
来源:互联网 发布:淘宝如何找卖家电话 编辑:程序博客网 时间:2024/05/14 06:01
android中SQLiteDatabase的创建是通过SQLiteOpenHelper类的数据库获取方法完成的,其中包括getReadableDatabase()、getWritableDatabase()等。数据创建完成后,通过对数据库增、删、改、查等方法的重载,即可完成数据库操作的应用。
具体的SQLite使用的具体步骤如下:
1.新建一个继承自SQLiteOpenHelper的类DatabaseHelper;
2.通过DatabaseHelper的对象,调用其方法getReadableDatabase(),返回SQLiteDatabase数据库对象;
3.定义Button监听函数,再对应的监听函数中进行数据库增删改查操作。
下面以代码为主简单介绍起用法:
一、新建一个类DatabaseHelper,继承自SQLiteOpenHelper。类文件名DatabaseHelper.java,内容如下:
package com.example.sqlite.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DatabaseHelper extends SQLiteOpenHelper {private static final int VERSION = 1;public DatabaseHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);// TODO Auto-generated constructor stub}public DatabaseHelper(Context context, String name){this(context, name, VERSION);}public DatabaseHelper(Context context, String name, int version) {// TODO Auto-generated constructor stubthis(context, name, null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubString sql = "create table user(id int, name varchar(20), score int)";db.execSQL(sql);System.out.println("create a database.");}@Overridepublic void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {// TODO Auto-generated method stubSystem.out.println("update a database version.");}}该类做了如下工作:1.重载了几个构造函数;2.重载了新建列表函数onCreate()。其中类的构造函数是为了传入数据库名称;列表创建函数重载是为了定义列表名称及结构。更多数据库的知识需另行学习。
二、主Activity文件
主Activity中主要定义了几个Button空间的监听函数,在对应的Button监听函数中完成数据库增删改查的操作。对数据库的操作一般有两种方式:1.通过SQLiteDatabase类的insert/delete/update/query等方法进行操作;2.通过SQLiteDatabase类的execSQL方法,使用数据库操作命令进行操作。
主Activity文件名MainActivity.java,具体内容如下:
package com.example.sqlite;import android.R.integer;import android.app.Activity;import android.content.ContentValues;import android.content.res.Resources;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import com.example.sqlite.db.DatabaseHelper;public class MainActivity extends Activity {//定义类的控件成员变量private Button btn_ist = null;private Button btn_dlt = null;private Button btn_mdf = null;private Button btn_qry = null;private Button btn_crt = null;private Button btn_upd = null;private EditText edt_id = null;private EditText edt_value = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //set background color Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.bkground); this.getWindow().setBackgroundDrawable(drawable); //通过id获取控件对象 btn_ist = (Button)findViewById(R.id.insert); btn_dlt = (Button)findViewById(R.id.delete); btn_mdf = (Button)findViewById(R.id.modify); btn_qry = (Button)findViewById(R.id.query); btn_crt = (Button)findViewById(R.id.createdb); btn_upd = (Button)findViewById(R.id.updatedb); edt_id = (EditText)findViewById(R.id.id); edt_value=(EditText)findViewById(R.id.value); //设置button的点击消息响应函数 //无名类定义的方式 btn_ist.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub//获取edit text参数String str = edt_id.getText().toString();System.out.println("insert a data:"+str);//if( str !="" ){int id_ist = Integer.parseInt(str);String name_ist = edt_value.getText().toString();//增加一条记录ContentValues value = new ContentValues();value.put("id", id_ist);value.put("name", name_ist);value.put("score", 100);DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx");SQLiteDatabase db = dbHelper.getWritableDatabase();db.insert("user", null, value);System.out.println("insert a data.");}//else//System.out.println("Please input your record.");}}); //有名类定义的方式 btn_dlt.setOnClickListener(new deleteOnClickListener()); btn_mdf.setOnClickListener(new modifyOnClickListener()); btn_qry.setOnClickListener(new queryOnClickListener()); btn_crt.setOnClickListener(new createOnClickListener()); btn_upd.setOnClickListener(new updateOnClickListener()); //创建数据库助手类对象 } class deleteOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("delete a data.");String dlt_id = edt_id.getText().toString();DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx");SQLiteDatabase db = dbHelper.getWritableDatabase();//db.delete("user", "id=?", new String[]{dlt_id});db.execSQL("delete from user where id="+dlt_id);//这句命令操作不能同时用多个条件限制} } class modifyOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("modify a data.");String mdf_id = edt_id.getText().toString();String mdf_value = edt_value.getText().toString();ContentValues value = new ContentValues();value.put("score", mdf_value);DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx");SQLiteDatabase db = dbHelper.getWritableDatabase();db.update("user", value, "id=?", new String[]{mdf_id});} } class queryOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("query a data.");//获取一条记录String id_qry = edt_id.getText().toString();//打开数据库DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx");SQLiteDatabase db = dbHelper.getReadableDatabase();Cursor cursor = db.query("user", new String[]{"id","name","score"}, "id=?", new String[]{ id_qry }, null, null, null);while (cursor.moveToNext()){String name = cursor.getString(cursor.getColumnIndex("name"));String score = cursor.getString(cursor.getColumnIndex("score"));System.out.println("query--->"+name+":"+score);edt_value.setText(name+":"+score);}cursor.close();} } class createOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//通过database helper创建数据库DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx");SQLiteDatabase db = dbHelper.getReadableDatabase();} } class updateOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//更新数据库版本号DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_db_lx", 2);SQLiteDatabase db = dbHelper.getReadableDatabase();} } @Override public 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; } }
注意:此处在每个Button监听函数中都重新new一个数据库Helper的类,并根据读写需求获取了相应的SQLiteDatabase对象。
三、其他文件内容
其他相关文件包括:布局文件activity_main.xml和strings.xml。内容分别如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#aaaaaa" android:layout_weight="1" android:gravity="left" android:text="@string/id" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#aaaaaa" android:layout_weight="1" android:gravity="left"android:text="@string/value" /> </LinearLayout><LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dip" > <EditText android:id="@+id/id" android:hint="@string/id" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="5dip" android:background="#aaaaaa" android:maxLines="1" android:layout_weight="1" /> <EditText android:id="@+id/value" android:hint="@string/value" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="5dip" android:background="#aaaaaa" android:maxLines="1" android:layout_weight="1" /></LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" > <Button android:id="@+id/insert" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/insert" android:clickable="true" /><Button android:id="@+id/delete" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/delete" android:clickable="true"/><Button android:id="@+id/modify" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/modify" android:clickable="true"/><Button android:id="@+id/query" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/query" android:clickable="true"/></LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dip" > <Button android:id="@+id/createdb" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/createdb" android:clickable="true" /><Button android:id="@+id/updatedb" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/updatedb" android:clickable="true"/></LinearLayout></LinearLayout>
strings.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">sqlite</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="id">id:</string> <string name="value">value:</string> <string name="operation">operation:</string> <string name="insert">insert</string> <string name="delete">delete</string> <string name="modify">modifi</string> <string name="query">query</string> <string name="createdb">createdb</string> <string name="updatedb">updatedb</string> <drawable name="bkground">#000000</drawable></resources>
- Android-SQLite使用总结
- Android SQLite 使用总结
- Android中SQLite使用总结
- android 原生Sqlite使用总结
- Android SQLite数据库使用的小总结
- android 技术总结 图片优化 sqlite使用 Fragment使用
- ANDROID SQLITE学习总结
- Android SQLite总结
- Android SQLite总结
- Android SQLite总结(一)
- Android SQLite总结(一)
- Android SQLite总结
- Android SQLite总结[转载]
- Android SQLite总结
- Android SQLite总结
- android-SQLite数据库总结
- Android SQlite 总结
- Android SQLite总结
- sensor
- windows蓝屏错误对照表
- 资源文件操作总结
- iOS下拉刷新的实现
- struts2 18拦截器详解(十八) --- AnnotationValidationInterceptor
- Android-SQLite使用总结
- Hibernate配置文件错误提示,The content of element type "list" must match "(meta*,subselect?,cache?,synchroniz
- jquery用ajax取得数据的dialog对话框
- CursorLoader异步加载
- Python获取(实时、全天、六天)天气情况
- 网络编程常用接口的内核实现----sys_listen()
- json数组对象和对象数组
- 算法之lcs-最长公共字串;
- "Unable to execute dex: Multiple dex files define Lcom..."问题解决记录