【数据库】greendao的使用(greendao+SQLite)

1.安装SDK(由于之前是java,电脑有jdk环境,省略,SDK需要配置环境,和jdk基本相同,百度就完了)操作2.安装Android Studio以上都可以在https://www.androiddevtools.cn/下载3.开发登录,注册,修改密码功能要求: 1. 在登录页面增加注册按钮,点击按钮进入注册页面, 2. 使用greendao,设计一个user基类的数据库 3. 注册页面与登录页面风格一致,但是密码输入行有2行,点击注册需要用户名和两个密码是否为空,是否符合之前的账号密
摘要由CSDN通过智能技术生成

1.安装SDK(由于之前是java,电脑有jdk环境,省略,SDK需要配置环境,和jdk基本相同,百度就完了)操作

2.安装Android Studio

以上都可以在AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载下载

3.开发登录,注册,修改密码功能


要求: 1. 在登录页面增加注册按钮,点击按钮进入注册页面, 2. 使用greendao,设计一个user基类的数据库 3. 注册页面与登录页面风格一致,但是密码输入行有2行,点击注册需要用户名和两个密码是否为空,是否符合之前的账号密码规则,校验两次输入密码是否一致,校验数据库是否已有用户名 4. 对数据库进行insert,在登陆页面输入用户名密码,对数据库进行查询,核对,提示正确或者错误,跳转主页 5. 主页增加修改密码功能,页面可以复用注册页面,但是不可以输入账号,密码输入两次一致即更新数据库,自动跳转回登录页面重新登录。


思想方式:先完成简单的登录注册,再百度greendao将登录注册功能获取数据的代码替换。最后根据自己的代码完成修改密码操作。


新建project的过程皆省略,百度

AndroidManifest.xml中需要注册新建的Activity

例如:

 

最后直接贴代码:

结构:

1.配置greendao

中加:

classpath "org.greenrobot:greendao-gradle-plugin:3.3.0"

中加:

1.apply plugin: 'org.greenrobot.greendao'
2.implementation 'org.greenrobot:greendao:3.3.0'
3.android {}下加:
greendao{ schemaVersion 2 //版本 daoPackage 'com.example.myapplication.greendao' //包名 用来生成实体类的几个类的包
targetGenDir 'src/main/java' //目录 
}

User(类似于java中的实体类):

package com.example.myapplication.greendao;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Unique;

@Entity
public class User {
//主键自动增长
    @Id(autoincrement = true)
    private Long id;

    @NotNull @Unique//唯一
    private String name;
    @NotNull
    private String password;
    @NotNull
    private String password1;
    @Generated(hash = 1004224251)
    public User(Long id, @NotNull String name, @NotNull String password,
            @NotNull String password1) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.password1 = password1;
    }
    @Generated(hash = 586692638)
    public User() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return this.password;
    }
    public void setPassword(String password) { this.password = password; }
    public String getPassword1() {
        return this.password1;
    }
    public void setPassword1(String password1) { this.password1 = password1; }

}

注意:

1.User中只需要写private的几个,get和set以及greendao下的几个类都是点击Build,再点击make project或下边那个生成的。

2.如果删除了属性,要把hash都删除再bulid,否则容易报错

3.UserDao中就已经实现了新建表的操操作作

DBManager(用来建数据库以及获取可操作数据库)

package com.example.myapplication.db;

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

import com.example.myapplication.greendao.DaoMaster;
import com.example.myapplication.greendao.DaoSession;

public class DBManager {
    private Context context;
    private final static String dbName = "test.db";
    private static DBManager mInstance;//单例
    private DaoMaster.DevOpenHelper openHelper;
    private DaoSession mDaoSession;
    private SQLiteDatabase db;
    public DBManager(Context context){
        this.context = context;
        openHelper = new DaoMaster.DevOpenHelper(context,dbName,null);

    }

    /**
     * 双重检索获取DBManager对象的单例
     * @param context
     * @return
     */
    public static DBManager getInstance(Context context){
        if (mInstance == null){
            synchronized (DBManager.class){
                if (mInstance == null){
                    mInstance = new DBManager(context);
                }
            }
        }
        return mInstance;
    }

    /**
     * 获取可读的数据库
     * @return
     */
    public SQLiteDatabase getReadableDatabase(){
        if (openHelper == null){
            openHelper = new DaoMaster.DevOpenHelper(context,dbName,null);
        }
        SQLiteDatabase db = openHelper.getReadableDatabase();
        return db;
    }

    /**
     * 获取可写的数据库
     * @return
     */
    public SQLiteDatabase getWritableDatabase(){
        if (openHelper == null){
            openHelper = new DaoMaster.DevOpenHelper(context,dbName,null);
        }
        SQLiteDatabase db = openHelper.getWritableDatabase();
        return db;
    }

