greenDao_2.0.0学习笔记3-Hello World

本文介绍了一个简单的GreenDAO示例项目,包括如何使用GreenDAO自动生成数据库表和实体类,以及如何进行笔记的增删操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1 让我们从demo开始吧少年

从现在开始将引导您通过一个简单的greendao示例项目。它在https://github.com/greenrobot/greendao其中由两个子项目(文件夹):daoexample和 daoexamplegenerator。你可以克隆版本库获取代码并运行它,或者直接在GitHub上通过点击代码文件来浏览。

如果你已经从Git仓库里将daoexample下载并运行成功,你会看到这是一个简单笔记本程序。你可以输入一些文本然后点击右侧的按钮添加就可以添加一条笔记,它会按照时间顺序进行排序,当你点击一条已经添加的笔记会执行删除操作。

我从github上下载到android studio目录为:

2 预生成的代码和创建表

现在让我们一起看工程代码,其中在程DaoExample下src-gen下有一堆已经生成好的类。

a note.java 就是一个简单的pojo实体类

b NoteDao.java 是一个可以操作Note.java 的dao类

 通过DaoExampleGenerator 工程你可以随时生成Note类和NoteDao类。在项目中你可以用DaoMaster 很方便的得到SQLiteOpenHelper实例,比如以下代码:

new DaoMaster.DevOpenHelper(this"notes-db"null)

注意:你不用去写创建数据库、表的sql语句,greendao会自动去创建。

 

3 插入和删除笔记

经过以上步骤我们创建好数据库、表时,可用以下代码进行插入操作,例如在NoteActivity 中onCreate方法里,用之前生成的Dao类进行添加笔记操作:

第一步:获得一个Dao类:

daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();

第二布:现在可以添加了:

Notenote = new Note(null, noteText, comment, new Date());
noteDao.insert(note);
Log.d("DaoExample""Inserted new note, ID: " + note.getId());

简单吧,只需创建一个Dao对象并调用插入方法即可。当执行完insert插入方法时,该条实体对应的Id也会被数据库计算ID并赋值,你可以在日志中看到过。
接着往下看,我们在onlistitemclick可以找到删除操作,代码如下:
notedao.deletebykey
ID);

其中Dao中还有很多方法,比如loadAll等。

 

 

4 数据模型与代码生成

如果创建Note类的子类或者创建Note类新的实体,可以参考工程DaoExampleGenerator,改工程只包含一个类,用这个类可以创建你需要的数据模型,代码如下:

Schema schema = new Schema(1"de.greenrobot.daoexample");

Entity note= schema.addEntity("Note");
note.addIdProperty();
note.addStringProperty("text").notNull();
note.addStringProperty("comment");
note.addDateProperty("date");

new DaoGenerator().generateAll(schema, "../DaoExample/src-gen");

 

正如你所看到的,创建了一个Schema对象,你可以用它来添加你自己需要的实体。一个实体即对应的一个数据库中的表。一个实体包含属性,该属性映射到数据库列。
一旦Schema和你需要定义的实体类创建完成,您可以执行该java工程代码。这时note.java和notedao.java将会被自动创建。

 

 

