ormlite是什么?
简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们的数据库中,在Android中是SQLite,数据中的字段就是我们定义实体的成员变量。
官网地址为www.ormlite.com;我们需要在官网下两个依赖的jar包然后放在项目的libs目录中。
如何使用oralite
添加ormlite注解
这是我们新建的Message类,如图,当然还要设置get/set方法和一个无参构造函数
学过hibernate应该知道jpa,这里我们也可以使用标准的jpa来代替。
然后新建个类继承OrmLiteSqliteOpenHelper来生存数据库结构信息。
1 public class DatabaseHelper extends OrmLiteSqliteOpenHelper { 2 3 private static final String DB_NAME = "mydata.db"; // 数据库名称 4 private static final int version = 2; // 数据库版本 5 //定义每一张表的成员变量,其中一个功能:关闭helper,所有DAO对象清理 6 private Dao<Message, Integer> messageDao; 7 8 public Dao<Message, Integer> getMessageDao() { 9 if (messageDao==null){ 10 try { 11 messageDao = getDao(Message.class); 12 } catch (SQLException e) { 13 e.printStackTrace(); 14 } 15 } 16 return messageDao; 17 } 18 19 public DatabaseHelper(Context context) { 20 super(context, DB_NAME, null, version); 21 } 22 23 /* 24 * 1.此方法,不会自定执行,因为它不是回调函数 25 * 2.最好也不要自己调用,因为只应该执行1次 26 */ 27 @Override 28 public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) { 29 // TODO Auto-generated method stub 30 31 } 32 33 /* 34 * 此方法,不会自定执行,因为它不是回调函数 35 */ 36 @Override 37 public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2, 38 int arg3) { 39 // TODO Auto-generated method stub 40 41 } 42 43 @Override 44 public void close() { 45 super.close(); 46 if (messageDao!=null){ 47 messageDao = null; 48 } 49 } 50 51 }
然后再我们android项目的mainactivity调用;
1 public class MainActivity extends Activity { 2 3 private List<Message> messageList;//用于ORMLite 的演示 4 private DatabaseHelper db_helper; //其它activity或者service都无法获得 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.weixin); 10 11 } 12 13 14 //UI呈现在眼前 15 @Override 16 protected void onResume(){ 17 Log.i("ok", "onResume,界面出现了,app:"+app); 18 19 使用ORMLite 20 db_helper = new DatabaseHelper(this); 21 22 Dao<Message, Integer> message_dao = db_helper.getMessageDao(); 23 try { 24 messageList = message_dao.queryForAll(); //查询所有 25 //Log.i("ormlite", "记录条数:"+messageList3.size()); 26 String t = "记录条数:"+messageList3.size(); 27 Toast.makeText(this, t, Toast.LENGTH_LONG).show(); 28 29 } catch (SQLException e) { 30 String t = "记出错:"+e.getMessage(); 31 Toast.makeText(this, t, Toast.LENGTH_LONG).show(); 32 } 33 34 super.onResume(); 35 } 36 37 38 @Override 39 //UI完全消失在眼前,完全被另外一个进程覆盖 40 protected void onPause(){ 41 Log.i("ok", "onPause,被抛弃"); 42 db_helper.close();//??到底要不要? 43 super.onPause(); 44 } 45 46 47 48 }
这里附上ormlite的相关语句的使用方法:http://blog.csdn.net/industriously/article/details/50790624 (转载)