android ORMlite的应用
Posted 夏风微凉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android ORMlite的应用相关的知识,希望对你有一定的参考价值。
ORMLite -轻量级的对象关系映射(ORM)
如果你需要在android中使用ORMLite 你需要进入官方网站 http://ormlite.com/ 中下载
下载了这两个包以后,你还需要在对应的项目中配置这两个包
然后你就可以开始写你的数据库语句了!!!
我们一步一步来建立一个简单的ORMLite的小例子
我们要实现的也就是利用ORMLite来呈现一个列表集合
先来看布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/list_show_Person" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
既然是要操作数据库,那么就得创建数据库
package com.example.learn_ormlite; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class SQLiteHelper extends SQLiteOpenHelper { private final static String DbName="test_Person.db"; private static int version=1; public SQLiteHelper(Context context) { super(context, DbName, null, version); } @Override public void onCreate(SQLiteDatabase db) { String sql="create table person(id integer primary key autoincrement,name text)"; db.execSQL(sql); ContentValues con=new ContentValues(); con.put("name", "text1"); db.insert("person",null,con); db.insert("person",null,con); db.insert("person",null,con); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
然后我们来配置这次的主角,
package com.example.learn_ormlite; import java.sql.SQLException; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.support.ConnectionSource; public class myORMLiteHelper extends OrmLiteSqliteOpenHelper { private final static String DbName="test_Person.db"; private static int version=1; private Dao<Person,Integer> person_db=null; public myORMLiteHelper(Context context) { super(context, DbName, null, version); } @Override public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) { } public Dao<Person,Integer> getPerson() { if(person_db==null) try { person_db=getDao(Person.class); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return person_db; } @Override public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2, int arg3) { } @Override public void close() { if(person_db!=null) person_db=null; super.close(); } }
我们可以看到,上面用红色标记出来的,说明了ORMLite是自动去找到这个数据库的,也就是说用数据库名称和版本绑定数据库,
但是现在我们只是告诉它我们要得到一个东西,但是怎么得到的规则还没有定下来,所有,我们还得还定义规则
package com.example.learn_ormlite; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "person") public class Person { @DatabaseField(id = true) private Integer id; @DatabaseField(columnName="name") private String name; public Person() { } public Person(String name) { this.name=name; } public void setUid(int uid) { this.id = uid; } public Integer getUid() { return id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return name; } }
我们所使用的规则就是,在需要映射的字段上面添加一些属性,当然这些属性必须得和数据库里面的关系相对应,
然后我们就可以使用这个表了
package com.example.learn_ormlite; import java.sql.SQLException; import java.util.List; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; import com.j256.ormlite.dao.Dao; public class MainActivity extends Activity { private ListView listShow; private List<Person> Tperson=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SQLiteHelper sql=new SQLiteHelper(this); SQLiteDatabase db= sql.getWritableDatabase(); db.close(); listShow=(ListView) findViewById(R.id.list_show_Person); myORMLiteHelper ml=new myORMLiteHelper(this); Dao<Person,Integer> db_person= ml.getPerson(); try { Tperson= db_person.queryForAll(); listShow.setAdapter(new ArrayAdapter<Person>(MainActivity.this,android.R.layout.simple_list_item_1,Tperson){}); } catch (SQLException e) { e.printStackTrace(); } } }
以上是关于android ORMlite的应用的主要内容,如果未能解决你的问题,请参考以下文章
Android ORM 框架之 Android中ORMLite应用基础
Android ORM 框架之 Android中ORMLite应用基础
java 一个独立的Java应用程序,用于为Android创建OrmLite的配置