您的位置:首页 > 数据库

关系数据库 OMRLite

2015-11-11 17:42 288 查看
package com.example.ormlite;

import java.sql.SQLException;
import java.util.List;

import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.ForeignCollection;
import com.j256.ormlite.field.ForeignCollectionField;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

private Dao<Student,Integer> mUserDao;
private Dao<AClass,Integer> mClassDao;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ORMLiteDatabaseHelper mDatabaseHelper = ORMLiteDatabaseHelper.getInstance(this);

mUserDao = mDatabaseHelper.getUserDao();
mClassDao =mDatabaseHelper.getClassDao();

//创建一个班
for (int j = 0; j < 3; j++) {
AClass ac1= new AClass();
ac1.class_id = j;
ac1.name=j+"班";

try {
mClassDao.createIfNotExists(ac1);
} catch (Exception e1) {

e1.printStackTrace();
}

//创建5个学生并且挂接到1班
int start=j*5;
for (int i = j*3; i < j*3+5; i++) {
Student user = new Student();

user.student_id = i;
user.name = "周"+i;
user.age = 18+i;
user.sex = "男";

//开始挂接到1班
user.aclass = ac1;

try {
mUserDao.createOrUpdate(user);
} catch (SQLException e) {

}
}

}
//输出结果

try {
AClass cls1 = mClassDao.queryForId(1);

ForeignCollection<Student> students = cls1.student;
for (Student user : students) {
Log.d("学生", user.name + "," + user.age + "," + user.aclass.name+","+user.sex);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*private void queryAllData() {
Log.d("查询结果,开始", "********************");

List<Student> users = null;

// 全局查询
try {
users = mUserDao.queryForAll();
} catch (Exception e) {
e.printStackTrace();
}

for (Student user : users) {
Log.d("数据库数据", user.student_id + "," + user.name + "," + user.age
+ "," + user.sex);
}

Log.d("查询结果,结束", "******************");
}
}*/


package com.example.ormlite;

import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;

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;

public class ORMLiteDatabaseHelper extends OrmLiteSqliteOpenHelper{

private static ORMLiteDatabaseHelper mDatabaseHelper = null;

private final static String DataBase_NAME = "ormlite.db";
private final static int DataBase_VERSION = 1;

private Dao<Student, Integer> mStudentDao = null;
private Dao<AClass, Integer> mClassDao = null;

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);
}
return mDatabaseHelper;
}

@Override
public void onCreate(SQLiteDatabase arg0, ConnectionSource connectionSource) {

Log.d(this.getClass().getName(), "ORMLite数据库-> onCreate");

try {
TableUtils.createTableIfNotExists(connectionSource, Student.class);
TableUtils.createTableIfNotExists(connectionSource, AClass.class);
} catch (SQLException e) {

e.printStackTrace();
}
}

@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource arg1, int arg2,
int arg3) {

}

public Dao<AClass, Integer> getClassDao() {
if (mClassDao == null) {
try {
mClassDao = getDao(AClass.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
return mClassDao;
}

public Dao<Student,Integer>getUserDao(){
if(mStudentDao == null){
try {
mStudentDao = getDao(Student.class);
} catch (SQLException e) {

e.printStackTrace();
}
}
return mStudentDao;
}

@Override
public void close() {

super.close();
mClassDao = null;
mStudentDao = null;
}

}


package com.example.ormlite;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "users")
public class Student {

public Student(){

}

@DatabaseField(id = true,columnName = "student_id")
public int student_id;

@DatabaseField(columnName = "name")
public String name;

@DatabaseField(columnName = "age")
public int age;

@DatabaseField(columnName = "sex")
public String sex;

@DatabaseField(foreign = true,foreignAutoRefresh = true)
public AClass aclass;
}


package com.example.ormlite;

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 = "classes")
public class AClass {

@DatabaseField(id = true)
public int class_id;

@DatabaseField(dataType = DataType.STRING)
public String name;

@ForeignCollectionField(eager = false)
public ForeignCollection<Student> student = null;

public AClass(){

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: