package com.nsmss.scuol.dao; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.nsmss.scuol.bean.UserData; import com.nsmss.scuol.common.DBHelper; public class UserDataDao { private DBHelper dbHelper; private SQLiteDatabase db; public UserDataDao(Context context) { dbHelper = new DBHelper(context); db = dbHelper.getWritableDatabase(); } /** * 插入一条用户信息 * 如果用户学号已存在,则更新数据 * @param uData 用户信息 * @return 本次插入的用户的UID */ public int insert(UserData uData) { try { UserData uDataNew = query(uData.getNum()); if ( uDataNew != null) { uData.setUid(uDataNew.getUid()); if(update(uData)) { return uData.getUid(); } else { return 0; } } String sql = "INSERT INTO user_data (uid, num, passwd, session, lastlogin, lastlogout, savepasswd, autologin, headshot) " + "VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?)"; db.execSQL(sql, new Object[] { uData.getNum(), uData.getPasswd(), uData.getSession(), uData.getLastlogin(), uData.getLastlogout(), uData.getSavepasswd(), uData.getAutologin(), uData.getHeadshot() }); Cursor c = db.rawQuery("SELECT last_insert_rowid()", null); c.moveToFirst(); return c.getInt(c.getColumnIndex("last_insert_rowid()")); } catch (Exception e) { return 0; } } /** * 按照UID删除用户记录 * @param uid * @return 删除成功返回true */ public boolean delete(int uid) { try { String sql = "DELETE FROM user_data WHERE uid = ?"; db.execSQL(sql, new Object[] {uid}); return true; } catch (Exception e) { return false; } } /** * 按照学号删除用户记录 * @param num * @return 删除成功返回true */ public boolean delete(String num) { try { String sql = "DELETE FROM user_data WHERE num = ?"; db.execSQL(sql, new Object[] {num}); return true; } catch (Exception e) { return false; } } /** * 修改用户信息 * @param uData * @return 如果参数为空或者uid为空都返回false */ public boolean update(UserData uData) { if (uData == null) { return false; } if (uData.getUid() == 0) { return false; } try { String sql = "UPDATE user_data SET num=?, passwd=?, session=?, lastlogin=?, lastlogout=?, savepasswd=?, " + "autologin=?, headshot=? WHERE uid=?"; db.execSQL(sql, new Object[] { uData.getNum(), uData.getPasswd(), uData.getSession(), uData.getLastlogin(), uData.getLastlogout(), uData.getSavepasswd(), uData.getAutologin(), uData.getHeadshot(), uData.getUid() }); return true; } catch (Exception e) { return false; } } /** * 通过UID查找用户信息 * @param uid * @return 用户信息 */ public UserData query(int uid) { try { UserData uData = new UserData(); String sql = "SELECT * FROM user_data WHERE uid="+uid; Cursor c = db.rawQuery(sql, null); if (c.getCount() == 0) { return null; } else { c.moveToFirst(); uData.setUid(uid); uData.setNum(c.getString(c.getColumnIndex("num"))); uData.setPasswd(c.getString(c.getColumnIndex("passwd"))); uData.setSession(c.getString(c.getColumnIndex("session"))); uData.setLastlogin(c.getInt(c.getColumnIndex("lastlogin"))); uData.setLastlogout(c.getInt(c.getColumnIndex("lastlogout"))); uData.setSavepasswd(c.getInt(c.getColumnIndex("savepasswd"))); uData.setAutologin(c.getInt(c.getColumnIndex("autologin"))); uData.setHeadshot(c.getString(c.getColumnIndex("headshot"))); return uData; } } catch (Exception e) { return null; } } /** * 通过学号查找用户信息 * @param num * @return 用户信息 */ public UserData query(String num) { try { UserData uData = new UserData(); String sql = "SELECT * FROM user_data WHERE num="+num; Cursor c = db.rawQuery(sql, null); if (c.getCount() == 0) { return null; } else { c.moveToFirst(); uData.setUid(c.getInt(c.getColumnIndex("uid"))); uData.setNum(c.getString(c.getColumnIndex("num"))); uData.setPasswd(c.getString(c.getColumnIndex("passwd"))); uData.setSession(c.getString(c.getColumnIndex("session"))); uData.setLastlogin(c.getInt(c.getColumnIndex("lastlogin"))); uData.setLastlogout(c.getInt(c.getColumnIndex("lastlogout"))); uData.setSavepasswd(c.getInt(c.getColumnIndex("savepasswd"))); uData.setAutologin(c.getInt(c.getColumnIndex("autologin"))); uData.setHeadshot(c.getString(c.getColumnIndex("headshot"))); return uData; } } catch (Exception e) { return null; } } }