• Android:利用本地服务器-创建数据库-构建用户表(注册)


    1.创建一个用户信息类,这里包括你想要记录下的用户信息

    public class UserData {
    
        private String userName;
        private String userPwd;
        private String userPhone;
        private String userMail;
        private String userAds;
        private int userId;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getUserPwd() {
            return userPwd;
        }
    
        public void setUserPwd(String userPwd) {
            this.userPwd = userPwd;
        }
        
        public String getUserPhone(){
            return userPhone ;
        }
        
        public void setUserPhone(String userPhone){
            this.userPhone = userPhone;
        }
        
        public String getUserMail(){
            return userMail;
        }
        
        public void setUserMail(String userMail){
            this.userMail = userMail;
        }
    
        public String getUserAds(){
            return userAds;
        }
        
        public void setUserAds(String userAds){
            this.userAds = userAds;
        }
        public int getUserId() {
            return userId;
        }
    
        public void setUserId(int userId) {
            this.userId = userId;
        }
    
        public UserData(int userId,String userName, String userPwd, String userPhone,String userMail,
                        String userAds) {
            super();
            this.userName = userName;
            this.userPwd = userPwd;
            this.userPhone = userPhone;
            this.userMail = userMail;
            this.userAds = userAds;
            this.userId = userId;
        }
    
        public UserData(String userName, String userPwd,String userPhone,String userMail,
                String userAds) {
            super();
            this.userName = userName;
            this.userPwd = userPwd;
            this.userPhone = userPhone;
            this.userMail = userMail;
            this.userAds = userAds;
        }
    
    }

    2.创建用户信息管理类

    public class UserDataManager {
    
        private static final String TAG = "UserDataManager";
        private static final String DB_NAME = "Register.db";
        public static final String TABLE_NAME = "Registry";
        public static final String ID = "_id";
        public static final String USER_NAME = "name";
        public static final String USER_PWD = "pwd";
        public static final String USER_PHONE = "phone";
        public static final String USER_MAIL = "mail";
        public static final String USER_ADD = "address";
        private static final int DB_VERSION = 1;   //版本号
        
        private static final String DB_CREATE = "CREATE TABLE " + TABLE_NAME + " (" +ID + " integer primary key,"+
                                    USER_NAME + " varchar,"    + USER_PWD + " varchar,"+ USER_PHONE + " varchar,"+ 
                                    USER_MAIL + " varchar," + USER_ADD + " varchar" +  ");";
        
        private Context mContext = null;
        private SQLiteDatabase mSQLiteDatabase = null;
        private DataBaseManagementHelper mDatabaseHelper = null;
    
        private static class DataBaseManagementHelper extends SQLiteOpenHelper {
    
            DataBaseManagementHelper(Context context) {
                super(context, DB_NAME, null, DB_VERSION);
            }
    
            @Override
            public void onCreate(SQLiteDatabase db) {
                // 调用时间:数据库第一次创建时onCreate()方法会被调用
                Log.i("调用测试", "OK");
                Log.i(TAG,"db.getVersion()="+db.getVersion());
                db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
                db.execSQL(DB_CREATE);
                Log.i(TAG, "db.execSQL(DB_CREATE)");
                Log.i(TAG, DB_CREATE);
            }
    
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                // 调用时间:如果DATABASE_VERSION值被改为别的数,系统发现现有数据库版本不同,即会调用onUpgrade
                Log.i(TAG, "DataBaseManagementHelper onUpgrade");
                db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
                onCreate(db);
            }
            
            @Override
            public void onOpen(SQLiteDatabase db)
            {
                super.onOpen(db);
                // 每次打开数据库之后首先被执行
                Log.d(TAG, "DatabaseHelper onOpen");
            }
        }
        
        public UserDataManager(Context context) {
            mContext = context;
            Log.i(TAG, "UserDataManager construction!");
        }
    
        public void openDataBase() throws SQLException {
            
            mDatabaseHelper = new DataBaseManagementHelper(mContext);
            mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
        }
    
        public void closeDataBase() throws SQLException {
    
            mDatabaseHelper.close();
        }
    
        public void insertUserData(UserData userData) {
            
            String userName=userData.getUserName();
            String userPwd=userData.getUserPwd();
            String userPhone = userData.getUserPhone();
            String userMail = userData.getUserMail();
            String userAds = userData.getUserAds();
        
            mSQLiteDatabase.beginTransaction(); // 开始事务
             try
             {             
                 mSQLiteDatabase.execSQL("INSERT INTO " + TABLE_NAME + " VALUES(null, ?, ?, ?, ?, ?)", 
                                     new Object[] { userName,userPwd, userPhone, userMail, userAds });
                     // 带两个参数的execSQL()方法,采用占位符参数?,把参数值放在后面,顺序对应
                     // 一个参数的execSQL()方法中,用户输入特殊字符时需要转义
                     // 使用占位符有效区分了这种情况             
                 mSQLiteDatabase.setTransactionSuccessful(); // 设置事务成功完成
             }
             finally
             {
                 mSQLiteDatabase.endTransaction(); // 结束事务
             }
        }
        /**
         * 更新整个注册表的用户信息
         * @param userData 用户信息类
         * @return
         */
        public boolean updateUserData(UserData userData) {
    
            int id = userData.getUserId();
            String userName = userData.getUserName();
            String userPwd = userData.getUserPwd();
            String userPhone = userData.getUserPhone();
            String userMail = userData.getUserMail();
            String userAds = userData.getUserAds();
            
            ContentValues values = new ContentValues();
            values.put(USER_NAME, userName);
            values.put(USER_PWD, userPwd);
            values.put(USER_PHONE, userPhone);
            values.put(USER_MAIL, userMail);
            values.put(USER_ADD, userAds);
            return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
            
        }
        /**
         * query all persons, return cursor
         * 
         * @return Cursor
         */
        public Cursor queryTheCursor()
        {
            Log.d(TAG, "DBManager --> queryTheCursor");
            mSQLiteDatabase = mDatabaseHelper.getReadableDatabase();
            Cursor c = mSQLiteDatabase.rawQuery("SELECT * FROM " + TABLE_NAME, null);
            return c;
        }
        /**
         * 通过ID号删除用户
         * @param id
         * @return
         */
        public boolean deleteUserData(int id) {
    
            return mSQLiteDatabase.delete(TABLE_NAME, ID + "=" + id, null) > 0;
        }
        /**
         * 删除所有用户
         * @return
         */
        public boolean deleteAllUserDatas() {
    
            return mSQLiteDatabase.delete(TABLE_NAME, null, null) > 0;
        }
        /**
         * 通过ID号更新用户表信息
         * @param columnName
         * @param id
         * @param columnValue
         * @return
         */
        public boolean updateUserDataById(String columnName, int id,
                String columnValue) {
            ContentValues values = new ContentValues();
            values.put(columnName, columnValue);
            return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
        }
        /**
         * 通过用户名查找用户
         * @param userName
         * @return
         */
        public int findUserByName(String userName){
            Log.i(TAG,"findUserByName");
            Cursor mCursor = queryTheCursor();
            String name;
            int result=0;
            while(mCursor.moveToNext()){
                Log.i(TAG,"moveToNext");
                name = mCursor.getString(mCursor.getColumnIndex(USER_NAME));
                Log.i(TAG,"name="+name);
                if(name.equals(userName)){
                    result = 1;
                    Log.i(TAG,"findUserByName , result="+result);
                    break;
                }
            }
            return result;
        }
        /**
         * 通过用户名/电话/邮箱和密码查找用户
         * @param userName
         * @param pwd
         * @return
         */
        public int findUserByNameAndPwd(String userName,String pwd){
            Log.i(TAG,"findUserByNameAndPwd()");
            Cursor mCursor = queryTheCursor();
            String name,password,phone,mail;
            int result=0;
            while(mCursor.moveToNext()){
                Log.i(TAG,"moveToNext");
                name = mCursor.getString(mCursor.getColumnIndex(USER_NAME));
                password = mCursor.getString(mCursor.getColumnIndex(USER_PWD));
                phone = mCursor.getString(mCursor.getColumnIndex(USER_PHONE));
                mail = mCursor.getString(mCursor.getColumnIndex(USER_MAIL));
                if((name.equals(userName) || name.equals(mail) || name.equals(phone)) && password.equals(pwd)){
                    result = 1;
                    Log.i(TAG,"findUserByNameAndPwd , result="+result);
                    break;
                }
            }
            return result;
        }
    }

    3.使用方法

    private UserDataManager mUserDataManager;
    
    //首先:创建注册表
        if (mUserDataManager == null) {
            mUserDataManager = new UserDataManager(this);
            mUserDataManager.openDataBase();
        }
        /**
         * 添加新的用户信息时
         * @param Pname    用户名
         * @param Ppwd    密码
         * @param Pphone电话
         * @param Pmail    邮箱
         * @param Plocat地址
         */
         public void addperson(String Pname,String Ppwd, String Pphone, String Pmail, String Plocat){
            UserData mUser = new UserData(Pname,Ppwd,Pphone,Pmail,Plocat);
            mUserDataManager.openDataBase();
            mUserDataManager.insertUserData(mUser);
        }
  • 相关阅读:
    扑克牌顺子
    多任务Multitask Learning
    智能指针
    左旋转字符串
    和为s的两个数字
    07.极简主义读后感
    06.极简主义——汇流(笔记)
    05.极简主义——奉献(笔记)
    04.极简主义——热情(笔记)
    03.极简主义——人际关系(笔记)
  • 原文地址:https://www.cnblogs.com/Bubls/p/4630486.html
Copyright © 2020-2023  润新知