1、下载jar

具体到Android,需要在 http://ormlite.com/releases 页面下载两个jar 包(本文基于ORMLite的版本是:ormlite 4.49-SNAPSHOT):
(1)core列表下的jar包;
(2)android列表下的jar包。
如图所示:

将上面的两个jar包下载后放到Android工程项目中的libs包中,如图所示:

以上完成后,ORMLite开发环境搭建就完成了,接下来就可以使用了。

2、代码:

表student.java和AClass.java

 package com.zzw.ormlitedatabasetest;

 import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "Student")
public class Student { @DatabaseField(id = true, columnName = "Student_id")
public int Student_id;
@DatabaseField(columnName = "name")
public String name;
@DatabaseField(columnName = "sex")
public String sex;
@DatabaseField(columnName = "age")
public int age;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
public AClass aClass; public Student() { } public Student(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
} @Override
public String toString() {
return "Student [Student_id=" + Student_id + ", name=" + name + ", sex=" + sex + ", age=" + age + ",className="
+ aClass.name + "]";
} }

Student

 package com.zzw.ormlitedatabasetest;

 import com.j256.ormlite.dao.ForeignCollection;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.field.ForeignCollectionField;
import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "Classess")
public class AClass { @DatabaseField(id = true, columnName = "classess_id")
public int classess_id;
@DatabaseField(dataType = DataType.STRING)
public String name;
@ForeignCollectionField(eager = false)
public ForeignCollection<Student> students = null; public AClass() {
super();
} public AClass(int classess_id, String name, ForeignCollection<Student> students) {
super();
this.classess_id = classess_id;
this.name = name;
this.students = students;
} }

AClass

ORMLite数据库管理工具类ORMLiteDatabaseHelper.java:

 package com.zzw.ormlitedatabasetest;

 import java.sql.SQLException;

 import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log; public class OrmLiteDatabaseHelper extends OrmLiteSqliteOpenHelper {
private static final String TAG = "OrmLiteDatabaseHelper"; public static OrmLiteDatabaseHelper mDatabaseHelper = null; public Dao<Student, Integer> mStudentDao = null;
public Dao<AClass, Integer> mAClassDao = null; public static String database_NAME = "school.db";
public static int database_VERSION = 1; public OrmLiteDatabaseHelper(Context context, String databaseName, CursorFactory factory, int databaseVersion) {
super(context, databaseName, factory, databaseVersion);
} public static OrmLiteDatabaseHelper getInstance(Context context) {
if (mDatabaseHelper == null) {
mDatabaseHelper = new OrmLiteDatabaseHelper(context, database_NAME, null, database_VERSION);
}
Log.d(TAG, "数据库school.db创建成功");
return mDatabaseHelper;
} @Override
public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {
try {
TableUtils.createTableIfNotExists(arg1, AClass.class);
Log.e(TAG, "AClass表在School.db中被创建");
TableUtils.createTableIfNotExists(arg1, Student.class);
Log.e(TAG, "Student表在School.db中被创建");
} catch (SQLException e) {
e.printStackTrace();
} } @Override
public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2, int arg3) { } public Dao<Student, Integer> getStudentDao() {
if (mStudentDao == null) {
try {
mStudentDao = getDao(Student.class);
Log.e(TAG, "得到Student的Dao");
} catch (SQLException e) {
e.printStackTrace();
}
}
return mStudentDao;
} public Dao<AClass, Integer> getAClassDao() {
if (mAClassDao == null) {
try {
mAClassDao = getDao(AClass.class);
Log.e(TAG, "得到AClass的Dao");
} catch (SQLException e) {
e.printStackTrace();
}
}
return mAClassDao;
} @Override
public void close() {
super.close();
if (mAClassDao != null) {
mAClassDao = null;
}
if (mStudentDao != null) {
mStudentDao = null;
}
}
}

MainActivity:

 package com.zzw.ormlitedatabasetest;

 import java.sql.SQLException;