<think>好的,我需要帮助用户解决如何在Linux系统中卸载特定版本的QQ软件包,特别是linuxqq_2.0.0-b2-1089_amd64.deb。首先,我要根据用户提供的引用资料来整理正确的步骤。 首先,用户提到引用[1]中的方法,使用sudo dpkg -r linuxqq来卸载QQ。但这里可能需要注意包名称是否正确。因为有时候安装的包名可能和用户认为的不一样,比如安装的是具体的文件名,而实际安装后的包名可能不同。例如,用户下载的是linuxqq_2.0.0-b2-1089_amd64.deb,安装后的包名可能简化为linuxqq,或者可能有其他名称。需要确认卸载时使用的正确包名。 然后,用户提供的引用[3]提到要使用安装时对应的方法卸载,并且需要root权限。这里应该建议用户根据他们安装时的方式选择卸载方法,比如用dpkg或者apt。例如,如果用户用dpkg -i安装的,那么用dpkg -r来卸载是合适的。如果用户用的是apt install,可能需要用apt remove。但根据引用[1]和[2],用户是通过dpkg安装的,所以使用dpkg卸载更合适。 接下来,引用[4]提到在Linux下卸载软件有时比较困难,尤其是通过命令安装的软件。所以需要给出明确的步骤,避免用户找不到卸载方法。可能需要先检查已安装的包名,确保正确卸载。 用户的问题是关于卸载特定版本的.deb包,而不仅仅是QQ软件。可能需要明确卸载已安装的软件包,而不是直接处理.deb文件,因为一旦安装,deb文件已经被解压到系统,卸载时应该使用包管理器处理包名。 现在,综合这些信息,正确的步骤应该是: 1. 确定已安装的QQ包名称。可以使用dpkg -l | grep qq来查找,确认包名是否为linuxqq或者其他名称。 2. 如果包名是linuxqq,则使用sudo dpkg -r linuxqq来卸载。 3. 如果包名不同,或者用户不确定,可能需要使用完整的包名,比如sudo dpkg -r linuxqq_2.0.0-b2-1089_amd64,但通常包名会省略版本和架构信息,所以更可能的是linuxqq。 4. 此外,可能需要清理残留文件,但引用中没有提到,但作为补充建议可以添加。 同时,引用[3]提到尽量使用安装时的对应方式卸载,所以如果用户是用dpkg安装的,就继续用dpkg卸载。如果遇到依赖问题,可能需要使用apt-get remove --purge来彻底清除,但用户的问题可能不需要这么复杂。 用户提到的具体包是linuxqq_2.0.0-b2-1089_amd64.deb,所以安装后的包名可能为linuxqq,卸载命令应为sudo dpkg -r linuxqq。但如果用户安装时指定了不同的名称,可能需要调整。 另外,在引用[1]中,用户执行了sudo dpkg -r linuxqq,这说明包名是linuxqq。因此步骤应该是先卸载,然后如果需要重新安装,可以再次下载安装。 可能的错误情况:如果用户直接使用.deb文件名进行卸载,那是不正确的,因为dpkg卸载需要包名而不是文件名。因此,需要指导用户正确使用包名。 总结步骤: 1. 卸载现有QQ:sudo dpkg -r linuxqq 2. 验证是否卸载成功,可能检查/opt/linuxqq是否存在,或者使用dpkg -l确认。 3. 如果需要彻底清除配置,使用--purge选项,例如sudo apt-get remove --purge linuxqq,但需要确认包管理工具是否兼容,因为用户可能用的是dpkg,而apt是更高层的工具。 可能还需要处理依赖问题,但引用中没有提到相关错误,所以可能不需要。不过根据引用[2],安装时可能需要处理依赖,但卸载时一般不会。因此步骤可能比较简单。 最后,用户的问题是如何卸载特定版本的.deb包,而已经安装的软件包版本可能已经存在,所以正确的步骤是使用包名卸载,而不是文件名。</think>### 卸载Linux QQ特定版本的操作步骤 #### 1. **确认已安装的软件包名称** 在卸载前需明确软件包名称。执行以下命令查看已安装的QQ包名: ```bash dpkg -l | grep qq ``` 输出可能为: `ii linuxqq 2.0.0-b2-1089 amd64 Linux QQ` 其中`linuxqq`为包名,版本号为`2.0.0-b2-1089`[^1]。 #### 2. **使用dpkg卸载软件包** 通过包名卸载(无需包含版本号和架构信息): ```bash sudo dpkg -r linuxqq ``` 若提示依赖问题(如残留配置),可改用以下命令彻底清除: ```bash sudo apt-get remove --purge linuxqq ``` #### 3. **验证卸载结果** - 检查包列表是否已移除: ```bash dpkg -l | grep qq ``` 若无输出,则表明卸载成功。 - 检查安装目录(如`/opt/linuxqq`)是否残留: ```bash ls /opt | grep qq ``` 若存在残留文件,手动删除: ```bash sudo rm -rf /opt/linuxqq ``` #### 4. **处理特殊情况** - **若包名不一致**:若第一步未找到`linuxqq`,可能需根据实际包名调整命令。例如,某些旧版本包名可能为`qq`或`tencent-qq`。 - **残留配置文件**:用户配置通常保存在`~/.config/tencent-qq`,可手动清理[^4]。 --- ### 相关问题 1. **如何解决`dpkg`卸载时的依赖冲突?** - 使用`sudo apt-get -f install`修复依赖,再重新执行卸载[^2]。 2. **如何彻底清除软件及其所有配置?** - 添加`--purge`参数:`sudo apt-get purge linuxqq`[^3]。 3. **通过源码编译安装的软件如何卸载?** - 需进入源码目录执行`sudo make uninstall`,若无此选项则需手动删除相关文件--- ### 引用说明 : 使用`dpkg -l`可列出已安装的包,结合`grep`过滤特定名称。 [^2]: `apt-get remove --purge`会同时删除软件和配置文件,适用于彻底清理。 [^3]: 依赖冲突时,优先修复系统依赖关系再操作。 : 手动清理时需谨慎,避免误删系统文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值