1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Android Studio自带数据库SQLite的用法部分总结

Android Studio自带数据库SQLite的用法部分总结

时间:2024-06-11 03:17:50

相关推荐

Android Studio自带数据库SQLite的用法部分总结

SQLite是Android自带的一款轻量级的关系型数据库,它的运算速度非常快,且占用很少的资源,因而很适合在移动设备上使用。对于不熟悉连接外部数据库和添加删除数据的Android开发入门者来说,SQLite比一般的数据库要简单得多,不用设置用户名和密码就可以使用。

1. 安装

在使用之前需要前往AndroidSDK\platform-tools目录下找到sqlite3.exe文件,双击可进入Dos界面。

将上述platform-tools所在目录添加到环境变量配置中Path下,即可完成完成配置。

验证成功安装的方法:win+R输入cmd记入Dos界面,输入SQLite3,若出现以下界面就表示已成功安装。

2. 创建数据库

要使用SQLite,就必须谈到SQLiteOpenHelper这个类了,它是一个抽象类,我们需要创建一个自己的主类去继承它。SQLiteOpenHelper中有两个抽象方法,分别是OnCreate()和onUpgrade(),我们需要在自己的类下重写这两个方法。

同时SQLiteOpenHelper还有两个重要的实例方法:getReadableDatabase()和getWriteableDatabase()。这两个方法均可创建或打开一个现有数据库,并返回一个可对数据库进行读写操作的对象。区别在于:当数据库不可写入的时候(如磁盘空间已满),getReadableDatabase()方法返回的对象将只以只读方式打开数据库,而getWriteableDatabase()方法将出现异常。

接下来可以进行实践了,我们创建一个名为Land.db的数据库,然后在这个数据库中新建一张Land表,表中有一些自定义的列。定义列时按照SQL语句进行。对于数据类型,integer表示整型,real表示浮点型,text表示文本类型,blob表示二进制类型。

​public class DatabaseHelper extends SQLiteOpenHelper {public static final String CREATE_LAND = "create table Land ("//primary key设置为主键,autoincrement关键字表示该列是自增长的+ "area_id text primary key autoincrement," + "flag text,"+ "plot integer,"+ "land_position_id text,"+ "land_position_acreage real)";private Context mContext;public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super( context, name, factory, version );mContext = context;}public void onCreate(SQLiteDatabase db){//调用SQLiteDatabase的execSQL()方法执行建表语句db.execSQL(CREATE_LAND);//弹出一个Toast提示创建成功Toast.makeText(mContext, "Create succeeded.", Toast.LENGTH_SHORT).show();}public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){}​

对应布局文件,可以自己设计一个Button,这里不多做赘述。最后修改MainAcivity(不一定是主活动,只要是与布局对应的Java均可,这里以MainActivity为例)中的代码:

public class MainActivity extends AppCompatActivity {private DatabaseHelper dbHelper;protected void onCreate(Bundle savedInstanceState){super.onCreate( savedInstanceState );setContentView( R.layout.activity_main );//指定数据库名为"Land.db",版本号为1dbHelper = new DatabaseHelper( this, "Land.db" ,null,1 );//指定对应于布局文件夹中的Button create_databaseButton createDatabase = (Button) findViewById( R.id.create_database );//设计点击事件,点击create_database Button后弹出Toast显示创建成功createDatabase.setOnClickListener( new View.OnClickListener() {@Overridepublic void onClick(View v) {dbHelper.getWritableDatabase();}} );}}

2. 添加数据

SQLiteDatabase中提供了一个insert()方法专门用于添加数据。它接受3个参数,第一个是表名,即我们想要添加数据的表。第二个是在未指定添加数据的情况下给某些可为空的列自动赋值null,我们一般传入null即可。第三个是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,我们只需要将表中的每个列名以及相应的待添加数据传入即可。

接下来进行实践。在layout中的activity_main.xml添加一个id为add_data,名为Add data的Button。

接着修改MainAcivity中的代码:

public class MainActivity extends AppCompatActivity {private DatabaseHelper dbHelper;protected void onCreate(Bundle savedInstanceState){super.onCreate( savedInstanceState );setContentView( R.layout.activity_main );dbHelper = new DatabaseHelper( this, "Land.db" ,null,2);Button createDatabase = (Button) findViewById( R.id.create_database );Button addData = (Button) findViewById( R.id.add_data );createDatabase.setOnClickListener( new View.OnClickListener() {@Overridepublic void onClick(View v) {dbHelper.getWritableDatabase();}} );addData.setOnClickListener( new View.OnClickListener(){@Overridepublic void onClick(View v){SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();//添加第一条数据values.put("area_id","A");values.put("flag","A1");values.put("plot",001);values.put("land_position_id","A1001");values.put("land_position_acreage",0.5);db.insert( "Land",null,values ); //插入第一条数据values.clear();//添加第二条数据values.put("area_id","A");values.put("flag","A1");values.put("plot",002);values.put("land_position_id","A1002");values.put("land_position_acreage",0.4);db.insert( "Land",null,values ); //插入第二条数据}} );}}

在添加数据按钮的点击事件里,我们先获取了SQLiteDatabase对象,然后使用ContentValues来对要添加的数据进行组装。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。