Android Sqlite的基本用法

来源:互联网 发布:linux全局翻墙教程 编辑:程序博客网 时间:2024/05/28 23:20
package com.lixiangjian.android_sqlite;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.util.Log;import android.view.View;/** * Sqlite的基本用法 *  * @author lixiangjian * */public class MainActivity extends Activity {private MySqliteOpenHelpter mOpenHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mOpenHelper = new MySqliteOpenHelpter(MainActivity.this, 1);}/** * 打开数据库 第一次打开数据库时才会创建数据库 * getWritableDatabase():首先会以读写的方式打开数据库,当数据库磁盘满时就只能读不能写了,再次写入就会报错 * getReadableDatabase():首先会以读写的方式打开数据库,当数据库磁盘满时就会以读取的方式继续尝试打开数据库 *  * @param view */public void openDb(View view) {// SQLiteDatabase db = mOpenHelper.getWritableDatabase();SQLiteDatabase db = mOpenHelper.getReadableDatabase();db.close();}// 新增数据public void insertData(View view) {SQLiteDatabase db = mOpenHelper.getWritableDatabase();String sql = "insert into person values(1,'张三',20)";String sql2 = "insert into person values(2,'李四',30)";db.execSQL(sql);db.execSQL(sql2);db.close();}// 修改数据public void updateData(View view) {SQLiteDatabase db = mOpenHelper.getWritableDatabase();String sql = "update person set name = '犀利哥' where _id = 1";db.execSQL(sql);db.close();}// 删除数据public void delData(View view) {SQLiteDatabase db = mOpenHelper.getWritableDatabase();String sql = "delete from person where _id = 2";db.execSQL(sql);db.close();}// 查询数据public void selectData(View view) {SQLiteDatabase db = mOpenHelper.getWritableDatabase();String sql = "select * from person where _id = ?";Cursor cursor = db.rawQuery(sql, new String[] { "1" });// 参数2:占位符的值// 遍历结果集while (cursor.moveToNext()) {// columnIndex:列的下标//int id = cursor.getInt(0);//String name = cursor.getString(1);//int age = cursor.getInt(2);//cursor.getColumnIndex(columnName):通过列名获取列的下标int id = cursor.getInt(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));int age = cursor.getInt(cursor.getColumnIndex("age"));Log.i("TAG", "_id:" + id + "  name:" + name + "  age:" + age);}}}<pre name="code" class="java">package com.lixiangjian.android_sqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.util.Log;import android.database.sqlite.SQLiteOpenHelper;/** * 数据库操作的帮助类 * 用来关联数据库的创建以及版本更新 * @author lixiangjian * */public class MySqliteOpenHelpter extends SQLiteOpenHelper {private static String db_name = "info_db.db";//数据库的名称/** *  * @param context:上下文对象 * @param name   :要创建的数据库的名字 * @param factory:游标工厂 * @param version:要创建的数据库的版本 */public MySqliteOpenHelpter(Context context, int version) {super(context, db_name, null, version);}/** * 创建数据库是回调的方法 */@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "create table person(_id integer primary key,name varchar(10),age integer)";db.execSQL(sql);//除了查询之外都可以调用}/** * 数据库版本更新时回调的方法 */@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {if(newVersion !=oldVersion){Log.i("TAG", "数据库版本改变了");}}}

 
activity_main.xml:<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:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="打开数据库"        android:onClick="openDb" />        <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="新增数据"        android:onClick="insertData" />        <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="修改数据"        android:onClick="updateData" />        <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="删除数据"        android:onClick="delData" />        <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="查询数据"        android:onClick="selectData" /></LinearLayout>


0 0