DatabaseHelper.java
/** * 继承sqliteOpenHelper * * @author Harvey * */ public class DatabaseHelper extends sqliteOpenHelper { * 数据库名称 /.db可有可无 */ static final String DATABASE_NAME = "test.db"; * 数据库版本,版本号不能为0 final int DATABASE_VERSION = 1; * 构造方法 * * @param context public DatabaseHelper(Context context) { // CursorFactory设置为null,使用默认值 this(context,DATABASE_NAME,null,DATABASE_VERSION); } * 必须要有此构造方法 * * context * 代表应用的上下文 * name * 代表数据库的名称 * factory * 代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的 * version * 代表数据库的版本,如果以后升级软件的时候,需要更改 public DatabaseHelper(Context context,String name,CursorFactory factory,255); font-size:12px!important; line-height:1.5!important">int version) { 必须通过super调用父类当中的构造函数 super(context,name,factory,version); } * 在用户第一次使用软件时,会创建数据库,而该方法在数据库初次创建时被调用,此方法中特别适合 * 生成数据库表的结构,它只会被调用一次,它的唯一一个参数是操作数据库的工具类,这个 * 工具类提供了对数据的添、删、改、查等方法,用这个类实现对sql语句的执行 */ @Override void onCreate(sqliteDatabase db) { db.execsql("CREATE TABLE person (personid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),age INTEGER)"); } * version版本号发生改变时,此方法会被调用,在这个方法中比较适合实现软件更新时修改数据库表结构的工作 void onUpgrade(sqliteDatabase db,255); font-size:12px!important; line-height:1.5!important">int oldVersion,255); font-size:12px!important; line-height:1.5!important">int newVersion) { 数据库更新的语句 db.execsql("ALTER TABLE person ADD COLUMN other STRING"); } }
Person.java
class Person { * id private Integer id; * name private String name; * age private Integer age; public Person() { } public Integer getId() { return id; } void setId(Integer id) { this.id = id; } public String getName() { return name; } void setName(String name) { this.name = name; } public Integer getAge() { return age; } void setAge(Integer age) { this.age = age; } @Override public String toString() { return "id:" + id + "\nage:" + age + "\nname:" + name; } }