Android开发Android技术知识Android开发

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

2018-12-19  本文已影响5人  Jennyni1122

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

知识点

创建数据库

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

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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读