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的应用的更多相关文章

  1. Android ORMLite ForeignCollection关联外部集合

     <Android ORMLite ForeignCollection关联外部集合>    Android ORMLite ForeignCollection关联外部集合的功能,适合层 ...

  2. Android Ormlite 学习笔记1 -- 基础

    Ormlite 是一个开源Java数据实体映射框架.其中依赖2个核心类库: 1.ormlite-android-4.48.jar 2.ormlite-core-4.48.jar 新建项目,引用上面2个 ...

  3. Android—Ormlite框架简单的操作数据库

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  4. Android ORMLite 框架的入门用法

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  5. android OrmLite

    最近在使用ormlite框架进行数据库的操作,下面简单的写个demo来学习下 1.下载jar包 这里使用的是ormlite-core-5.0.jar 和 ormlite-android-5.0.jar ...

  6. Android ormlite like() function is not working

    //http://stackoverflow.com/questions/7642161/android-ormlite-like-function-is-not-working try { Quer ...

  7. Android Ormlite 学习笔记2 -- 主外键关系

    以上一篇为例子,进行主外键的查询 定义Users.java 和 Role.java Users -- Role 关系为:1对1 即父表关系 Role -- Users 关系为:1对多 即子表关系 下面 ...

  8. android ormlite queryBuilder.where() 多条件

    QueryBuilder<VideoTagInfo, Integer> queryBuilder = videoTagInfoIntegerDao.queryBuilder();try { ...

  9. android ormlite 清空表

    delete from TableName; //清空数据 update sqlite_sequence SET seq = where name ='TableName';//自增长ID为0 Sam ...

随机推荐

  1. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  2. ruby oop学习

    class Man def initialize(name,age) @name=name @age=age end def sayName puts @name end def sayAge put ...

  3. C语言中的宏总结

    宏定义分为两种: 1.变量式宏定义,如 #define abc def #define str "string" #define num 100 2.函数式宏定义, #define ...

  4. tlplayer,wzplayer所有平台通用加密测试视频

    此视频文件为通用版本,支持tlplayer,wzplayer,能在ios,android,windows,mac等平台上使用,发布此文件紧为方便用户测试. 下载地址:http://www.coolra ...

  5. Getting Started Tutorial

    Getting Started Tutorial The topics contained in this section are intended to give you quick exposur ...

  6. Oracle 常用符号CHR

    select  chr(92)||chr(102) from dual; \f select  chr(92)||chr(110) from dual; \n select  chr(92)||chr ...

  7. poj3254Corn Fields(状压)

    http://poj.org/problem?id=3254 第一个状压题 思路挺好想 用二进制表示每行的状态 然后递推 用左移 右移来判断是不是01间隔出现 c大神教的 我的代码WA在这个地方了.. ...

  8. Linux kernel 内存泄露本地信息泄露漏洞

    漏洞名称: Linux kernel 内存泄露本地信息泄露漏洞 CNNVD编号: CNNVD-201311-467 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级:    ...

  9. Android开发视频学习(1)

    S01E02_搭建Android开发环境 设置ANDROID_SDK_HOME环境变量,用于指定Android模拟器的目录,官方文档没有说要设置. S01E03_Android创世纪 Android根 ...

  10. 找出Java进程中大量消耗CPU

    原文:https://github.com/oldratlee/useful-shells useful-shells 把平时有用的手动操作做成脚本,这样可以便捷的使用. show-busy-java ...