android之SQLite
来源:互联网 发布:黑马python视频教程 编辑:程序博客网 时间:2024/06/01 07:33
效果如下:
Main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/createDatabase" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/createDatabase" /> <Button android:id="@+id/updateDatabase" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/updateDatabase" /> <Button android:id="@+id/insert" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/insert" /> <Button android:id="@+id/update" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/update" /> <Button android:id="@+id/query" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/query" /></LinearLayout>
string.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Sqlite</string> <string name="hello_world">Sqlite功能测试</string> <string name="createDatabase">创建数据库</string> <string name="updateDatabase">更新数据库</string> <string name="insert">插入</string> <string name="query">查询</string> <string name="update">更新</string></resources>
DatabaseHelper.java
package com.fzq.sqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;//DatabaseHelper作为访问sqlite的助手类,提供两个方面的功能//第一,getReadableDatabase(),getWritebleDatabase()可以获得SQLiteDataBase对象//第二,提供了oncreate()和onUpgrade()两个会掉函数,允许我们在创建和升级数据库时public class DatabaseHelper extends SQLiteOpenHelper {private static final int VERSION = 1;// 在SQLiteOpenHelper的子类当中,必须有该构造函数public DatabaseHelper(Context context, String name, CursorFactory factory,int version) {// 必须通过super调用父类中的构造函数super(context, name, factory, version);// TODO Auto-generated constructor stub}public DatabaseHelper(Context context, String name) {this(context, name, VERSION);}public DatabaseHelper(Context context, String name, int version) {this(context, name, null, version);// TODO Auto-generated constructor stub}// 该函数是在第一次创建数据库时执行,实际是在第一次得到SQLiteDatabase对象时执行@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubSystem.out.println("create a dadabase!");db.execSQL("create table user(id int,name varchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubSystem.out.println("更新数据库!");}}
MainActivity.java
package com.fzq.sqlite;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button createDatabase, updateDatabase, insert, query, update;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);createDatabase = (Button) findViewById(R.id.createDatabase);updateDatabase = (Button) findViewById(R.id.updateDatabase);insert = (Button) findViewById(R.id.insert);query = (Button) findViewById(R.id.query);update = (Button) findViewById(R.id.update);createDatabase.setOnClickListener(new createDatabaseListener());updateDatabase.setOnClickListener(new updateDatabaseListener());insert.setOnClickListener(new insertListener());query.setOnClickListener(new queryListener());update.setOnClickListener(new updateListener());}class createDatabaseListener implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 创建一个DatabaseHelper对象DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"test_mars_db");// 只有调用了DatabaseHelper对象的getReadableDatabase方法,或者是getWritebleDatabase方法才能真正的被创建SQLiteDatabase db = dbHelper.getReadableDatabase();}}class updateDatabaseListener implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 创建一个DatabaseHelper对象DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"test_mars_db", 2);// 只有调用了DatabaseHelper对象的getReadableDatabase方法,或者是getWritebleDatabase方法才能真正的被创建SQLiteDatabase db = dbHelper.getReadableDatabase();}}class insertListener implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubContentValues values = new ContentValues();values.put("id", 1);values.put("name", "zhangsan");DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"test_mars_db");SQLiteDatabase db = dbHelper.getWritableDatabase();db.insert("user", null, values);}}class updateListener implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubDatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"test_mars_db");SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", "zhangsanfeng");// 第一个参数是要更新的表名// 第二个参数是一个ContentValues对象// 第三个参数是where字句// /有几个占位符,new String里就应有几个值db.update("user", values, "id=?", new String[] { "1" });}}class queryListener implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubDatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"test_mars_db");SQLiteDatabase db = dbHelper.getWritableDatabase();// 第一个参数table ->表名// 第二个参数columns -> 要查询的列// 第三个参数selection ->查询的条件(where条件语句后面的)// 第四个参数selectionArgs ->对应于selection参数占位符的值// 第五个参数groupBy -> 分组// 第六个参数 having -> 查询分组的条件限制// 第7个参数 orderBy ->对文组结果进行排序// 第八个参数limit ->limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。Cursor cursor = db.query("user", new String[] { "id", "name" },"id=?", new String[] { "1" }, null, null, null, null);while (cursor.moveToNext()) {String name = cursor.getString(cursor.getColumnIndex("name"));System.out.println("query--->" + name);}}}}强调!!!
1.SQLiteOpenHelper是将对数据库和表的创建、插入、更新、删除操作进行了简单的封装;
2、SQLiteDataBase代表一个数据库(底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDataBase对象,接下来就可以通过SQLiteDataBase对象来管理和、操作数据库
阅读全文
1 0
- Android 之 SQLite 数据库
- android之SQLite
- Android之SQlite存储
- Android之SQlite存储
- Android之SQLite数据库
- Android之SQLite数据库
- Android学习之SQLite
- Android之SQlite存储
- Android之SQlite存储
- Android之Sqlite存储
- Android之SQlite存储
- Android之SQlite存储
- android 之 SQLite
- android 之 SQLite
- android之SQLite
- Android之Sqlite
- Android之SQLite学习
- android之sqlite用法
- Java之IO,BIO,NIO,AIO
- Vue 折腾记
- 阿里云服务器CentOS6.8安装JDK
- Laravel Excel译文——导入
- 机器学习:如何理解机器学习中的逻辑回归
- android之SQLite
- hdu 1247 Hat's word
- instrumentation
- [译]The Python Tutorial#1. Whetting Your Appetite
- 汇编(一)
- Spring Boot使用thrift 入门
- 实现多态——虚函数的对象模型
- javaBean 内省
- Python中的ThreadLocal变量