一、数据库的创建

数据库版本为1

  1. //Ctrl+Shift+U:大写
  2. public static final String DATABASE_NAME ="zzw.db";
  3. public static final int VERSION_CODE =1;
  4. public static final String TABLE_NAME ="employee";

DatabaseHelper.java

  1. package com.example.databasedemo;
  2.  
  3. import android.content.Context;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteOpenHelper;
  6. import android.util.Log;
  7.  
  8. import androidx.annotation.Nullable;
  9.  
  10. public class DatabaseHelper extends SQLiteOpenHelper {
  11.  
  12. private static final String TAG="DatabaseHelper";
  13.  
  14. /**
  15. *
  16. * @ context 上下文
  17. * @ name 数据库名称
  18. * @ factory 游标工厂:可以移动的指针,默认为null
  19. * @ version 版本号
  20. */
  21. public DatabaseHelper(@Nullable Context context) {
  22. super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
  23. }
  24.  
  25. @Override
  26. public void onCreate(SQLiteDatabase db) {
  27. //第一次创建数据库时调用
  28. //创建时的回调
  29. Log.d(TAG,"创建数据库....");
  30. //创建数据库表
  31. String sql ="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
  32. db.execSQL(sql);
  33. }
  34.  
  35. @Override
  36. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  37.  
  38. //升级数据库时的回调
  39. Log.d(TAG,"升级数据库....");
  40. //
  41. String sql;
  42. switch (oldVersion){
  43. case 1:
  44. sql ="alter table "+Constants.TABLE_NAME+" add phone integer";
  45. db.execSQL(sql);
  46. break;
  47. case 2:
  48. break;
  49. }
  50.  
  51. }
  52. }

第一次运行,无数据库时的文件结构

创建数据库

  1. //创建数据库
  2. DatabaseHelper helper =new DatabaseHelper(this);
  3. helper.getWritableDatabase();

创建表

  1. public void onCreate(SQLiteDatabase db) {
  2. //第一次创建数据库时调用
  3. //创建时的回调
  4. Log.d(TAG,"创建数据库....");
  5. //创建数据库表
  6. String sql ="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
  7. db.execSQL(sql);
  8. }

创建数据库后的文件结构

将zzw.db文件导出,并用SQLiteExpert打开

与我们要创建的字段数一致

二、数据库的升级

对数据库进行升级

修改版本号为2

  1. //Ctrl+Shift+U:大写
  2. public static final String DATABASE_NAME ="zzw.db";
  3. public static final int VERSION_CODE =2;
  4. public static final String TABLE_NAME ="employee";

升级数据库

  1. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  2.  
  3. //升级数据库时的回调
  4. Log.d(TAG,"升级数据库....");
  5. //
  6. String sql;
  7. switch (oldVersion){
  8. case 1:
  9. sql ="alter table "+Constants.TABLE_NAME+" add phone integer";
  10. db.execSQL(sql);
  11. break;
  12. case 2:
  13. break;
  14. }
  15.  
  16. }

成功添加了phone字段

三、Dao的增删改查(SQL语句实现)

进行测试

MainActivity.java

  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. //创建数据库
  15. DatabaseHelper helper =new DatabaseHelper(this);
  16. helper.getWritableDatabase();
  17.  
  18. Dao dao =new Dao(getApplicationContext());
  19. // dao.insert();
  20. // dao.update();
  21. // dao.query();
  22. dao.delete();
  23. }
  24. }

