美文网首页Android开发Android技术知识Android开发
13. “我”模块(一)之创建数据库

13. “我”模块(一)之创建数据库

作者: Jennyni1122 | 来源:发表于2018-12-19 09:16 被阅读5次

    上一节对欢迎模块进行了综述(可参见 10. 视频模块 进行了解),接下来将从视频模块开始详细介绍:

    • [ “我”模块(一)之创建数据库]
    • [“我”模块(一)之“我”]
    • [“我”模块(一)之注册]
    • [“我”模块(一)之登录]
    • [“我”模块(一)之个人资料]
    • [“我”模块(一)之个人资料修改]

    知识点

    • 掌握SQLite数据库的使用,能够使用数据库存储用户信息。
    • 掌握“我”界面开发,能够展示用户基本信息以及该界面的功能。
    • 掌握“登录”“注册”界面的开发,实现用户登录注册功能。
    • 掌握“个人资料”以及“修改”界面的开发,实现用户信息的展示与修改功能。

    创建数据库

    任务综述:
    根据“我”界面设计图可知,“我”模块中包含了用户信息,为了便于后续对用户信息进行增、删、改、查的操作,需要创建一个数据库把这些信息存储起来。

    1. 创建SQLite数据库

    任务分析:

    由于“我”模块涉及用户信息,同时后续会对用户信息进行操作,因此需要创建一个数据库与个人信息表,把用户信息保存到数据库中。

    任务实施:

    (1)创建SQLiteHelper类。创建sqlite包,在包中创建SQLiteHelper并继承SQLiteOpenHelper类,同时重写onCreate()方法,该类用于创建newsdemo.db数据库。

    (2)创建用户信息表。由于个人资料界面的数据需要单独的一个表储存,因此需要在onCreate()方法中通过执行一条建表的SQL语句创建用户信息表。

    SQLiteHelper.java

    public class SQLiteHelper extends SQLiteOpenHelper {
        private static final int DB_VERSION = 1;
        public static String DB_NAME = "newsdemo.db";
        public static final String U_USERINFO = "userinfo"; //用户信息
      //  public static final String CONSTELLATION = "constellation";//十二星座信息
        //收藏新闻信息
        //public static final String COLLECTION_NEWS_INFO = "collection_news_info";
        public SQLiteHelper(Context context) {
            super(context, DB_NAME, null, DB_VERSION);
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            /**
             * 创建用户信息表
             */
            db.execSQL("CREATE TABLE  IF NOT EXISTS " + U_USERINFO + "( "
                    + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + "userName VARCHAR, "  //用户名
                    + "nickName VARCHAR, "  //昵称
                    + "sex VARCHAR, "        //性别
                    + "signature VARCHAR,"  //签名
                    + "head VARCHAR "        //头像
                    + ")");
            /**
             * 创建十二星座信息表
             */
          //  db.execSQL("CREATE TABLE  IF NOT EXISTS " + CONSTELLATION + "( "
                    + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + "c_id INT, "               //星座id
                    + "name VARCHAR, "          //星座名称
                    + "head VARCHAR, "          //头像
                    + "img VARCHAR,"            //图标
                    + "icon VARCHAR,"           //白色图标
                    +"date VARCHAR,"            //日期
                    +"info VARCHAR,"            //星座信息
                    +"whole INT,"               //整体运势
                    +"love INT,"                //爱情运势
                    +"career INT,"             //事业学业
                    +"money INT,"              //财富运势
                    +"whole_info VARCHAR,"   //整体运势信息
                    +"love_info VARCHAR,"    //爱情运势信息
                    +"career_info VARCHAR," //事业学业信息
                    +"money_info VARCHAR,"  //财富运势信息
                    +"health_info VARCHAR"  //健康运势信息
                    + ")");
            /**
             * 创建收藏表
             */
            //db.execSQL("CREATE TABLE  IF NOT EXISTS " + COLLECTION_NEWS_INFO + "( "
                    + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + "id INTEGER, "         //新闻id
                    + "type INTEGER, "      //新闻类型
                    + "userName VARCHAR," //用户名
                    + "newsName VARCHAR, "      //新闻名称
                    + "newsTypeName VARCHAR," //新闻类型名称
                    + "img1 VARCHAR, "        //图片1
                    + "img2 VARCHAR, "       //图片2
                    + "img3 VARCHAR, "      //图片3
                    + "newsUrl VARCHAR "  //新闻链接地址
                    + ")");
        }
        /**
         * 当数据库版本号增加时才会调用此方法
         */
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + U_USERINFO);
            //db.execSQL("DROP TABLE IF EXISTS " + CONSTELLATION);
            //db.execSQL("DROP TABLE IF EXISTS " + COLLECTION_NEWS_INFO);
            onCreate(db);
        }
    }
    
    

    2. 创建DBUtils类

    任务分析:
    当读取用户资料或者对用户进行更改时,需要对数据库进行操作,因此需要创建一个DBUtils工具类专门用于操作数据库。

    任务实施:
    在utils包中包中创建DBUtils。

    DBUtils.java

    public class DBUtils {
        private static DBUtils instance = null;
        private static SQLiteHelper helper;
        private static SQLiteDatabase db;
        public DBUtils(Context context) {
            helper = new SQLiteHelper(context);
            db = helper.getWritableDatabase();
        }
        public static DBUtils getInstance(Context context) {
            if (instance == null) {
                instance = new DBUtils(context);
            }
            return instance;
        }
    

    3. 创建UserBean

    任务分析:
    “我”模块涉及用户信息,用户具有用户名、昵称、性别等属性,为了便于后续对这些属性进行操作,需要创建一个UserBean类存放这些属性。

    UserBean.java

    public class UserBean {
        private String userName;   //用户名
        private String nickName;   //昵称
        private String sex;         //性别
        private String signature; //签名
        private String head;       //头像
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getNickName() {
            return nickName;
        }
        public void setNickName(String nickName) {
            this.nickName = nickName;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getSignature() {
            return signature;
        }
        public void setSignature(String signature) {
            this.signature = signature;
        }
        public String getHead() {
            return head;
        }
        public void setHead(String head) {
            this.head = head;
        }
    }
    

    相关文章

      网友评论

        本文标题:13. “我”模块(一)之创建数据库

        本文链接:https://www.haomeiwen.com/subject/hvoccqtx.html