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的权限问题,无法打开数据库进行建表,之后就在网上搜索这个问题,但是最后还是失败了。

  • 相关阅读:
    回调函数
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
    顶帽变化(转载)
    协程 + asyncio
    docker
    vue+uwsgi+nginx部署前后端分离项目
    html
    关于html的基础标签
    关于python中的GIL
    hashlib模块
  • 原文地址:https://www.cnblogs.com/2940500426yingxin/p/12300737.html
Copyright © 2011-2022 走看看