import java.util.List; import com.j256.ormlite.dao.Dao; import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private Dao<AClass, Integer> mAClassDao = null;
private Dao<Student, Integer> mStudentDao = null; AClass aClass1, aClass2, aClass3, aClass4, aClass5; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); OrmLiteDatabaseHelper mOrmLiteDatabaseHelper = OrmLiteDatabaseHelper.getInstance(this); mAClassDao = mOrmLiteDatabaseHelper.getAClassDao();
mStudentDao = mOrmLiteDatabaseHelper.getStudentDao(); } @Override
protected void onStart() {
Log.d(TAG, ">>>>>>>>>>>>");
super.onStart();
int AClasses_count = createAClasses();
if (AClasses_count == 5) {
try {
aClass1 = mAClassDao.queryForId(1);
aClass2 = mAClassDao.queryForId(2);
aClass3 = mAClassDao.queryForId(3);
aClass4 = mAClassDao.queryForId(4);
aClass5 = mAClassDao.queryForId(5); createStudents(); } catch (Exception e) {
e.printStackTrace();
}
} else {
Toast.makeText(this, "班级创建错误", 0).show();
}
queryAllStudents();
} private void createStudents() {
Log.d(TAG, "学生创建开始------>");
Student student = new Student();
for (int i = 1; i <= 20; i++) {
student.Student_id = i;
student.age = (int) (Math.random() * 100);
if (i % 2 == 0) {
student.sex = "男";
} else {
student.sex = "女";
}
if (i > 0 && i <= 4) {
student.aClass = aClass1;
student.name = "陶" + i;
} else if (i > 4 && i <= 8) {
student.aClass = aClass2;
student.name = "李" + i;
} else if (i > 8 && i <= 12) {
student.aClass = aClass3;
student.name = "阿" + i;
} else if (i > 12 && i <= 16) {
student.aClass = aClass4;
student.name = "曾" + i;
} else {
student.aClass = aClass5;
student.name = "蒋" + i;
} try {
mStudentDao.createIfNotExists(student);
} catch (SQLException e) {
e.printStackTrace();
}
}
Log.d(TAG, "学生创建成功------>");
} private int createAClasses() {
Log.d(TAG, "班级创建开始------>");
AClass aClass = new AClass();
int AClasses_count = 0;
for (int i = 1; i <= 5; i++) {
aClass.classess_id = i;
aClass.name = "高三" + i + "班";
try {
mAClassDao.createIfNotExists(aClass);
AClasses_count++;
} catch (SQLException e) {
e.printStackTrace();
}
}
Log.d(TAG, "班级创建成功------>");
return AClasses_count;
} private void queryAllStudents() {
Log.d(TAG, "查询全部学生开始------>>>>");
try {
List<Student> students = mStudentDao.queryForAll();
if (students != null && students.size() > 0) {
for (Student student : students) {
Log.i(TAG, student.toString());
}
}
} catch (SQLException e) {
e.printStackTrace();
}
Log.d(TAG, "查询全部学生完毕------>>>>");
} @Override
protected void onDestroy() {
super.onDestroy();
if (mAClassDao != null) {
mAClassDao = null;
}
if (mStudentDao != null) {
mStudentDao = null;
}
Log.d(TAG, "<<<<<<<<<<<");
} }

