没有创造Android的SQLite数据库 [英] Android SQLite database not creating

查看:117
本文介绍了没有创造Android的SQLite数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的Andr​​oid和想设计数据库为我的Andr​​oid应用程序,但我不能这样做。我所做的一切,找到错误,但无法找到任何错误,仍然无法创建数据库。请人帮我在这,先谢谢了。

在code是如下:

模型类:

 包com.example.health;公共类日报{
私人诠释_id;
私人字符串_tips;大众日报(){
}大众日报(INT ID,字符串提示){
    this._id = ID;
    this._tips =提示;
}
大众日报(字符串提示){
    this._tips =提示;
}
公共无效SETID(INT ID){
    this._id = ID;
}
公共无效setTips(字符串提示){
    this._tips =提示;
}
公众诠释的getID(){
    返回this._id;
}
公共字符串getTips(){
    返回this._tips;
}
  }

数据库处理程序:

 包com.example.health;进口的java.util.ArrayList;
进口的java.util.List;进口android.content.ContentValues​​;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteDatabase.CursorFactory;
进口android.database.sqlite.SQLiteOpenHelper;
公共类MyDBHandler扩展SQLiteOpenHelper {私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_NAME =healthDB.db;
私有静态最后弦乐TABLE_DAILY =日报;公共静态最后弦乐COLUMN_ID =_id;
公共静态最后弦乐COLUMN_TIPS =提示;公共MyDBHandler(上下文的背景下,字符串名称,
        CursorFactory工厂,诠释的版本){
    超(背景下,DATABASE_NAME,工厂,DATABASE_VERSION);
}@覆盖
公共无效的onCreate(SQLiteDatabase DB){
    字符串CREATE_DAILY_TABLE =CREATE TABLE+ TABLE_DAILY +(+ COLUMN_ID +INTEGER PRIMARY KEY,+ COLUMN_TIPS +TEXT+);
      db.execSQL(CREATE_DAILY_TABLE);      }@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
    db.execSQL(DROP TABLE IF EXISTS+ TABLE_DAILY);
      的onCreate(DB);
}
公共无效addDaily(每日每日){
    SQLiteDatabase分贝= this.getWritableDatabase();
    ContentValues​​值=新ContentValues​​();
    values​​.put(COLUMN_TIPS,daily.getTips());
    db.insert(TABLE_DAILY,空,价值);
    db.close();
}
 公开名单<日> getAllDailys(){
        清单<日> dailyList =新的ArrayList<日>();        //选择所有查询
        字符串selectQuery =SELECT * FROM+ TABLE_DAILY;        SQLiteDatabase分贝= this.getReadableDatabase();
        光标C = db.rawQuery(selectQuery,NULL);        //通过所有行循环,并添加到列表
        如果(c.moveToFirst()){
            做{
                每天每天=新报();
                daily.setID(的Integer.parseInt(c.getString(0)));
                daily.setTips(c.getString(1));
                //添加用户到列表
                dailyList.add(日);
            }而(c.moveToNext());
        }
        c.close();
        返回dailyList;
}}


解决方案

您DbClass

 包com.example.demo;
进口的java.util.ArrayList;
进口的java.util.List;进口android.content.ContentValues​​;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteDatabase.CursorFactory;
进口android.database.sqlite.SQLiteOpenHelper;
公共类MyDBHandler扩展SQLiteOpenHelper {私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_NAME =healthDB.db;
私有静态最后弦乐TABLE_DAILY =日报;公共静态最后弦乐COLUMN_ID =_id;
公共静态最后弦乐COLUMN_TIPS =提示;静态MyDBHandler mDbHelper;私人MyDBHandler(上下文的背景下){
    超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}公共静态同步MyDBHandler的getInstance(上下文的背景下){
    如果(mDbHelper == NULL){
        mDbHelper =新MyDBHandler(背景);
    }
    返回mDbHelper;
}@覆盖
公共无效的onCreate(SQLiteDatabase DB){
    字符串CREATE_DAILY_TABLE =CREATE TABLE+ TABLE_DAILY +(+ COLUMN_ID +INTEGER PRIMARY KEY,+ COLUMN_TIPS +TEXT+);
      db.execSQL(CREATE_DAILY_TABLE);}@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
    db.execSQL(DROP TABLE IF EXISTS+ TABLE_DAILY);
      的onCreate(DB);
}
公共无效addDaily(每日每日){
    SQLiteDatabase分贝= this.getWritableDatabase();
    ContentValues​​值=新ContentValues​​();
    values​​.put(COLUMN_TIPS,daily.getTips());
    db.insert(TABLE_DAILY,空,价值);
    db.close();
}
 公开名单<日> getAllDailys(){
        清单<日> dailyList =新的ArrayList<日>();        //选择所有查询
        字符串selectQuery =SELECT * FROM+ TABLE_DAILY;        SQLiteDatabase分贝= this.getReadableDatabase();
        光标C = db.rawQuery(selectQuery,NULL);        //通过所有行循环,并添加到列表
        如果(c.moveToFirst()){
            做{
                每天每天=新报();
                daily.setID(的Integer.parseInt(c.getString(0)));
                daily.setTips(c.getString(1));
                //添加用户到列表
                dailyList.add(日);
            }而(c.moveToNext());
        }
        c.close();
        返回dailyList;
}}

