文章目录

  • 1.用户实体类
  • 2.SQLiteOpenHelper类
  • 3.数据库名常量类
  • 4.数据库增删改查方法封装
  • 5.界面设计
    • 5.1 登录页面
    • 5.2 注册界面
    • 5.3 修改密码界面
  • 6. 源码下载地址:

1.用户实体类

package com.example.environmentmonitor.entity;/*** 用户实体类*/
public class User {private String userId;//用户账号private String username;//用户密码private String password;public User(String userId,String username, String password) {this.userId=userId;this.username=username;this.password=password;}public User() {}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

2.SQLiteOpenHelper类

package com.example.environmentmonitor.database;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;import androidx.annotation.Nullable;/*** SQLiteOpenHelper类介绍* 定义:SQLiteOpenHelper是一个辅助类* 作用:管理数据库(创建、增、修、删) & 版本的控制。*/
public class DatabaseOpenHelper extends SQLiteOpenHelper {/*** 构造方法* @param context 上下文:运行环境* @ name 数据库名* @ factory 游标工厂* @ version 版本号*/public DatabaseOpenHelper(@Nullable Context context) {super(context, DatabaseConstant.DATABASE_MY_APP, null, DatabaseConstant.VERSION_CODE);Log.d(DatabaseConstant.TAG,"创建数据库");}
//数据库已经存在时,方法是不会被调用的/*** 创建数据库时回调* (第一次创建数据库时被调用)* @param sqLiteDatabase*/@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase) {Log.d(DatabaseConstant.TAG,"创建数据库时回调");/*创建数据库表:t_usersql语句:create table t_user (user_Id int(255) not null AUTO_INCREMENT autoincrement,username varchar(100) not null,password varchar(100) not null)*//*** id 主键* username 用户名* password 用户密码*/String userSql="CREATE TABLE "+DatabaseConstant.T_USER+" (\n" +"        user_id VARCHAR(50)  not null primary key,\n" +"        username VARCHAR(100) not null,\n" +"        password VARCHAR(100) not null)";sqLiteDatabase.execSQL(userSql);}/*** 升级数据库时回调* 至少要升级1才会执行* @param sqLiteDatabase* @param i* @param i1*/@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {Log.d(DatabaseConstant.TAG,"升级数据库时回调");}
}

3.数据库名常量类

package com.example.environmentmonitor.database;/*** 数据库名常量类*/
public interface DatabaseConstant {/*** 环境监测系统数据库*///数据库名称String DATABASE_MY_APP="monitor_system.db";//数据库版本号int VERSION_CODE= 1;//log常量String TAG="DatabaseOpenHelper";//数据库表名String T_USER="t_user";
}

4.数据库增删改查方法封装

package com.example.environmentmonitor.dao;import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;import com.example.environmentmonitor.database.DatabaseConstant;
import com.example.environmentmonitor.database.DatabaseOpenHelper;
import com.example.environmentmonitor.entity.User;import java.sql.PreparedStatement;
import java.util.UUID;/*** 操作数据库的增删改查*/
public class UserDAO {//把数据库命名成为成员变量private final DatabaseOpenHelper databaseOpenHelper;/*** 在构造方法中创建数据库*/public UserDAO(Context context){/*创建一个数据库程序的入口*/databaseOpenHelper=new DatabaseOpenHelper(context);//创建数据库databaseOpenHelper.getWritableDatabase();}/*** 增*/public void insert(User user){SQLiteDatabase sqLiteDatabase=databaseOpenHelper.getWritableDatabase();//插入t_user数据语句/*注意单引号"INSERT INTO "+DatabaseConstant.T_USER+" (user_id,username,password)" +"VALUES ('"+user.getUserId()+"','"+user.getUsername()+"','"+user.getPassword()+"')";*/String insertSql="INSERT INTO "+ DatabaseConstant.T_USER+" (user_id,username,password)" +"VALUES ('"+user.getUserId()+"','"+user.getUsername()+"','"+user.getPassword()+"')";sqLiteDatabase.execSQL(insertSql);sqLiteDatabase.close();}/*** 验证账号、密码*/public User getUserByUsernameAndPassword(String username,String password){SQLiteDatabase sqLiteDatabase=databaseOpenHelper.getWritableDatabase();/*SQLSELECT username,password FROM t_user WHERE username='' AND password=''*/String sql="SELECT username,password FROM t_user WHERE username='"+username+"' AND password='"+password+"'";Cursor cursor=sqLiteDatabase.rawQuery(sql,null);//定义接收对象User user=new User();if(cursor != null && cursor.getCount() > 0){cursor.moveToFirst();user.setUsername(cursor.getString(0));user.setPassword(cursor.getString(1));sqLiteDatabase.close();}else {user=null;}return user;}/*** 根据userId查询用户* cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def iter())和生成器(yield)的MySQLdb对象,* cursor.moveToFirst()指向查询结果的第一个位置。* 一般通过判断cursor.moveToFirst()的值为true或false来确定查询结果是否为空。cursor.moveToNext()是用来做循环的,一般这样来用:while(cursor.moveToNext()){ }* cursor.moveToPrevious()是指向当前记录的上一个记录,是和moveToNext相对应的;* cursor.moveToLast()指向查询结果的最后一条记录*/public User getUserByUsername(String username){SQLiteDatabase sqLiteDatabase=databaseOpenHelper.getWritableDatabase();/*查询SQL:SELECT user_id AS userId,username,password FROM t_user WHERE username = ''*/String sql="SELECT user_id,username,password FROM t_user WHERE username = '"+username+"'";Cursor cursor=sqLiteDatabase.rawQuery(sql,null);User user=new User();if (cursor != null && cursor.getCount() > 0){cursor.moveToFirst();// columnIndex代表列的索引user.setUserId(cursor.getString(0));user.setUsername(cursor.getString(1));user.setPassword(cursor.getString(2));sqLiteDatabase.close();}else {user=null;}return user;}/*** 修改用户密码* @return*/public void modifyUserPassword(User user){SQLiteDatabase sqLiteDatabase=databaseOpenHelper.getWritableDatabase();/* SQL语句:UPDATE t_user SET password='' WHERE user_id=''*/String sql="UPDATE t_user SET password='"+user.getPassword()+"' WHERE username='"+user.getUsername()+"'";sqLiteDatabase.execSQL(sql);sqLiteDatabase.close();}/*** 删除用户密码* @return*/public void deleteUserByUsername(String username){SQLiteDatabase sqLiteDatabase=databaseOpenHelper.getWritableDatabase();/* SQL语句:UPDATE t_user SET password='' WHERE user_id=''*/String sql="DELETE FROM t_user WHERE username="+username;sqLiteDatabase.execSQL(sql);sqLiteDatabase.close();}
}

5.界面设计

5.1 登录页面

5.2 注册界面

5.3 修改密码界面

6. 源码下载地址:

https://download.csdn.net/download/Tian208/85130863

android 实现Sqlite的增删改查及系统的登录注册功能相关推荐

