泰安网站建设哪里有wordpress您访问的网页出错
web/
2025/9/28 18:56:17/
文章来源:
泰安网站建设哪里有,wordpress您访问的网页出错,上海网站建设公司网,什么网站做风险投资Android 为了让我们能够更加方便的管理数据库#xff0c;特意提供了一个SQLiteOpenHelper帮助类#xff0c;通过借助这个类就可以非常简单的对数据库进行创建和升级。
SQLiteOpenHelper是一个抽象类#xff0c;我们要创建一个自己的帮助类去继承它。SQLiteOpenHelper有两个抽…Android 为了让我们能够更加方便的管理数据库特意提供了一个SQLiteOpenHelper帮助类通过借助这个类就可以非常简单的对数据库进行创建和升级。
SQLiteOpenHelper是一个抽象类我们要创建一个自己的帮助类去继承它。SQLiteOpenHelper有两个抽象方法分别是onCreat()和onUpgrade()我们必须在自己的帮助类里面重这两个方法然后分别在这两个方法中去实现创建、升级数据库的逻辑。
SQLiteOpenHelper中还有两个非常重要的实例方法getReadableDatabase()和getWritableDatabase()。这两个方法都可以创建或打开一个现有的数据库并返回一个可对数据库进行读写操作的对象。不同的是当数据不可写入的时候如磁盘已满getReadableDatabase()方法返回的对象将以只可读的方式去打开数据库而getWriteableDatabase()方法将出现异常。SQLiteOpenHelper中有两个构造方法可供重写一般使用参数少一点的构造方法即可。
这个构造方法中接收4个参数第一个参数是Context第二个参数是数据库名创建数据库时使用的就是这里指定的名称。第三个参数允许我们在查询数据的时候返回一个自定义的Cursor一般都是传入null。第四个参数表示当前数据库的版本号。
构建出SQLiteOpenHelper的实例之后再调用他的getReadableDatabase()或getWritableDatabase()方法就能够创建数据库了。数据库文件通常会放在/data/data/pack name/database/目录下。此时重写的onCreate()方法也会得到执行。所以通常会在这里去处理一些创建表的逻辑。
新建项目DatabaseTest。
我们希望创建一个名为BookStore.db的数据库然后在这个数据库中新建一张Book表表中包含主键id、作者、价格、页数和书名等列。创建数据库表当然还是需要用建表语句的。
新建MyDatabaseHelper类继承SQLiteOpenHelper代码如下
package com.example.databasetest;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;/*** Created by ZHJ on 2018/3/3.*/public class MyDatabaseHelper extends SQLiteOpenHelper {public static final String CREATE_BOOK create table Book(id integer primary key autoincrement,auto text,price real,pages integername text);private Context mContext;public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){super(context,name,factory,version);mContext context;}Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_BOOK);Toast.makeText(mContext,Create succeeded,Toast.LENGTH_SHORT).show();}Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}
我们把建表语句定义为一个字符串常量然后在Oncreate()方法中又调用了SQLiteDatabase的execSQL()方法去执行这条建表语句并弹出一个Toast提示创建成功这样我们在保证创建数据库的同时还是成功创建Book表。
修改activity_main.xml的代码如下
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentButtonandroid:idid/create_databaseandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textCreate database//LinearLayout
仅仅加入一个按钮用于创建数据库。最后修改MainActivity中的代码如下
package com.example.databasetest;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity { private MyDatabaseHelper dbHelper;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dbHelper new MyDatabaseHelper(this,BookStore.db,null,1);Button createDatabase (Button) findViewById(R.id.create_database);createDatabase.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {dbHelper.getWritableDatabase();}});}
}
我们在onCreate()方法中构建了一个MyDatabaseHelper对象并且通过构造函数的参数将数据库指定为BookStore.db版本号指定为1然后在Create database按钮的点击事件里面调用了getWritableDatabase()方法这样当第一次点击Create database按钮时就会检测到当前程序中并没有BookStore.db这个数据库于是会创建数据库并调用MyDatabaseHelper中的onCreate()方法这样Book表也就得到了创建然后会弹出一个Toast提示创建成功。再次点击Create database按钮时会发现此时已经存在BookStore.db数据库了不会再创建一次。
现在可以运行一下代码。
怎么样才能证明数据库已经创建成功了呢
我们使用adb shell 来对数据库和表的创建情况进行检查。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83480.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!