Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类。在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写下面两个
方法。

public class MySQLiteHelper extends SQLiteOpenHelper {

public MySQLiteHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}

//数据库首次创建时运行此方法。一般讲创建表等初始化工作放在此处

//execSQL创建表

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

//创建表

String sql="create table if not exists hero_info("+ "id integer primary key,"+ "name varchar,"+ "level integer)";

db.execSQL(sql);


}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub



}

MainActivity.java

package com.example.sqllite;

import android.app.Activity;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase; 

import android.graphics.Color;

import android.os.Bundle;

import android.widget.TextView; 

public class MainActivity extends Activity {

private TextView tv;

private MySQLiteHelper h;





    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        init();

    }

    public void init(){

     tv=(TextView) findViewById(R.id.tv);

    
h=new MySQLiteHelper(this, "my.db", null, 1);

    insertAndUpdateData(h);

    //查询数据

    String result = queryData(h);

    tv.setTextColor(Color.RED);

    tv.setTextSize(20.0f);

    tv.setText("名字\t等级\n"+result);

   

   

    }

    

 

private void insertAndUpdateData(MySQLiteHelper helper) {

// TODO Auto-generated method stub



//
调用getReadableDatabase 方法返回的并不总是仅仅读数据库对象。

//
一般来说该方法和getWriteableDatabase 方法的返回情况同样,

//
仅仅有在数据库仅开放仅仅读权限或磁盘已满时才会返回一个仅仅读的数据库对象。



    SQLiteDatabase db = helper.getWritableDatabase();

    //使用execSQL方法向表中插入数据

    db.execSQL("insert into hero_info(name,level) values('bb',0)");

    //使用insert方法向表中插入数据

    ContentValues values = new ContentValues();

    values.put("name", "xh");

    values.put("level", 5);

    //调用方法插入数据

    db.insert("hero_info", "id", values);

    //使用update方法更新表中的数据

    //清空ContentValues对象

    values.clear();

    values.put("name", "xh");

    values.put("level", 10);

    //更新xh的level 为10

    db.update("hero_info", values, "level = 5", null);

    //关闭SQLiteDatabase对象

    db.close();



}
 

//从数据库中查询数据

public String queryData(MySQLiteHelper myHelper){

String result = "";

//获得数据库对象

SQLiteDatabase db = myHelper.getReadableDatabase();

//查询表中的数据

Cursor cursor = db.query("hero_info", null, null, null, null, null, "id asc");

//获取name列的索引

int nameIndex = cursor.getColumnIndex("name");

//获取level列的索引

int levelIndex = cursor.getColumnIndex("level");

for (cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()) {

result = result + cursor.getString(nameIndex)+ "\t\t";

result = result + cursor.getInt(levelIndex)+"\n";

}

cursor.close();//关闭结果集

db.close();//关闭数据库对象

return result;

}

@Override

protected void onDestroy() {

SQLiteDatabase db = h.getWritableDatabase();//获取数据库对象

//删除hero_info表中全部的数据 传入1 表示删除全部行------>点击backbutton

db.delete("hero_info", "1", null);

super.onDestroy();

}

}

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQyNTUyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

最新文章

  1. php 数组的常用函数
  2. IIS7配置Gzip压缩 JS压强失败的原因
  3. Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ;
  4. Evaluate Reverse Polish Notation
  5. zoj 2290 Game 博弈论
  6. Spring 事务模型
  7. 打开网页自动弹出qq客户端
  8. 图论(floyd算法):NOI2007 社交网络
  9. 数据挖掘经典算法之KNN
  10. 手把手教你图片转ASCII码图
  11. HTML5学习资源
  12. zf-关于业务量统计柱形图(上月份的没显示出来的解决办法)
  13. 单线程JavaScript
  14. [Russian Code Cup 2017 - Finals [Unofficial Mirror]]简要题解
  15. ARM920T的Cache
  16. GIT 远程仓库:添加远程库、从远程库克隆
  17. mes平台Action类模版
  18. Internet History, Technology and Security (Week 4)
  19. 寻找最大的k个数问题
  20. php array key 的存储规则

热门文章

  1. jQuery之基本选择器Practice
  2. Fiddler—重复发送一个请求的设置
  3. 13EL表达式语言
  4. [Luogu] P3258 [JLOI2014]松鼠的新家
  5. 随机数生成工具类(中文姓名,性别,Email,手机号,住址)
  6. Linux有几种安装软件的方式?????
  7. linux strings-在对象文件或二进制文件中查找可打印的字符串
  8. linux tload-显示系统负载状况
  9. BZOJ 5028 小Z的加油店
  10. Modify MySQL dump file the fatest way