zoukankan      html  css  js  c++  java
  • 数据库学习

      昨天的学习进行到数据库的时候出现了错误,所以今天打算进行详细的数据库学习。

      创建数据库

    首先要看这个SqliteOpenhelper;

    1.写一个类去继承SqliteOpenhelper;

    2.实现里边的方法,创建构造方法

    参数解释

    context 上下文

    name  数据库名称

    factory  游标工厂

    version  版本号

    3.创建这个子类的对象,在调用getReadableDatabase()方法创建数据库。

    SQL 创建数据库:create database数据库名称【character set 代码】

    下面是代码的实例

     1 package com.example.databasedemo;
     2 
     3 import androidx.appcompat.app.AppCompatActivity;
     4 
     5 import android.os.Bundle;
     6 
     7 public class MainActivity extends AppCompatActivity {
     8 
     9     @Override
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity_main);
    13 
    14         DataBaseHelper helper =new DataBaseHelper(this);
    15         helper.getWritableDatabase();
    16 
    17         /* helper=new DataBaseHelper(this);
    18         helper.getWritableDatabase();*/
    19     }
    20 }
    package com.example.databasedemo;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import androidx.annotation.Nullable;
    
    public class DataBaseHelper extends SQLiteOpenHelper {
    
        private static final String TGA ="DatabaseHelper";
    
        public DataBaseHelper(@Nullable Context context) {
            super(context, Constants.DATABASE_NAME, null, Constants.VRESION_CODE);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            //创建时回调
            Log.d(TGA,"创建数据库。。。");
            //创建字段
            //sql creat table table_name(
            String sql="creat table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer";
            db.execSQL(sql);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            //创建时回调
            Log.d(TGA,"升级数据库。。。");
        }
    }
    package com.example.databasedemo;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import androidx.annotation.Nullable;
    
    public class DataBaseHelper extends SQLiteOpenHelper {
    
        private static final String TGA ="DatabaseHelper";
    
        public DataBaseHelper(@Nullable Context context) {
            super(context, Constants.DATABASE_NAME, null, Constants.VRESION_CODE);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            //创建时回调
            Log.d(TGA,"创建数据库。。。");
            //创建字段
            //sql creat table table_name(
            String sql="creat table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer";
            db.execSQL(sql);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            //创建时回调
            Log.d(TGA,"升级数据库。。。");
        }
    }
    package com.example.databasedemo;
    
    public class Constants {
        public static final String DATABASE_NAME="sunofbeach.db";
        public static final int VRESION_CODE=1;
        public static final String TABLE_NAME = "emplyee";
    }

    但是代码写好后运行测试,程序闪退,无法运行,之后查资料了解到是因为Androidstudio的data的权限问题,无法打开数据库进行建表,之后就在网上搜索这个问题,但是最后还是失败了。

  • 相关阅读:
    训练总结
    图论--最短路--SPFA模板(能过题,真没错的模板)
    图论--最短路-- Dijkstra模板(目前见到的最好用的)
    The 2019 Asia Nanchang First Round Online Programming Contest B Fire-Fighting Hero(阅读理解)
    关于RMQ问题的四种解法
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 K题 center
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 XKC's basketball team
    The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 D Carneginon
    ZOJ 3607 Lazier Salesgirl (枚举)
    ZOJ 3605 Find the Marble(dp)
  • 原文地址:https://www.cnblogs.com/2940500426yingxin/p/12300737.html
Copyright © 2011-2022 走看看