  1. Android Studio SQLite 数据库 增删改查 简单

    源码 效果展示     所有操作都在这个界面完成,操作完直接显示 设计     一个class用来创建数据库,建表,一个activity用来执行增删改查操作 代码 DatebaseHlper impo ...

  2. IOS sqlite数据库增删改查

    1.简介 简单封装sqlite数据库操作类 BaseDB 用于完成对sqlite的增删改查,使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h // ...

  3. 基于python的SQLite数据库增删改查

    与其他数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是一种嵌入式数据库,他的数据库就是一个文件.SQLite将整个数据库,包括定义.表.索引以及数据本身,作为一个单独的.可 ...

  4. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  5. Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】

    前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...

  6. 安卓增删改查用sql语句号码_详解Android中一些SQLite的增删改查操作

    在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Andro ...

  7. sqlite的增删改查操作

    sqlite是android 轻量级数据库 主要是两个类实现创建数据库和数据的增删改查 这个类是MainActivity 是创建数据库对象,通过这个对象dbHelper调用getWritableDat ...

  8. SQLite数据库-增删改查语句

    Android中自带的数据库----SQLite 这里使用Navicat工具来学习 1.创建新的SQLite连接 数据库文件名字和连接名一样就好 2.数据库的创建语句 //创建一个book表 crea ...

  9. C#访问SQLite完整增删改查代码

    以下代码都是经过我测试可用的: 一 一个控制台示例 using System; using System.Data.SQLite;namespace SQLiteSamples {class Prog ...

最新文章

  1. android 自定义loading,Android自定义动画-StarLoadingView
  2. java 与 .net socket_java.net.Socket/java.net.ServerSocket-TCP Socket编程
  3. C++(九)——职工信息管理系统
  4. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重
  5. SqlServer substring用法
  6. TMS、物流系统、司机运输商、承运商、结算流程、运输流程、运输调度、结构图、在途跟踪、提货单、签收单、回单交接、车辆管理、运力资源、报价管理、发票管理、询价单管理、审批报价、KPI数据、适度配载
  7. leetcode 1723.完成所有工作的最短时间 - 二分+递归
  8. 北大本科生凭芯片研究获全球竞赛第一!一作发表8篇EDA领域顶会论文,“致力探索卡脖子难题”
  9. Tcp/Udp端口对照表
  10. 优化Docker镜像大小方案 2017年12月10日 17:54:46 阅读数:1774 标
  11. WordPress重要文件wp-seting.php文件详解
  12. Mysql 时间格式化 DATE_FORMAT使用
  13. 编写PE文件解析器(三)
  14. Eclipse启动参数设置和配置文件修改
  15. 分形之列维(levy)曲线
  16. 华为设备流量抑制及风暴控制配置命令
  17. 《西部世界》S2E9:蝶化庄周,浮生若梦
  18. 并查集(找祖先)(可以将集合当成网或无向图)
  19. 12个在线网站测速工具——web性能
  20. STM32F103做主控自制无刷电机(BLDC)控制器 有感/无感

热门文章

  1. js实现深拷贝与浅拷贝
  2. java 图形处理_课内资源 - 基于Java实现的几何图形处理系统
  3. 机器学习中的K-means算法原理与R语言实例
  4. 利用duplicity与金山快盘 for UbuntuKylin 实现文件云备份
  5. 因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议
  6. 如何使用UltraISO制作U盘系统盘用于重装系统
  7. 一个启动U盘装多系统引导,无需反复格式化,ISO/WIM等文件拷贝到U盘即可启动
  8. 城市精细化治理过程中的智能图像识别如何更精准、更智能?
  9. 让div在页面居中(滚动条滚动时也居中)
  10. Word文档中X的平方怎么打出来?