Android ORMLite框架的DatabaseHelper简单建立

//helper类写法参考自https://blog.csdn.net/lmj623565791/article/details/39122981

//import的包这里省略不写。。

//必须继承OrmLiteSqliteOpenHelper

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {


// 数据库名

private static final String DB_NAME = "mytable2.db";


/*

 * Dao,一表一个

 */

private Dao<Username, Integer> userDao;

private Dao<Schedule, Integer> scheduleDao;

private Dao<Student, Integer> studentDao;

private Dao<CurClassCon, Integer> CurClassConDao;

private Dao<TotalClassCon, Integer> TotalClassConDao;


public DatabaseHelper(Context context) {  //方法重载

super(context, DB_NAME, null, 2);

}


// 创建表

@Override

public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {

try {

TableUtils.createTable(arg1, Username.class);

TableUtils.createTable(arg1, Schedule.class);

TableUtils.createTable(arg1, Student.class);

TableUtils.createTable(arg1, CurClassCon.class);

TableUtils.createTable(arg1, TotalClassCon.class);

} catch (SQLException e) { //异常捕获

Log.e(DatabaseHelper.class.getName(), "创建数据库失败", e);

e.printStackTrace();

}

}


// 更新表,arg1=curversion,arg2=oldversion,arg3=newversion

@Override

public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2,

int arg3) {


try {

// 删除后建立到数据库中

TableUtils.dropTable(arg1, Username.class, true);

TableUtils.dropTable(arg1, Schedule.class, true);

TableUtils.dropTable(arg1, Student.class, true);

TableUtils.dropTable(arg1, CurClassCon.class, true);

TableUtils.dropTable(arg1, TotalClassCon.class, true);

onCreate(arg0, arg1);

} catch (SQLException e) {

Log.e(DatabaseHelper.class.getName(), "更新数据库失败", e);

e.printStackTrace();

}


}

 /** 

     * 单例获取该Helper

     *  

     * @param context 外部传入上下文对象

     * @return 

     */  

private static DatabaseHelper instance;  

    public static synchronized DatabaseHelper getHelper(Context context)  

    {  

        context = context.getApplicationContext();  

        if (instance == null)  

        {  

            synchronized (DatabaseHelper.class)  

            {  

                if (instance == null)  

                    instance = new DatabaseHelper(context);  

            }  

        }  

  

        return instance;  

    }  

    

/**

 * 获得UserDao

 * 

 * @return

 * @throws SQLException

 */

public Dao<Username, Integer> getUserDao() throws SQLException {

if (userDao == null) {

userDao = getDao(Username.class);// 得到username表

}

return userDao;

}


//以下是各种Dao的获取,一个Dao一个,当然也可以归并成一个方法,不过当时懒得写,就直接一Dao一个的写下来了,反正不多

/**

 * 获得ScheduleDao

 * 

 * @return

 * @throws SQLException

 */

public Dao<Schedule, Integer> getScheduleDao() throws SQLException {

if (scheduleDao == null) {

scheduleDao = getDao(Schedule.class);// 得到Schedule表

}

return scheduleDao;

}

/**

 * 获得StudentDao

 * 

 * @return

 * @throws SQLException

 */

public Dao<Student, Integer> getStudentDao() throws SQLException {

if (studentDao == null) {

studentDao = getDao(Student.class);// 得到Student表

}

return studentDao;

}

/**

 * 获得CurClassConDao

 * 

 * @return

 * @throws SQLException

 */

public Dao<CurClassCon, Integer> getCurClassConDao() throws SQLException {

if (CurClassConDao == null) {

CurClassConDao = getDao(CurClassCon.class);// 得到CurClassCon表

}

return CurClassConDao;

}

/**

 * 获得TotalClassConDao

 * 

 * @return

 * @throws SQLException

 */

public Dao<TotalClassCon, Integer> getTotalClassConDao() throws SQLException {

if (TotalClassConDao == null) {

TotalClassConDao = getDao(TotalClassCon.class);// 得到TotalClassCon表

}

return TotalClassConDao;

}


/**

 * 释放资源

 */

@Override

public void close() {

super.close();

userDao = null;

scheduleDao=null;

studentDao=null;

TotalClassConDao=null;

CurClassConDao=null;

}


}

参考文章:https://blog.csdn.net/lmj623565791/article/details/39122981

评论
热度(1)