android ORMlite的应用

要须心地收汗马,孔孟行世目杲杲。这篇文章主要讲述android ORMlite的应用相关的知识,希望能为你提供帮助。
ORMLite -轻量级的对象关系映射(ORM)如果你需要在android中使用ORMLite 你需要进入官方网站  http://ormlite.com/  中下载

android ORMlite的应用

文章图片

android ORMlite的应用

文章图片

 
  下载了这两个包以后,你还需要在对应的项目中配置这两个包
android ORMlite的应用

文章图片

然后你就可以开始写你的数据库语句了!!!
我们一步一步来建立一个简单的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>

【android ORMlite的应用】既然是要操作数据库,那么就得创建数据库
android ORMlite的应用

文章图片

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) {}}

然后我们来配置这次的主角,
android ORMlite的应用

文章图片

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; privateDao< Person,Integer> person_db=null; public myORMLiteHelper(Context context) { super(context, DbName, null, version); }@Override public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {} publicDao< 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是自动去找到这个数据库的,也就是说用数据库名称和版本绑定数据库,
但是现在我们只是告诉它我们要得到一个东西,但是怎么得到的规则还没有定下来,所有,我们还得还定义规则
android 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; } }

我们所使用的规则就是,在需要映射的字段上面添加一些属性,当然这些属性必须得和数据库里面的关系相对应,
然后我们就可以使用这个表了
android ORMlite的应用

文章图片

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); SQLiteDatabasedb= 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(); } } }

 

    推荐阅读