SQLite的基本使用二
2013-11-15 11:53
232 查看
这个星期一直在与狗屁DELL交涉都没怎么写博客了,尼玛的狗屁DELL发我一个没有硬盘的机器还不肯退换货,真是气死人了,不说了,说多了都是血。
直接使用SQLiteDatabase的openOrCreateDatabase可以直接打开或者是新建一个SQLiteDatabase,但是这里存在一个缺点。在每次执行SQL语句的时候都需要在try catch语句中进行,如果在try中直接操作的数据库或者表不存在,就需要在catch中重新创建表并且执行CRUD操作,并且有关数据库的每一个方法都要这么做,重复的代码太多了,所以实际的开发中大都选用SQLiteOpenHelper类。
主要方法:
synchronized SQLiteDatabase getReadableDatabase():以读写的方式打开数据库。
synchronized SQLiteDatabase getWritableDatabase();以写的方式打开数据库。
abstract void onCreate(SQLiteDatabase db) 当第一次创建数据库的时候回调该方法。
abstract void onUprade(SQLiteDatabase db,int oldversion,int newVersion) 数据库版本更新的时候回调该方法。
abstract void close() 关闭所有打开的SQLiteDatabase.
使用方法:
1)继承SQLiteOpenHelper。在构造方法中的参数String name就是数据库的名称。
2)重写onCreate和onUpgrade方法。
MySQLiteOpenHelper类:
Main.java
实现效果:
直接使用SQLiteDatabase的openOrCreateDatabase可以直接打开或者是新建一个SQLiteDatabase,但是这里存在一个缺点。在每次执行SQL语句的时候都需要在try catch语句中进行,如果在try中直接操作的数据库或者表不存在,就需要在catch中重新创建表并且执行CRUD操作,并且有关数据库的每一个方法都要这么做,重复的代码太多了,所以实际的开发中大都选用SQLiteOpenHelper类。
主要方法:
synchronized SQLiteDatabase getReadableDatabase():以读写的方式打开数据库。
synchronized SQLiteDatabase getWritableDatabase();以写的方式打开数据库。
abstract void onCreate(SQLiteDatabase db) 当第一次创建数据库的时候回调该方法。
abstract void onUprade(SQLiteDatabase db,int oldversion,int newVersion) 数据库版本更新的时候回调该方法。
abstract void close() 关闭所有打开的SQLiteDatabase.
使用方法:
1)继承SQLiteOpenHelper。在构造方法中的参数String name就是数据库的名称。
2)重写onCreate和onUpgrade方法。
MySQLiteOpenHelper类:
package com.app.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpenHelper extends SQLiteOpenHelper { String createSQL = "create table tb_test(_id integer primary key autoincrement ,name,age )"; public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(createSQL); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } }
Main.java
package com.app.main; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.widget.Toast; import com.app.db.MySQLiteOpenHelper; public class Main extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "my.db3", null, 1); String insertSQL = "insert into tb_test values(null,'wx',18)"; SQLiteDatabase db = helper.getReadableDatabase(); db.execSQL(insertSQL); Cursor cursor = db.rawQuery("select * from tb_test", null); cursor.moveToFirst(); int id = cursor.getInt(0); Toast.makeText(this, id+"",Toast.LENGTH_SHORT).show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
实现效果:
相关文章推荐
- sqlite基本sql语句使用
- sqlite3 的基本使用 以及封装使用
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- 数据库sqlite3的使用-基本语法
- 【SQLite】简单的基本使用步骤
- SQLite基本使用
- iOS sqlite基本使用
- SQLite 3 一些基本使用
- sqlite 的基本使用2
- Android SQLite增删改查、升级的基本使用
- AndroidSqlite增删改查的基本使用带工具类
- SQLite基本使用
- SQLite的基本使用
- 复习SQLite使用 ,总结基本用法
- 安卓学习(SQlite的基本使用)
- sqlite 的基本使用1
- SQLite的基本使用介绍【教程5--图解】
- iOS sqlite3 的基本使用(增 删 改 查)
- iOS- SQLite3的基本使用
- iOS小明开发笔记(一) (数据存储篇之sqlite3的基本使用)