Sqlite数据库操作类
来源:互联网 发布:免费制作广告软件 编辑:程序博客网 时间:2024/05/18 02:49
Sqlite数据库操作类
1 SQLiteOpenHelper
2 SQLiteDatabase
3 Cursor
实例
SQLiteOpenHelper工具类
package com.example.week3_day4_sqlopenhelper.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;/** * 1 建立一个MySqliteHelper类,继承SQLiteOpenHelper,并实现方法 * 2 重写方法 */public class MySqliteHelper extends SQLiteOpenHelper {// 数据库名称private static String NAME = "info.db";// 版本号private static int VERSION = 1;/** * 构造方法 * * @param context * :上下文 * @param name * :数据库名称 * @param factory * :游标工厂 * @param version * :数据库版本 */public MySqliteHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);}// 改写构造方法public MySqliteHelper(Context context) {super(context, NAME, null, VERSION);}/** * 数据库第一次创建时,回调此方法 */@Overridepublic void onCreate(SQLiteDatabase db) {// 创建数据库表String sql = "create table person(id integer primary key,name varchar(16),age integer)";// 执行数据库语句db.execSQL(sql);}/** * 数据库升级 数据版本发生改变时调用,newVersion>oldVersion */@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {if(newVersion>oldVersion){Log.i("===onUpgrade===", "数据库版本升级");}}/** * 数据库版本降级,只有数据库版本发生重大错误时,数据版本发生改变时调用,newVersion<oldVersion */@Overridepublic void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {super.onDowngrade(db, oldVersion, newVersion);if(newVersion<oldVersion){Log.i("===onDowngrade===", "数据库版本降级");}}/** * 每次打开数据库时调用,主要是验证数据库是否打开 */@Overridepublic void onOpen(SQLiteDatabase db) {super.onOpen(db);Log.i("===onOpen===", "数据库打开");}}数据库常用操作
package com.example.week3_day4_sqlopenhelper;import com.example.week3_day4_sqlopenhelper.db.MySqliteHelper;import android.os.Bundle;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import android.view.View;public class MainActivity extends Activity {//声明数据库private MySqliteHelper helper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库实例 helper=new MySqliteHelper(MainActivity.this); } /** * getWritableDatabase() * getReadableDatabase() * 磁盘未满时他们两个一样,都可以读写 * 磁盘满时,getWritableDatabase报错,打开失败,getReadableDatabase则变成只读状态 */ public void onClickBtn(View v){ switch (v.getId()) {case R.id.btn1://创建数据库SQLiteDatabase db = helper.getWritableDatabase();db.close();break;case R.id.btn_insert://获取数据库SQLiteDatabase db1 = helper.getReadableDatabase();//插入语句String str1="insert into person values (1,'张大宝',23)";String str2="insert into person values (2,'张小宝',26)";String str3="insert into person values (3,'张包宝',29)";//执行插入语句db1.execSQL(str1);db1.execSQL(str2);db1.execSQL(str3);//批量插入for (int i = 4; i < 10; i++) {String str4="insert into person values ("+i+",'张包宝"+i+"',29)";db1.execSQL(str4);}break;case R.id.btn_query:SQLiteDatabase db2 = helper.getWritableDatabase();String str4="select * from person";//指定查询,返回一个游标Cursor cursor = db2.rawQuery(str4, null);//判断下一条语句是否存在while(cursor.moveToNext()){//查询第一列int id=cursor.getInt(0);String name=cursor.getString(1);//查询第二列int age=cursor.getInt(2);//查询第三列Log.i("----------------",id+""+age+name);}db2.close();break;//更新数据库case R.id.btn_update:SQLiteDatabase db3 = helper.getReadableDatabase();String sql4="update person set name='heihei' where id=2";db3.execSQL(sql4);db3.close();break;//删除数据case R.id.btn_delete:SQLiteDatabase db4 = helper.getReadableDatabase();String str5="delete from person where id=3";db4.execSQL(str5);db4.close();break;default:break;} }}API提供数据库操作
package com.example.week3_day4_sqlopenhelper.db;import com.example.week3_day4_sqlopenhelper.R;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Toast;public class SqliteApiActivity extends Activity {private MySqliteHelper helper;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);helper = new MySqliteHelper(SqliteApiActivity.this);}public void onClickBtn(View v) {switch (v.getId()) {case R.id.btn1:// 创建数据库SQLiteDatabase db1 = helper.getReadableDatabase();db1.close();break;case R.id.btn_insert:SQLiteDatabase db2 = helper.getReadableDatabase();ContentValues values = new ContentValues();values.put("id", 1);values.put("name", "小灰灰");values.put("age", 23);/** * 参数1:表名 参数2 :如果添加的数据是null null 参数3:添加的数据 */db2.insert("person", null, values);values = new ContentValues();values.put("id", 6);values.put("name", "小香香");values.put("age", 24);db2.insert("person", null, values);db2.close();break;case R.id.btn_query:SQLiteDatabase db3 = helper.getReadableDatabase();/** * 参数1:表名 参数2:字段数组 参数3:查询的条件 _id = ? 参数4:查询条件的值 new String{"1"} * 参数5:分组字段 参数6:在where条件后再次筛选 参数7:查询排序 * */Cursor cursor = db3.query("person", null, null, null, null, null,null);while (cursor.moveToNext()) {//getColumnIndex获取指定列的索引int id = cursor.getInt(cursor.getColumnIndex("id"));String name = cursor.getString(cursor.getColumnIndex("name"));int age = cursor.getInt(cursor.getColumnIndex("age"));Log.i("--------------", id + "," + name + "," + age);}db3.close();break;case R.id.btn_update:SQLiteDatabase db4 = helper.getReadableDatabase();ContentValues values2 = new ContentValues();values2.put("name", "fff");/** * 参数1: 表名 参数2:要修改的值 参数3:where 条件语句 _id = ? 参数4:条件语句的值 new String * []{"1"} */int num = db4.update("person", values2, "id=?",new String[] { "1" });if (num > 0) {Toast.makeText(getApplicationContext(), "修改成功",Toast.LENGTH_SHORT).show();}else{Toast.makeText(getApplicationContext(), "修改失败",Toast.LENGTH_SHORT).show();}db4.close();break;case R.id.btn_delete:SQLiteDatabase db5 = helper.getReadableDatabase();/** * 参数1:数据库表名 * 参数2:where 条件语句 _id = ? * 参数3: 条件语句的值 new String []{"1"} */int num1 = db5.delete("person", "id = ?", new String[]{1+""});if(num1>0){Toast.makeText(getApplicationContext(), "删除成功",Toast.LENGTH_SHORT).show();}else{Toast.makeText(getApplicationContext(), "删除失败",Toast.LENGTH_SHORT).show();}db5.close();break;default:break;}}}布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickBtn" android:text="创建数据库 " /> <Button android:id="@+id/btn_insert" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickBtn" android:text="添加数据 " /> <Button android:id="@+id/btn_query" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickBtn" android:text="查询数据 " /> <Button android:id="@+id/btn_update" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickBtn" android:text="更新数据 " /> <Button android:id="@+id/btn_delete" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickBtn" android:text="删除数据" /></LinearLayout>
0 0
- SQLite数据库操作类
- SQLite数据库操作类
- SQLite 数据库操作类
- Sqlite数据库操作类
- SQLiteHelper类,操作SQLite数据库
- C# SQLite数据库操作类
- Sqlite数据库操作Dao类
- Android下Sqlite数据库辅助操作类
- android greenDao SQLite数据库操作工具类
- 关于C#的sqlite数据库操作类
- C#对Sqlite数据库的操作类
- Qt操作SQLite数据库
- sqlite数据库基本操作
- sqlite 数据库的操作
- SQLite数据库的操作
- android sqlite数据库操作
- Fasm操作数据库sqlite
- QT 操作Sqlite数据库
- HDU---5438-Ponds(DFS)(2015 Changchun)
- codeforces#320ABCD
- OC之Foundation框架使用
- C++实现快速排序算法
- JSON的解析之net.sf.json
- Sqlite数据库操作类
- 一 xml基本语法
- 项目三——求集合并集
- 黑马程序员 JAVA面向对象基础
- 关于数据结构的学习经验分享 (1关于实现语言)
- iOS - 数据持久化 - 文件的写入(简单对象和复杂对象)
- Java读写MySQL数据库小实例
- maven错误解决:编码GBK的不可映射字符
- iOS上的ReactiveCocoa响应式编程