ORMLiteDatabase的简单使用并且与其他的表相互联系
来源:互联网 发布:jsp中如何引用js文件 编辑:程序博客网 时间:2024/06/05 18:38
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, "<<<<<<<<<<<"); }}
0 0
- ORMLiteDatabase的简单使用并且与其他的表相互联系
- 人与其他事物的联系
- NSString与其他类的相互转换
- Mysql与其他数据库的简单比较
- 工厂模式与其他几种模式的联系
- JavaScript与其他语言的区别与联系01
- C# 泛型与其他类型的相互转换
- String类型与其他类型的相互转换
- CheckBox与其他控件的组合使用
- 字符指针与其他类型的指针的使用区别
- error LNK2005默认库与其他库的使用冲突
- IBM Solid 内存数据库与其他数据库的综合使用
- error LNK2005默认库与其他库的使用冲突
- LNK4098: 默认库“MSVCRT”与其他库的使用冲突
- LNK4098: 默认库“MSVCRT”与其他库的使用冲突
- barManager与其他控件配合使用出现的问题
- Sqlite中使用SQL与其他数据库的区别
- 【android】Sqlite中使用SQL与其他数据库的区别
- 扫雷
- Java 学习之集合框架---Set
- 剑指offer,面试题一:赋值运算符函数
- 【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送
- 更改oracle字符集
- ORMLiteDatabase的简单使用并且与其他的表相互联系
- 李世民问唐僧:你成功靠的是什么?
- wayland应用程序中touch事件的实现
- 根据两点经纬度计算距离
- Codeforces Round #333 (Div. 2) A. Two Bases
- perl中文处理
- Android 定义自己的Application
- 大整数乘法
- POJ_P1273 Drainage Ditches(模板题+网络流)