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. 教你6步定制你的Ubuntu桌面

    转自教你6步定制你的Ubuntu桌面 对于那些想要一个易于使用的界面的用户,Ubuntu是一个很好的Linux发行版,并且对于一个Linux新手也可以说是最好的Linux发行版.不过这产生了一些副作用 ...

  2. Firefly官方教程之Distributed使用文档

    原地址:http://bbs.gameres.com/thread_224191.html distributed使用文档1.distributed说明该模块主要封装了各个服务进程间进行通信的方法.n ...

  3. 不改变中间层,如何玩转 .NET 的远程处理功能?

    原文链接: https://msdn.microsoft.com/enus/library/aa289846(v=vs.71).aspx Visual Studio .NET 2003 该方案展示了传 ...

  4. opencv for python 之 突出点检测

    opencv下载地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/OpenCV-2.4.3.exe/dow ...

  5. POJ2220+DFS

    题意:给出n个宝物,m个寻宝人. 每个寻宝人对n个宝物都有一个估价. 从这些估价中挑出某些,是的价值差最小. dfs..没什么好说的,暴力枚举! /* 搜索+枚举 */ #include<std ...

  6. Druid数据库连接池两种简单使用方式

    阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好 简单使用介绍 Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部 ...

  7. 控件动态产生器(使用RegisterClasses提前进行注册)

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...

  8. 《ArcGIS Engine+C#实例开发教程》

    原文:<ArcGIS Engine+C#实例开发教程> 摘要:<ArcGIS Engine+C#实例开发教程>,面向 ArcGIS Engine(以下简称AE)开发初学者,本教 ...

  9. 屏幕尺寸,屏幕分辨率,屏幕密度,各种长宽单位(px,sp,dp,in.pt,mm)

    常见长宽单位表 名称 单位缩写 单位全拼 介绍 屏幕尺寸 '' 或 in inch 屏幕的大小,通常用屏幕对角线的长度表示.单位是寸 屏幕分辨率 px pixels 整个屏幕的像素数,一般用屏幕的像素 ...

  10. bzoj2661

    不难想到,先枚举建图然后跑最大费用最大流 也不难想到一种将每个数拆成两个点i1,i2,所有满足条件的数之间 把所有满足条件之间的数x,y连边x1--->y2,y1--->x2,流量为1,费 ...