package com.xkx.book.database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.xkx.book.enity.User;
import java.util.ArrayList;
import java.util.List;
public class UserDBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "user.db";
private static final String TABLE_NAME = "user_info";
private static final int DB_VERSION = 1;
private static UserDBHelper mHelper = null;
private SQLiteDatabase mRDB = null;
private SQLiteDatabase mWDB = null;
private UserDBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
//利用单例模式获取数据库帮助器的唯一实例
public static UserDBHelper getInstance(Context context) {
if (mHelper == null) {
mHelper = new UserDBHelper(context);
}
return mHelper;
}
// 创建数据库,执行建表语句
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
" userid INTEGER not null," +
" username varchar not null," +
" password LONG not null," +
" is_book INTEGER not null," +
" user_status INTEGER not null," +
" is_deleted INTEGER not null);";
db.execSQL(sql);
db.execSQL("insert into " + TABLE_NAME + "(userid,username,password,is_book,user_status,is_deleted)Values('admin','管理员','1','0','1','0')");
db.execSQL("insert into " + TABLE_NAME + "(userid,username,password,is_book,user_status,is_deleted)Values('1001','用户1001','1','0','0','0')");
}
//打开数据库的读连接
public SQLiteDatabase openReadLink() {
if (mRDB == null || !mRDB.isOpen()) {
mRDB = mHelper.getReadableDatabase();
}
return mRDB;
}
//打开数据库的写连接
public SQLiteDatabase openWriteLink() {
if (mWDB == null || !mWDB.isOpen()) {
mWDB = mHelper.getWritableDatabase();
}
return mWDB;
}
//关闭数据库连接
public void closeLink() {
if (mRDB != null && mRDB.isOpen()) {
mRDB.close();
mRDB = null;
}
if (mWDB != null && mWDB.isOpen()) {
mWDB.close();
mWDB = null;
}
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
//添加用户
public long insert(User user) {
ContentValues values = new ContentValues();
values.put("userid", user.userid);
values.put("username", user.username);
values.put("password", user.password);
values.put("is_book", user.is_book);
values.put("user_status", user.user_status);
values.put("is_deleted", user.is_deleted);
//执行插入记录动作,该语句返回插入记录的行号
//如果第三个参数values 为null或者元素个数为0,由于insert()方法必须添加一条除了主键之外其它字段
//
//
//如果第三个参数values 不为null并且元素的个数大于0,可以把第二个参数设置为null
return mWDB.insert(TABLE_NAME, null, values);
}
// 删除用户
public long deleteById(String userid) {
//删除所有
// return mWDB.delete(TABLE_NAME, "1=1", null);
//按名字删除
return mWDB.delete(TABLE_NAME, "userid=?", new String[]{userid});
}
// 修改用户
public long update(User user) {
ContentValues values = new ContentValues();
values.put("userid", user.userid);
values.put("username", user.username);
values.put("password", user.password);
values.put("is_book", user.is_book);
values.put("user_status", user.user_status);
values.put("is_deleted", user.is_deleted);
return mWDB.update(TABLE_NAME, values, "userid=?", new String[]{user.userid});
}
//查询所有
public List<User> queryAll() {
List<User> list = new ArrayList<>();
//执行记录查询动作,该语句返回结果集的游标
Cursor cursor = mRDB.query(TABLE_NAME, null, null, null, null, null, null);
//循环游标,取出游标所指的每条记录
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.userid = cursor.getString(1);
user.username = cursor.getString(2);
user.password = cursor.getLong(3);
user.is_book = cursor.getInt(4);
user.user_status = cursor.getInt(5);
user.is_deleted = cursor.getInt(6);
list.add(user);
}
return list;
}
//按name 查询
public List<User> queryByName(String name) {
List<User> list = new ArrayList<>();
//执行记录查询动作,该语句返回结果集的游标
Cursor cursor = mRDB.query(TABLE_NAME, null, "name=?", new String[]{name}, null, null, null);
//循环游标,取出游标所指的每条记录
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.userid = cursor.getString(1);
user.username = cursor.getString(2);
user.password = cursor.getLong(3);
user.is_book = cursor.getInt(4);
user.user_status = cursor.getInt(5);
user.is_deleted = cursor.getInt(6);
list.add(user);
}
return list;
}
//按Uid 查询
public List<User> queryById(String uid) {
List<User> list = new ArrayList<>();
//执行记录查询动作,该语句返回结果集的游标
Cursor cursor = mRDB.query(TABLE_NAME, null, "userid=?", new String[]{uid}, null, null, null);
//循环游标,取出游标所指的每条记录
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.userid = cursor.getString(1);
user.username = cursor.getString(2);
user.password = cursor.getLong(3);
user.is_book = cursor.getInt(4);
user.user_status = cursor.getInt(5);
user.is_deleted = cursor.getInt(6);
list.add(user);
}
return list;
}
//按Uid和psw 查询
public List<User> queryByUid(String uid, String psw) {
List<User> list = new ArrayList<>();
//执行记录查询动作,该语句返回结果集的游标
Cursor cursor = mRDB.query(TABLE_NAME, null, "userid=? and password=?", new String[]{uid, psw}, null, null, null);
//循环游标,取出游标所指的每条记录
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.userid = cursor.getString(1);
user.username = cursor.getString(2);
user.password = cursor.getLong(3);
user.is_book = cursor.getInt(4);
user.user_status = cursor.getInt(5);
user.is_deleted = cursor.getInt(6);
list.add(user);
}
return list;
}
}
王二空间
- 粉丝: 7620
- 资源: 2110
最新资源
- 基于Simulink的风储联合调频与光伏变压减载仿真模型研究(附文献),风储联合调频+光伏变压减载simulink仿真模型 ①风机惯量调频 ②储能下垂控制联合调频:搭建了考虑储能充放电效率的含电池储能
- 三菱PLC与触摸屏组合的三层电梯控制设计程序详解:梯形图、接线图与组态画面全解析,基于三菱PLC和三菱触摸屏的三层电梯控制组态设计程序 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,核心
- 双Buck电路并联下VDCM与下垂控制结合策略:增强直流微电网稳定性与电压控制性能,双buck电路并联(VDCM控制+下垂控制) 变器并联控制方案中,下垂控制是一种经典的控制策略,但下垂控制因缺少传统
- 非线性磁链观测器与PLL源码解析:VESC无感观测器代码调试及仿真研究,非线性磁链观测器+PLL(源码+参考文献+仿真模型) ①源码:VESC的无感非线性观测器代码,并做了简单的调试,可以做到0速启
- Hyperworks MotionView软件下的发动机激励噪声仿真:识别车内噪声的技术路线揭秘,发动机激励噪声仿真 使用软件为hyperworks motionview 技术路线:提取载荷等效轴心载
- 微环谐振腔光学频率梳MATLAB仿真研究:考虑色散、克尔非线性与外部泵浦因素的LLE方程实现分析,微环谐振腔的光学频率梳matlab仿真 微腔光频梳仿真 包括求解LLE方程(Lugiato-Lefev
- 基于Simulink的四旋翼无人机运动学和动力学建模与PD控制仿真研究,四旋翼无人机,进行simulink建模与仿真,对它的运动学模型和动力学模型进行了必要且详细的研究和分析,运用牛顿-欧拉方程建立了
- BLDC无刷直流电机Matlab仿真:转速电流双闭环控制及无感反电动势过零换相方式研究,BLDC无刷直流电机matlab仿真,转速电流双闭环控制,有感或无感相方式,电机模型自带反电动势输出,默认用无感
- 基于MATLAB的改进量子遗传算法多变量函数寻优代码详解:动态调整量子旋转门提高计算精度,基于matlab的改进的量子遗传算法对多变量函数寻优完整代码,内容详细,包含运行说明,该代码在量子旋转门调整中
- 三菱LEHY-Pro电梯地址码详解:专业电梯技术解析与操作指南,三菱电梯LEHY-Pro电梯地址码 ,关键词:三菱电梯;LEHY-Pro;电梯地址码;通讯协议;故障诊断;维护保养,三菱电梯LEHY-P
- 有百词斩,翻页时钟,日历
- 飞度电感均衡控制逻辑:以三节电池为例详析sfunction逻辑运算的巧妙应用,飞度电感均衡 三节电池为例 内附控制逻辑 sfunction 逻辑运算 ,核心关键词:飞度电感均衡; 三节电池; 内附控
- stylus-chrome-mv3-2.3.7-c337ba1-id.zip
- 非线性磁链观测器源码详解:VESC无感观测器与PLL结合,附详细注释、文献出处及仿真模型,非线性磁链观测器+PLL(源码+参考文献+仿真模型) ①源码:VESC的无感非线性观测器代码,并做了简单的调试
- "基于SVM代理模型的电机多目标优化研究:平均转矩、转矩脉动与径向推力的高精度优化",基于支持向量机(SVM)代理模型的,电机多目标优化 平均转剧,转剧脉动,迳向推力三个优化目标的R2都在0.99往
- 基于深度神经网络DNN的多输出回归预测模型:程序调试完成,轻松替换数据,实现高质评估与图例展示,DNN多输出回归 基于深度神经网络(DNN)的多输出回归预测(多输入多输出) 程序已经调试好,数据格式为
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