• 2021年1月26日 sqlite数据库


    今天学习了sqlite数据库,更新了工程

    StarbuzzDatabaseHelper:

    package bjfu.it.sun.starbuzz;
    
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import static android.icu.lang.UProperty.NAME;
    
    public class StarbuzzDatabaseHelper extends SQLiteOpenHelper {
        private static final String DB_NAME = "starbuzz.db";//数据库的名称
        private static final int DB_VERSION = 2;//数据库的版本号
    
        //StarbuzzDatabaseHelper的默认的构造函数,必须提供构造函数,制定数据库名和版本
        public StarbuzzDatabaseHelper(Context context ){
            super(context,DB_NAME,null,DB_VERSION);
    }
     @Override
        public void onCreate(SQLiteDatabase db) {
            //创建表
            db.execSQL("CREATE TABLE DRINK(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
                    +"NAME TEXT,"
                    +"DESCRIPTION TEXT,"
                    +"IMAGE_RESOURCE_ID INTEGER);"
            );
            //插入咖啡的信息,3条数据
         insertDrink(db,"Latte","A couple of espresso shots with steames milk",R.drawable .coffee1 );
         insertDrink(db,"Cappuccino","Espresso,hot milk,and a steamed milk foam",R.drawable.coffee2);
         insertDrink(db,"Filter","Highest quality beans roasted and brewed fresh",R.drawable.coffee3);
    
        }
        public static void insertDrink (SQLiteDatabase db,String name,String description,int resourceld){
            ContentValues drinkValues=new ContentValues();
            drinkValues.put("NAME",name);
            drinkValues.put("DESCRIPTION",description );
            drinkValues.put("IMAGE_RESOURCE_ID",resourceld );
    
            long result=db.insert("DRINK",null,drinkValues) ;
    
            Log.d ("sqlite","insert"+name+",_id"+result );
    
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            if(oldVersion <=1){
                //NUMERIC这种值可以代表bool类型
                db.execSQL("ALTER TABLE DRINK ADD COLUMN FAVORITE NUMERIC;");
            }
        }
    }

    DrinkActivity:

    package bjfu.it.sun.starbuzz;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteException;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class DrinkActivity extends AppCompatActivity {
        public static final String EXTRA_DRINKID="drinkId";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_drink);
           //从inrent中取出数组的索引
            int drinkId=getIntent().getIntExtra(EXTRA_DRINKID ,0) ;
    //        Drink drink=Drink.drinks[drinkId];
    //
    //        //显示咖啡照片
    //        ImageView photo=findViewById(R.id.photo );
    //        photo.setImageResource(drink.getImageResourceId() ) ;
    //        photo.setContentDescription(drink.getName() ) ;
    //
    //
    //        //显示咖啡名称
    //        TextView name=findViewById(R.id.name );
    //        name.setText(drink.getName() );
    //
    //        //显示咖啡的描述
    //        TextView description =findViewById(R.id.description ) ;
    //        description.setText(drink.getDescription() );
    
            //实例化一个helper对象,
            SQLiteOpenHelper starbuzzDataBaseHelper=new StarbuzzDatabaseHelper(this);
    
    //        //获得数据引用
    //        SQLiteDatabase db=starbuzzDataBaseHelper.getReadableDatabase() ;
    
            try( SQLiteDatabase db=starbuzzDataBaseHelper.getReadableDatabase()){
                //YOYO读取数据库
            }catch(SQLiteException e){
                Log.e("sqlite",e.getMessage());
                Toast toast =Toast.makeText(this,"database unavailable",Toast.LENGTH_SHORT);
                toast.show() ;
                //若出现错误,用log.e打印error级的日志, 并弹出toast提示
        }
    }
    }
  • 相关阅读:
    Python学习第106天(Django的静态文件static、url分组)
    Python学习第105天(Django初步实现)
    Python学习第104天(Django前传web框架)
    Python学习第103天(http协议)
    Python学习第102(数据库进阶)
    Python学习第101天(mysql索引)
    Python学习第100天(多表查询:连接查询、复合查询、子查询)
    Python学习第99天(子网划分)
    java强制转换+自动转换
    WINDOWS快捷键
  • 原文地址:https://www.cnblogs.com/j-y-s/p/14402883.html
Copyright © 2020-2023  润新知