您可以添加数据像这样

  MyDBHandler DB = MyDBHandler.getInstance(getApplicationContext());
每天每天=新报();
daily.setID(1);
daily.setTips(你好);
db.addDaily(日);

我已经测试它。它工作正常。

I'm new to android and want to design database for my android application but i'm not able to do that. I have done everything to find the error but couldn't locate any error and still not able to create database. Please someone help me in this, thanks in advance.

The code is below:

Model Class:

package com.example.health;

public class Daily {
private int _id;
private String _tips;

public Daily(){
}

public Daily(int id, String tips){
    this._id=id;
    this._tips=tips;
}
public Daily(String tips){
    this._tips=tips;
}
public void setID(int id) {
    this._id = id;
}
public void setTips(String tips){
    this._tips=tips;
}
public int getID() {
    return this._id;
}
public String getTips(){
    return this._tips;
}
  }

Database Handler:

 package com.example.health;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;


public class MyDBHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "healthDB.db";
private static final String TABLE_DAILY = "daily";

public static final String COLUMN_ID = "_id";
public static final String COLUMN_TIPS = "tips";

public MyDBHandler(Context context, String name, 
        CursorFactory factory, int version) {
    super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_DAILY_TABLE = "CREATE TABLE " + TABLE_DAILY + "(" + COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_TIPS + " TEXT " + ")";
      db.execSQL(CREATE_DAILY_TABLE);

      }

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_DAILY);
      onCreate(db);
}
public void addDaily(Daily daily) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(COLUMN_TIPS, daily.getTips());
    db.insert(TABLE_DAILY, null, values);
    db.close();
}
 public List<Daily> getAllDailys(){
        List <Daily> dailyList=new ArrayList<Daily>();

        // Select All Query
        String selectQuery="SELECT * FROM " + TABLE_DAILY;

        SQLiteDatabase db=this.getReadableDatabase();
        Cursor c=db.rawQuery(selectQuery, null);

        // looping through all rows and adding to the list
        if(c.moveToFirst()){
            do{
                Daily daily=new Daily();
                daily.setID(Integer.parseInt(c.getString(0)));
                daily.setTips(c.getString(1));


                // Adding user to the list
                dailyList.add(daily);
            }while(c.moveToNext());
        }
        c.close();
        return dailyList;
}}

解决方案

Your DbClass

package com.example.demo;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;


public class MyDBHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "healthDB.db";
private static final String TABLE_DAILY = "daily";

public static final String COLUMN_ID = "_id";
public static final String COLUMN_TIPS = "tips";

static MyDBHandler mDbHelper;

private MyDBHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

public static synchronized MyDBHandler getInstance(Context context) {
    if (mDbHelper == null) {
        mDbHelper = new MyDBHandler(context);
    }
    return mDbHelper;
}

@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_DAILY_TABLE = "CREATE TABLE " + TABLE_DAILY + "(" + COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_TIPS + " TEXT " + ")";
      db.execSQL(CREATE_DAILY_TABLE);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_DAILY);
      onCreate(db);
}
public void addDaily(Daily daily) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(COLUMN_TIPS, daily.getTips());
    db.insert(TABLE_DAILY, null, values);
    db.close();
}
 public List<Daily> getAllDailys(){
        List <Daily> dailyList=new ArrayList<Daily>();

        // Select All Query
        String selectQuery="SELECT * FROM " + TABLE_DAILY;

        SQLiteDatabase db=this.getReadableDatabase();
        Cursor c=db.rawQuery(selectQuery, null);

        // looping through all rows and adding to the list
        if(c.moveToFirst()){
            do{
                Daily daily=new Daily();
                daily.setID(Integer.parseInt(c.getString(0)));
                daily.setTips(c.getString(1));


                // Adding user to the list
                dailyList.add(daily);
            }while(c.moveToNext());
        }
        c.close();
        return dailyList;
}}

You can add data like this

MyDBHandler db = MyDBHandler.getInstance(getApplicationContext());
Daily daily = new Daily();
daily.setID(1);
daily.setTips("hello");
db.addDaily(daily);

I have tested it. It works fine..

这篇关于没有创造Android的SQLite数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