@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