锁定老帖子 主题:分享自用Android ORM工具类。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-07
最后修改:2012-05-07
添加 查询 Step 1:创建实体对象 @Table(name = "book") public class Book { @Id private Long id; @Column(name = "book_name") private String bookName; public Book() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } } Step 2:创建 DatabaseHelper public class DatabaseHelper extends SQLiteOpenHelper { public static final String BOOK_TABLE_NAME = "orm_book"; public static final String DATABASE_NAME = "OrmDemo.db"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { TableUtils.createTable(db, true, Book.class); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { TableUtils.dropTable(db, Book.class); onCreate(db); } } Step 3:创建 DatabaseService public class DatabaseService { private Context mContext; private DatabaseHelper mDatabaseHelper; private SQLiteDatabase mSQLiteDatabase; private AhibernateDao<Book> mBookDao; public DatabaseService(Context context) { this.mContext = context; this.mDatabaseHelper = new DatabaseHelper(mContext); this.mSQLiteDatabase = mDatabaseHelper.getWritableDatabase(); this.mBookDao = new AhibernateDao<Book>(this.mSQLiteDatabase); } // ===================book begin=========================== public List<Book> getBooksByWhere(Map<String, String> where) { List<Book> bookList = mBookDao.queryList(Book.class, where); return bookList; } public List<Book> getBooks(Book book) { List<Book> bookList = mBookDao.queryList(book); return bookList; } public int addBook(Book book) { return mBookDao.insert(book); } public void updateBook(Book book, Map<String, String> where) { mBookDao.update(book, where); } public void deleteBook(Map<String, String> where) { mBookDao.delete(Book.class, where); } // ===================book end=============================== Step 4:创建Activity public class OrmDemoActivity extends Activity { /** Called when the activity is first created. */ DatabaseService mDatabaseService; Button mAddButton; Button mQueryButton; TextView mTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mAddButton = (Button) findViewById(R.id.add); mQueryButton = (Button) findViewById(R.id.query); mTextView = (TextView) findViewById(R.id.count); mDatabaseService = new DatabaseService(this); mAddButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Book book = new Book(); Random ra = new Random(); book.setId(ra.nextLong()); book.setBookName("demo"); mDatabaseService.addBook(book); Toast.makeText(OrmDemoActivity.this, "添加成功", Toast.LENGTH_SHORT).show(); } }); mQueryButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mTextView.setText("总共有" + mDatabaseService.getBooksByWhere(null).size() + "本书"); } }); } 工具类源码地址:http://ahibernate.googlecode.com/svn/trunk/ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-07
private AhibernateDao<Book> mBookDao;
这个类在那? |
|
返回顶楼 | |
发表时间:2012-05-07
额。。看见了,各种反射啊?这东西用起来不慢啊?
|
|
返回顶楼 | |
发表时间:2012-05-07
lc32781971 写道 private AhibernateDao<Book> mBookDao;
这个类在那? 在lib文件夹下的jar包里 |
|
返回顶楼 | |
发表时间:2012-05-07
lc32781971 写道 额。。看见了,各种反射啊?这东西用起来不慢啊?
速度还行。CPU 1GHZ。。。 |
|
返回顶楼 | |
发表时间:2012-05-07
查询db要用thread,哥
|
|
返回顶楼 | |
发表时间:2012-05-07
nathan.wu 写道 查询db要用thread,哥
这个可以根据项目的实际情况来。只要不影响到UI线程,一般是没有问题的 |
|
返回顶楼 | |
发表时间:2012-05-08
slam33661490 写道 lc32781971 写道 额。。看见了,各种反射啊?这东西用起来不慢啊?
速度还行。CPU 1GHZ。。。 不是每个人的手机 都是1Ghz的。 |
|
返回顶楼 | |
发表时间:2012-05-08
看起来还不错~之前看到国外的ormlite,jar包似乎有300KB太大了。
反射引起的性能我觉得不是很要紧 不过楼主给的地址似乎上不去啊? |
|
返回顶楼 | |
发表时间:2012-05-08
sd6733531 写道 看起来还不错~之前看到国外的ormlite,jar包似乎有300KB太大了。
反射引起的性能我觉得不是很要紧 不过楼主给的地址似乎上不去啊? 那个地址可以用SVN直接check out下来。 http://ahibernate.googlecode.com 这个是主页地址 |
|
返回顶楼 | |