ORMLiteDatabase的简单使用并且与其他的表相互联系的更多相关文章

  1. java 散列与散列码探讨 ,简单HashMap实现散列映射表运行各种操作示列

    java 散列与散列码探讨 ,简单HashMap实现散列映射表运行各种操作示列 package org.rui.collection2.maps; /** * 散列与散列码 * 将土拔鼠对象与预报对象 ...

  2. Hive数据导入——数据存储在Hadoop分布式文件系统中,往Hive表里面导入数据只是简单的将数据移动到表所在的目录中!

    转自:http://blog.csdn.net/lifuxiangcaohui/article/details/40588929 Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop ...

  3. mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

    1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都 ...

  4. python3: 简单4步骤输出九九乘法表

    如何输出一个九九乘法表,使用python语言,嵌套循环,4行代码就可以实现,瞬间感觉python真的很简单~ 代码: for i in range(1,10): for j in range(1,i+ ...

  5. PL/SQL简单使用——导入、导出数据表

    1.使用PL/SQL导出.导入表 在使用PL/SQL操作oracle数据库时,经常使用的一个操作就是将自己写的数据表导出,或者想把他人的数据表导入到自己的数据库中.虽然是很简单的操作,但自己之前一直出 ...

  6. redis底层数据结构--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表

    1.动态字符串 redis中使用c语言的字符床存储字面量,默认字符串存储采用自己构建的简单动态字符串SDS(symple dynamic string) redis包含字符串的键值对都是用SDS实现的 ...

  7. Python基础总结之第六天开始【先简单认识一次函数】(新手可相互督促)

    午休后,看看电视,在回顾下新的知识----函数.相信很多小伙伴在学习python后 ,学到函数就会有一部分人放弃了,从努力到放弃(内容过于真实) 好希望我也能有很多粉丝,hhh.... 函数: 什么是 ...

  8. 写一个简单易用可扩展vue表单验证插件(vue-validate-easy)

    写一个vue表单验证插件(vue-validate-easy) 需求 目标:简单易用可扩展 如何简单 开发者要做的 写了一个表单,指定一个name,指定其验证规则. 调用提交表单方法,可以获取验证成功 ...

  9. 【redis】redis底层数据结构原理--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表等

    redis有五种数据类型string.list.hash.set.zset(字符串.哈希.列表.集合.有序集合)并且自实现了简单动态字符串.双端链表.字典.压缩列表.整数集合.跳跃表等数据结构.red ...

随机推荐

  1. JAXB注解【转】

    http://blog.csdn.net/lw371496536/article/details/6942045 JAXB(Java API for XML Binding),提供了一个快速便捷的方式 ...

  2. 150 Opening ASCII mode data connection. FTP连接的PASV和PORT方式

    FTP连接服务器时出现 150 Opening ASCII mode data connection.一般是客户端设置PORT 主动方式连接造成的.切换成PASV 被动模式后一般能连接上. 一.什么是 ...

  3. Laxcus大数据管理系统2.0(14)- 后记

    后记 Laxcus最早源于一个失败的搜索引擎项目,项目最后虽然终止了,但是项目中的部分技术,包括FIXP协议.Diffuse/Converge算法.以及很多新的数据处理理念却得以保留下来,这些成为后来 ...

  4. jmeter随笔(8)--请求post的 数据为空

    1.请求post的 数据为空 分析:发现是java 解决方法: 查看 2.获取文本中数据乱码问题 问题:文本保存为UTF-8编码格式 获取的数据乱码: 分析:这是编码格式的问题 解决办法: 将文件保存 ...

  5. It English 每日更新

    unary operator 一元运算符 short circuit evaluation 短路经查询

  6. Flex4/Flash开发在线音乐播放器 , 含演示地址

    要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...

  7. 安装office2013时弹出microsoft setup bootstrapper已停止工作,接着就不能安装了

    只是说一下自己的解决方法: 我的原因是注册表没有删除改进. 1.输入regedit 2.找到HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentV ...

  8. 华为OJ平台——查找组成一个偶数最接近的两个素数

    import java.util.Scanner; /** * 问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况, * 本题目要求输出组成指定偶数的两个素数差值最小 ...

  9. 深入理解ASP.NET的内部运行机制(转)

    WebForms和WebServices作为.NET平台构建Web程序的两大利器,以其开发简单.易于部署的特点得到了广泛的应用,但殊不知微软公司在背后为我们做了大量的基础性工作,以至于我们开发人员只需 ...

  10. JS常用的设计模式(10)——模版方法模式

    模式方法是预先定义一组算法,先把算法的不变部分抽象到父类,再将另外一些可变的步骤延迟到子类去实现.听起来有点像工厂模式( 非前面说过的简单工厂模式 ). 最大的区别是,工厂模式的意图是根据子类的实现最 ...