关系数据库 OMRLite

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(){
		
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值