@DatabaseTable(tableName = "INDEX_READ_TABLE", daoClass = PersonDao.class) public class Person implements Parcelable, Serializable { // id is generated by the database and set on the object automagically @DatabaseField(generatedId = true) private int id; @DatabaseField private String name; @DatabaseField private String sex; @DatabaseField private int age; public Person() { // TODO Auto-generated constructor stub } public Person(String name, String sex, int age) { super(); this.name = name; this.sex = sex; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int describeContents() { // TODO Auto-generated method stub return 0; } public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub dest.writeString(name); dest.writeString(sex); dest.writeInt(age); dest.writeInt(id); } }
public class PersonDao extends BaseDaoImpl<Person, Integer>{ public PersonDao(Class<Person> dataClass) throws SQLException { super(dataClass); // TODO Auto-generated constructor stub } public PersonDao(DatabaseHelper helper) throws SQLException{ super(helper.getConnectionSource(), Person.class); } public PersonDao(ConnectionSource connectionSource, Class<Person> dataClass) throws SQLException { super(connectionSource, dataClass); // TODO Auto-generated constructor stub } public PersonDao(ConnectionSource connectionSource, DatabaseTableConfig<Person> tableConfig) throws SQLException { super(connectionSource, tableConfig); // TODO Auto-generated constructor stub } public long queryCount(long _Id) throws SQLException { QueryBuilder<Person, Integer> queryBuilder = queryBuilder(); Where<Person, Integer> where = queryBuilder.where(); queryBuilder.setCountOf(true); where.eq("id", _Id); where.and(); return countOf(queryBuilder.prepare()); } public List<Person> queryList(long _Id) throws SQLException { QueryBuilder<Person, Integer> queryBuilder = queryBuilder(); Where<Person, Integer> where = queryBuilder.where(); where.eq("id", _Id); where.and(); queryBuilder.orderBy("id", true); return query(queryBuilder.prepare()); } }
public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private Dao<Person, Integer> personDao = null; /** * 鏋勯?鍑芥暟 * * @param context */ public DatabaseHelper(Context context) { super(context,"person", null, 1); } /** * 鍒濆鍖栨搷浣滐細寤鸿〃 * * @see com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase, * com.j256.ormlite.support.ConnectionSource) */ @Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { createTables(db, connectionSource); } @Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) { if (newVersion <= oldVersion) { return; } db.delete("DEMO_TABLE", null, null); db.delete("MYPHOTO_LIST_TABLE", null, null); db.delete("POST_DRAFT_TABLE" , null, null); db.delete("UPLOAD_IMAGE_TABLE", null, null); db.delete("INDEX_READ_TABLE", null, null); createTables(db, connectionSource); } private void createTables(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTableIfNotExists(connectionSource, Person.class); } catch (SQLException e) { e.printStackTrace(); } } public Dao<Person, Integer> getPersonDataDao() throws SQLException { if (personDao == null) { personDao = getDao(Person.class); } return personDao; } }
public class MainActivity extends Activity{ private com.example.helloandroid.data.DatabaseHelper databaseHelper = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); TextView tv = new TextView(this); StringBuilder sb = new StringBuilder(); sb.append("person1 1,joy,boy,22"); PersonDao dao = null; try { dao = new PersonDao(getHelper()); dao.create(new Person("joy", "boy", 22)); sb.append("\nperson2 2,kim,girl,21"); dao.create(new Person("kim", "girl", 21)); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sb.append("\n this db data is:"); try { List<Person> lists = dao.queryList(1); for(Person p : lists){ sb.append("\n"+p.getId()+"::"+p.getName()+"::"+p.getSex()+"::"+p.getAge()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } tv.setText(sb); setContentView(tv); } @Override protected void onDestroy() { super.onDestroy(); /* * You'll need this in your class to release the helper when done. */ if (databaseHelper != null) { OpenHelperManager.releaseHelper(); databaseHelper = null; } } /** * You'll need this in your class to get the helper from the manager once per class. */ private com.example.helloandroid.data.DatabaseHelper getHelper() { if (databaseHelper == null) { databaseHelper = OpenHelperManager.getHelper(this, com.example.helloandroid.data.DatabaseHelper.class);<span style="color:#ff0000;">//在第一次调用这句的时候会创建数据库表,第二次打开应用时不再会创建数据库表,这个可以再logcat观察到</span> } return databaseHelper; } }
http://blog.csdn.net/yzzst/article/details/9359271