    /**
     * 获取可写的会话层
     * @return
     */
    public DaoSession getWriteDaoSession(){
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        mDaoSession = daoMaster.newSession();
        return mDaoSession;
    }
    /**
     * 获取可读的会话层
     * @return
     */
    public DaoSession getReadDaoSession(){
        DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
        mDaoSession = daoMaster.newSession();
        return mDaoSession;
    }
}

SaveInfo(用于对数据库表的曾删改查操作)

package com.example.myapplication.db;

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

import androidx.appcompat.widget.LinearLayoutCompat;

import com.example.myapplication.greendao.DaoMaster;
import com.example.myapplication.greendao.DaoSession;
import com.example.myapplication.greendao.User;
import com.example.myapplication.greendao.UserDao;

import org.greenrobot.greendao.query.Query;
import org.greenrobot.greendao.query.QueryBuilder;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class SaveInfo {

    public static boolean SaveInformation(Context context, User user) {
        try {

            DaoSession daoSession = DBManager.getInstance(context).getWriteDaoSession();
            UserDao userDao = daoSession.getUserDao();
//            userDao.createTable(daoSession.getDatabase(),true);
            userDao.insert(user);
//            FileOutputStream fos = context.openFileOutput("data.txt", Context.MODE_APPEND);
//            fos.write(("用户名:" + user.getName() + " 密码:" + user.getPassword() + "邮箱:" + user.getMail()).getBytes());
//            fos.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 修改
     * @param context
     * @param user
     * @return
     */
    public static boolean UpdateInformation(Context context, Use
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用SQLitestudio打开GreenDAO加密数据库,需要按照以下步骤进行: 1. 首先,确保你已经安装了SQLitestudio,可以从官方网站下载并安装。 2. 打开SQLitestudio并点击"文件"菜单,选择"打开数据库"选项。 3. 在打开的对话框中,浏览文件系统并选择你要打开的GreenDAO加密数据库文件,然后点击"打开"按钮。 4. 在"解密数据库"对话框中,输入你设置的GreenDAO数据库的加密密码,并确保"使用GreenDAO加密"选项被选中。 5. 点击"确定"按钮,SQLitestudio会尝试用你提供的密码解密数据库文件。 6. 如果密码正确,数据库将被成功解密并显示在SQLitestudio的主窗口中。 7. 现在你可以对数据库进行各种操作了,比如查看表结构、查询数据等。 需要注意的是,SQLitestudio虽然可以打开和操作GreenDAO加密数据库,但它并不直接支持GreenDAO的特定功能,比如自动生成的实体类和数据访问对象(DAO)。如果你需要使用这些功能,建议使用GreenDAO提供的自动生成工具和API来操作数据库。 ### 回答2: 要使用SqliteStudio打开GreenDAO加密数据库,需要按照以下步骤进行操作: 1. 首先,下载并安装SqliteStudio软件,确保已经在计算机上正确安装并启动。 2. 打开SqliteStudio,点击菜单栏中的“数据库”选项,选择“连接到数据库”。 3. 在弹出的对话框中,选择“SQLite”作为数据库类型,然后点击“继续”。 4. 在“数据库文件”字段中,浏览到保存加密数据库的文件路径,并选择要打开的GreenDAO加密数据库文件。 5. 在“密码”字段中,输入用于加密数据库的密码。确保密码与原始数据库加密方式一致,否则无法正确打开。 6. 在“配置文件”字段中,选择相应的配置文件,如果没有则选择“默认配置”。 7. 点击“测试连接”按钮,确保连接设置正确,如果测试通过则点击“连接”。 8. 等待一段时间,SqliteStudio将连接到GreenDAO加密数据库,并在左侧的导航栏中显示数据库的表和视图。 9. 现在,可以浏览和编辑数据库中的表和数据,执行自定义的SQL查询等操作。 10. 在使用完毕后,记得点击SqliteStudio菜单栏中的“断开连接”选项,以确保数据库的同步和安全关闭。 总结:通过以上步骤,我们就可以使用SqliteStudio打开GreenDAO加密数据库。请注意,这些步骤仅适用于已加密的GreenDAO数据库,如果数据库没有加密或使用其他加密方式,则无法通过这种方式打开。 ### 回答3: 要使用SQLiteStudio打开GreenDao加密的数据库,需要按照以下步骤操作: 1. 确保已经安装并启动SQLiteStudio软件。 2. 打开SQLiteStudio软件后,点击菜单栏中的“文件”,选择“打开数据库”选项。 3. 在弹出的对话框中,选择要打开的加密数据库文件,点击“打开”。 4. 然后,弹出的对话框会要求输入数据库密码。输入正确的密码,点击“确定”。 5. 如果密码正确,SQLiteStudio将会打开该加密数据库,并显示其中的表格和数据。 注意事项: - 确保输入的密码正确,否则将无法打开加密数据库。 - 如果忘记了数据库密码,无法使用SQLiteStudio直接打开数据库,除非通过其他方式找回密码或者重新创建一个未加密的数据库。 希望以上步骤能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值