Android信息存储之 SQL

来源:互联网 发布:09式单兵自热食品淘宝 编辑:程序博客网 时间:2024/05/24 01:12

SQL数据库是Android自带的轻型数据库,操作简单保存信息可靠。


实例:学生信息的管理

首先创建DataBaseHelper类继承SQLOpenHelper

package com.zhang.android;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by asus-pc on 2015/2/19. */public class DataBaseHelper extends SQLiteOpenHelper {    private static final String DATABASE_NAME = "student.db";    private static final int DATABASE_VERSION = 1;    public DataBaseHelper(Context context) {        super(context, DATABASE_NAME, null, DATABASE_VERSION);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("CREATE TABLE IF NOT EXISTS student" +                "(_id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER, name VARCHAR, math FLOAT, geometry FLOAT, cProgram FLOAT)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        System.out.println("--------onUpdate Called--------" + oldVersion + "--->" + newVersion);    }}

然后创建DataManager类,将数据库想实现的功能写在里面

package com.zhang.android;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList;import java.util.List;/** * Created by asus-pc on 2015/3/15. */public class DataBaseManager {    private DataBaseHelper helper;    private SQLiteDatabase db;    public DataBaseManager(Context context){        helper = new DataBaseHelper(context);        db = helper.getWritableDatabase();    }    public void insertData(ContentValues cv){        db.insert("student",null,cv);    }    public List<Student> query() {        ArrayList<Student> students = new ArrayList<Student>();        Cursor c = db.rawQuery("SELECT * FROM student", null);        while (c.moveToNext()) {            Student student = new Student();            student.setID(c.getInt(c.getColumnIndex("id")));            student.setName(c.getString(c.getColumnIndex("name")));            student.setMath(c.getFloat(c.getColumnIndex("math")));            student.setGometry(c.getFloat(c.getColumnIndex("geometry")));            student.setCprogram(c.getFloat(c.getColumnIndex("cProgram")));            students.add(student);        }        c.close();        return students;    }    public void closeDataBase() {        db.close();    }}

实例化对象 DataManager

    public static DataBaseManager dataBaseManager;              //创建数据库


初始化数据库

dataBaseManager = new DataBaseManager(this);                //初始化数据库

实例化学生对象并存入信息

Student student = new Student(intId, strName, floatMath, floatGeometry, floatCProgram);


将学生信息存入键值对,然后将其加入数据库中

public void sqlSave(Student student) {        ContentValues cv = new ContentValues();        cv.put("id", student.getID());        cv.put("name", student.getName());        cv.put("math", student.getMath());        cv.put("geometry", student.getGeometry());        cv.put("cProgram", student.getCprogram());        dataBaseManager.insertData(cv);        send(student.getName());//在通知栏发送通知        finish();    }


读取学生信息时

public void btnSQL() {        List<Student> students = dataBaseManager.query();        Bundle data = new Bundle();        data.putSerializable("data", toList(students));        Intent intent = new Intent(InputActivity.this, PrintActivity.class);        intent.putExtras(data);        startActivity(intent);    }

toList方法

protected ArrayList<Map<String, String>> toList(List<Student> students) {        ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();        for (Student student : students) {            HashMap<String, String> map = new HashMap<String, String>();            map.put("id", "学号:" + student.getID() + "\n姓名:" + student.getName());            map.put("grades", "工数成绩:" + student.getMath() + "\n代几成绩:" + student.getGeometry() + "\nC语言成绩:" + student.getCprogram());            list.add(map);        }        return list;    }


打印方法

ListView listView = (ListView)findViewById(R.id.lvShow);        Intent intent = getIntent();        Bundle data = intent.getExtras();        try {            List<Map<String , String>> list = (List<Map<String , String>>)data.getSerializable("data");            SimpleAdapter adapter = new SimpleAdapter(this, list, android.R.layout.simple_list_item_2,                    new String[]{"id", "grades"}, new int[]{android.R.id.text1, android.R.id.text2});            listView.setAdapter(adapter);        } catch (Exception e) {            e.printStackTrace();        }




1 0
原创粉丝点击