Dao.java

  1. package com.example.databasedemo;
  2.  
  3. import android.content.Context;
  4. import android.database.Cursor;
  5. import android.database.sqlite.SQLiteDatabase;
  6. import android.util.Log;
  7.  
  8. /**
  9. * 这个类用于对数据库的增删改查
  10. */
  11. public class Dao {
  12.  
  13. private final DatabaseHelper mHelper;
  14. private static final String TAG="Dao";
  15. public Dao(Context context){
  16.  
  17. //创建数据库
  18. //Ctrl+Alt+F,之后加回车,创建成员变量
  19. mHelper = new DatabaseHelper(context);
  20.  
  21. }
  22.  
  23. public void insert(){
  24. SQLiteDatabase db = mHelper.getWritableDatabase();
  25. String sql="insert into "+Constants.TABLE_NAME+"(_id,name,age,salary,phone) values(?,?,?,?,?)";
  26. Object []obj={1,"zzw",19,2,1234567890};
  27. db.execSQL(sql,obj);
  28. db.close();
  29. }
  30.  
  31. public void delete(){
  32. SQLiteDatabase db = mHelper.getWritableDatabase();
  33. String sql="delete from "+Constants.TABLE_NAME+" where name = ?";
  34. Object []obj={"zzw"};
  35. db.execSQL(sql,obj);
  36. db.close();
  37. }
  38.  
  39. public void update(){
  40. SQLiteDatabase db = mHelper.getWritableDatabase();
  41. String sql="update "+Constants.TABLE_NAME+" set salary= ? where name = ?";
  42. Object []obj={3,"zzw"};
  43. db.execSQL(sql,obj);
  44. db.close();
  45. }
  46.  
  47. public void query(){
  48. SQLiteDatabase db = mHelper.getWritableDatabase();
  49. String sql="select * from "+Constants.TABLE_NAME+" where name = ?";
  50. String []obj={"zzw"};
  51. Cursor cursor = db.rawQuery(sql, obj);
  52. while (cursor.moveToNext()){
  53. String name = cursor.getString(cursor.getColumnIndex("name"));
  54. String age = cursor.getString(cursor.getColumnIndex("age"));
  55. Log.d(TAG,"名字:"+name+"年龄:"+age);
  56. }
  57. cursor.close();
  58. db.close();
  59. }
  60. }

插入数据

修改数据

查看数据

删除数据

通过SQL语句操作Sqlite数据库的更多相关文章

  1. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  2. 用SQL语句操作Sqlite数据库的示例代码

    import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...

  3. Electron中使用sql.js操作SQLite数据库

    推荐sql.js——一款纯js的sqlite工具. 一.关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite ...

  4. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

  5. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  6. 在myeclipse中配置DB Driver(数据库用MySql),并在myeclipse执行sql语句操作

    在myeclipse中配置DB Driver(数据库用MySql),并在myeclipse执行sql语句操作 MyEclipse6.5    ,  mysq驱动jar包为mysql-connector ...

  7. 043:Django使用原生SQL语句操作数据库

    Django使用原生SQL语句操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库.这里我们以配置 MySQL 为例来讲解. Django 连接数据库,不需要单独的创建一个连 ...

  8. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  9. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

随机推荐

  1. [转载]JDK自带的实用工具——native2ascii.exe

    做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,原因是编码方式的不一致.native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt, ...

  2. Problem A: Assembly Required K路归并

    Problem A: Assembly Required Princess Lucy broke her old reading lamp, and needs a new one. The cast ...

  3. jenkins -- 邮件的配置

    参考博文:https://blog.csdn.net/lykio_881210/article/details/81135769 https://www.jianshu.com/p/29a29ce6e ...

  4. Python 使用 requests 模块发送请求的使用及封装

    一.requests 模块基本使用 1.准备接口的URL.请求参数.请求头 # 1. 构造注册.登录.充值请求的url register_url = "注册url" login_u ...

  5. 011.Oracle数据库分页,取前10条数据

    SELECT ATA FROM LM_FAULT WHERE ( OCCUR_DATE BETWEEN to_date( '2017-05-01', 'yyyy-MM-DD' ) AND to_dat ...

  6. 利用ZXing.Net生成和识别二维码

    ZXing.Net:ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库. github:https://github.com/micjahn/ZXing.Net 直接将字符 ...

  7. 解决物理机U盘安装Kali Linux2018.1,光驱无法加载问题

    1.无效的方法: (1)执行 df -m,然后查看U盘设备是否挂载到了/media,导致cd-rom不能被挂载,执行 umount  /media. (2)在光驱加载安装界面,把U盘拔下换到电脑的另外 ...

  8. Java多线程之以7种方式让主线程等待子线程结束

    记一次主线程等待子线程结束的多种方法的学习 在学习多线程时,最开始遇到的问题其实是"计算子线程运行时间",写到最后发现本文和标题更为符合,但是仍然基于问题:"在主线程中获 ...

  9. 每天一点点之python - 基础语法

    1.字符串的拼接 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125) 输出结果如下: 可以通过和c语言一样,也可以通过format()来实现 2.简单运 ...

  10. C#验证码 使用GDI绘制验证码

    首先展示一下效果图如下: C#中的GDI特别方便,很多方法我们只要简单的调用就可以实现很复杂的功能.具体实现过程如下: 首先创建一个windows窗体应用(测试使用,实际开发winform程序时在需要 ...