温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android SQLite3基础中如何建立数据库

发布时间:2021-11-26 09:13:58 来源:亿速云 阅读:186 作者:柒染 栏目:移动开发

Android SQLite3基础中如何建立数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

背景

SQLite 是一个非常流行的嵌入式数据库,它提供了一个清爽的 SQL 接口,相当小的内存占用和高速的响应,更 Happy  的是他还是免费的,大家都可以尽情的使用,很多牛叉的公司(诸如 Adobe,Apple,Google,Sun,Symbian ),开源项目(  Mozilla,PHP,Python )都在产品中装配 SQLite.

SQLite3 特征

和传统关系数据库比较

有的:

Sql 语句: SELECT INSERT UPDATE

CREATE DROP

数据类型:

不区分大小写

TEXT 文本

NUMERIC 数值

INTEGER 整型

REAL 小数

NONE 无类型

没有的:

FOREIGN KEY 外键约束

RIGHT OUTER JOIN 和 FULL OUTER JOIN

ALTER TABLE

开始动手

动手之前,确认你的机器中已经配置好如下环境:

Android 开发环境(怎么配置问 Google ,有很多)

本文档适用环境 Android 1.0

1, 建库

方式一:命令行方式(适合调试用)

可以使用 adb shell 进入设备后台,命令行方式手动创建,步骤如下:

Eclipse 中启动模拟器之后, cmd 下输入进入设备 Linux 控制台

D:\>adb shell

之后进入应用 data 目录

# cd /data/data

ls 列表目录,查看文件,找到你的项目目录并进入

查看有无 databases 目录,如果没有,则创建一个

# mkdir databases

cd databases 进入并创建数据库

# sqlite3 friends.db

sqlite3 friends.db

SQLite version 3.5.9

Enter ".help" for instructions

sqlite>

ctrl+d 退出 sqlite 提示符 ls 列表目录会看到有一个文件被创建 friends.db

他就是 SQLite 的库文件

# ls

ls

friends.db

方式二:编码方式(使用更多)

android.content.Context 中提供了函数 , 注: Activity 是 Context 的子类

openOrCreateDatabase () 来创建我们的数据库

db = context .openOrCreateDatabase(

String DATABASE_NAME , int Context. MODE_PRIVATE , null );

String DATABASE_NAME 数据库的名字

Int MODE 操作模式 Context.MODE_PRIVATE 等

CursorFactory 指针工厂 ,本例中传入 null ,暂不用

2, 建表

命令行方式

# sqlite3

sqlite> create table widgets (id integer primary key autoincrement,name  text);

3, 插入数据

命令行 增加,查询数据

sqlite> insert into widgets values(null,'tom');

insert into widgets values(null,'tom');

sqlite> select * from widgets;

select * from widgets;

1|tom

sqlite>

API 方式

package org.imti;      import android.app.Activity;   import android.database.Cursor;   import android.os.Bundle;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   import android.widget.EditText;   import android.widget.TextView;      /**   * SQLite Demo   *    * 供Activity私有访问的数据库 没有使用ContentProvider 方式 增加 查询数据   *    * @author daguangspecial@gmail.com   *    */   public class DbDemo extends Activity {       EditText inputTxt;       Button btnAdd;       Button btnViewAll;       TextView viewAll;          DBHelper db;          @Override       protected void onCreate(Bundle savedInstanceState) {           // TODO Auto-generated method stub           super.onCreate(savedInstanceState);           this.setContentView(R.layout.dbdemo);           // 初始化UI           btnAdd = (Button) findViewById(R.id.btnAdd);           btnViewAll = (Button) findViewById(R.id.btnViewAll);           viewAll = (TextView) findViewById(R.id.viewAll);           inputTxt = (EditText) findViewById(R.id.txtInput);           // 初始化DB           db = new DBHelper(this);           // 初始化监听           OnClickListener listener = new OnClickListener() {                  public void onClick(View v) {                   if (v.getId() == R.id.btnAdd) {                       // 增加                       db.save(inputTxt.getText().toString());                                          db.close();                   } else if (v.getId() == R.id.btnViewAll) {                       // 浏览所有数据                       Cursor cur = db.loadAll();                       StringBuffer sf = new StringBuffer();                       cur.moveToFirst();                       while (!cur.isAfterLast()) {                           sf.append(cur.getInt(0)).append(" : ").append(                                   cur.getString(1)).append("\n");                           cur.moveToNext();                       }                                         db.close();                       viewAll.setText(sf.toString());                   }               }           };           btnAdd.setOnClickListener(listener);           btnViewAll.setOnClickListener(listener);       }      }

Java代码

package org.imti;      import android.content.Context;   import android.database.Cursor;   import android.database.sqlite.SQLiteDatabase;   import android.util.Log;      /**   * 数据库操作工具类   *    * @author daguangspecial@gmail.com   *    */   public class DBHelper {       private static final String TAG = "DBDemo_DBHelper";// 调试标签          private static final String DATABASE_NAME = "dbdemo.db";// 数据库名       SQLiteDatabase db;       Context context;//应用环境上下文   Activity 是其子类          DBHelper(Context _context) {           context = _context;           //开启数据库                       db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);           CreateTable();           Log.v(TAG, "db path=" + db.getPath());       }          /**       * 建表       * 列名 区分大小写?       * 都有什么数据类型?       * SQLite 3        *  TEXT    文本          NUMERIC 数值          INTEGER 整型          REAL    小数          NONE    无类型       * 查询可否发送select ?       */       public void CreateTable() {           try {               db.execSQL("CREATE TABLE t_user (" +                       "_ID INTEGER PRIMARY KEY autoincrement,"                       + "NAME TEXT"                        + ");");               Log.v(TAG, "Create Table t_user ok");           } catch (Exception e) {               Log.v(TAG, "Create Table t_user err,table exists.");           }       }       /**       * 增加数据       * @param id       * @param uname       * @return       */       public boolean save(String uname){           String sql="";           try{               sql="insert into t_user values(null,'"+uname+"')";               db.execSQL(sql);               Log.v(TAG,"insert Table t_user ok");               return true;                          }catch(Exception e){               Log.v(TAG,"insert Table t_user err ,sql: "+sql);               return false;           }       }       /**       * 查询所有记录       *        * @return Cursor 指向结果记录的指针,类似于JDBC 的 ResultSet       */       public Cursor loadAll(){                      Cursor cur=db.query("t_user", new String[]{"_ID","NAME"}, null,null, null, null, null);                      return cur;       }         public void close(){           db.close();       }   }

截图:

Android SQLite3基础中如何建立数据库

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI