Ormlite开源数据库框架

来源:互联网 发布:mac word文件丢失 编辑:程序博客网 时间:2024/04/30 15:56

@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;@DatabaseFieldprivate String name;@DatabaseFieldprivate String sex;@DatabaseFieldprivate 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 stubreturn 0;}public void writeToParcel(Parcel dest, int flags) {// TODO Auto-generated method stubdest.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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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 blocke.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 blocke.printStackTrace();}tv.setText(sb);setContentView(tv);}@Overrideprotected 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


0 0
原创粉丝点击