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
原创粉丝点击