greendao3,图文详解

public class StudentDaoOpe {

private static final String DB_NAME = “test.db”;

private static final String PASSWPRD = “password”;

/**

  • 添加数据至数据库

  • @param context

  • @param stu

*/

public static void insertData(Context context, Student stu) {

// DbManager.getDaoSession(context, DB_NAME,PASSWPRD).getStudentDao().insert(stu);

DbManager.getDaoSession(context, DB_NAME,PASSWPRD).getStudentDao().insertOrReplace(stu);

}

/**

  • 将数据实体通过事务添加至数据库

  • @param context

  • @param list

*/

public static void insertData(Context context, List list) {

if (null == list || list.size() <= 0) {

return;

}

// DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().insertInTx(list);

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().insertOrReplaceInTx(list);

}

/**

  • 添加数据至数据库,如果存在,将原来的数据覆盖

  • 内部代码判断了如果存在就update(entity);不存在就insert(entity);

  • @param context

  • @param student

*/

public static void saveData(Context context, Student student) {

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().save(student);

}

/**

  • 删除数据至数据库

  • @param context

  • @param student 删除具体内容

*/

public static void deleteData(Context context, Student student) {

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().delete(student);

}

/**

  • 根据id删除数据至数据库

  • @param context

  • @param id 删除具体内容

*/

public static void deleteByKeyData(Context context, long id) {

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().deleteByKey(id);

}

/**

  • 删除全部数据

  • @param context

*/

public static void deleteAllData(Context context) {

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().deleteAll();

}

/**

  • 更新数据库

  • @param context

  • @param student

*/

public static void updateData(Context context, Student student) {

DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().update(student);

}

/**

  • 查询所有数据

  • @param context

  • @return

*/

public static List queryAll(Context context) {

QueryBuilder builder = DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().queryBuilder();

return builder.build().list();

}

/**

  • 根据id,其他的字段类似

  • @param context

  • @param id

  • @return

*/

public static List queryForId(Context context, long id) {

QueryBuilder builder = DbManager.getDaoSession(context, DB_NAME, PASSWPRD).getStudentDao().queryBuilder();

/**

  • 返回当前id的数据集合,当然where(这里面可以有多组,做为条件);

  • 这里build.list();与where(StudentDao.Properties.Id.eq(id)).list()结果是一样的;

  • 在QueryBuilder类中list()方法return build().list();

*/

// Query build = builder.where(StudentDao.Properties.Id.eq(id)).build();

// List list = build.list();

return builder.where(StudentDao.Properties.Id.eq(id)).list();

}

}

  • mainactivity布局
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:tools=“http://schemas.android.com/tools”

android:id="@+id/activity_main"

android:layout_width=“match_parent”

android:layout_height=“match_parent”

tools:context=".MainActivity">

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:orientation=“horizontal”>

<Button

android:id="@+id/add"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_weight=“1”

android:text=“增” />

<Button

android:id="@+id/delete"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_weight=“1”

android:text=“删” />

<Button

android:id="@+id/updata"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_weight=“1”

android:text=“改” />

<Button

android:id="@+id/check"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_weight=“1”

android:text=“查” />

<Button

android:id="@+id/deleteAll"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerInParent=“true”

android:layout_weight=“1”

android:text=“删除全部” />

<Button

android:id="@+id/check_id"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_above="@id/deleteAll"

android:layout_centerInParent=“true”

android:text=“根据id查” />

  • mainActivity

package com.yintong.secure.simple.encryptiongreendao;

import android.content.Context;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import com.yintong.secure.simple.encryptiongreendao.bean.Student;

import com.yintong.secure.simple.encryptiongreendao.dao.StudentDaoOpe;

import java.util.ArrayList;

import java.util.List;

import butterknife.Bind;

import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {

@Bind(R.id.add)

Button add;

@Bind(R.id.delete)

Button delete;

@Bind(R.id.updata)

Button updata;

@Bind(R.id.check)

Button check;

@Bind(R.id.deleteAll)

Button deleteAll;

@Bind(R.id.check_id)

Button checkId;

private Context mContext;

private Student student;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ButterKnife.bind(this);

mContext = this;

initData();

initListener();

}

private List studentList = new ArrayList<>();

/**

  • 初始化数据

*/

private void initData() {

for (int i = 0; i < 100; i++) {

student = new Student((long) i, “huang” + i, 25);

studentList.add(student);

}

}

private void initListener() {

/**

*增

*/

add.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

StudentDaoOpe.insertData(mContext, studentList);

}

});

/**

*/

delete.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Student student = new Student((long) 5, “haung” + 5, 25);

/**

  • 根据特定的对象删除

*/

StudentDaoOpe.deleteData(mContext, student);

/**

  • 根据主键删除

*/

StudentDaoOpe.deleteByKeyData(mContext, 7);

}

});

/**

*删除所有

*/

deleteAll.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

StudentDaoOpe.deleteAllData(mContext);

}

});

/**

  • 更新

*/

updata.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Student student = new Student((long) 2, “haungxiaoguo”, 16516);

StudentDaoOpe.updateData(mContext, student);

}

});

/**

  • 查询全部

*/

check.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

List students = StudentDaoOpe.queryAll(mContext);

for (int i = 0; i < students.size(); i++) {

Log.i(“Log”, students.get(i).getName());

}

}

});

总结

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

2020面试真题解析
腾讯面试真题解析

阿里巴巴面试真题解析

字节跳动面试真题解析
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md),我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

[外链图片转存中…(img-Zrb6MdIN-1646478706418)]
[外链图片转存中…(img-8EuTXjQB-1646478706419)]

[外链图片转存中…(img-pCXctNea-1646478706419)]

[外链图片转存中…(img-UoqyaxA7-1646478706420)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

[外链图片转存中…(img-W3qQnXu0-1646478706420)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K3wise数据表是一种用于存储和组织数据的图形化工具。它通常用于在电子表格软件中创建和管理各种类型的数据表格。使用K3wise数据表可以轻松地记录、跟踪和分析数据。 首先,K3wise数据表的主要特点是它的图形化界面。通过简单的拖拽和放置,用户可以轻松地创建表格,并设置各个列的名称和属性。这使得数据表的设计和构建变得非常直观和简单。 其次,K3wise数据表提供了丰富的功能来管理数据。用户可以通过添加、删除、编辑和排序表格中的行来持续更新数据。此外,用户还可以使用筛选器来快速查找特定条件下的数据。这些功能使得数据的更新和整理变得高效和便捷。 此外,K3wise数据表还具有数据分析的功能。通过使用各种内置的公式和计算功能,用户可以对数据进行各种统计和计算操作。例如,用户可以计算表格中某一列的总和、平均值、最大值和最小值等。这些功能可以帮助用户更好地理解和分析数据。 最后,K3wise数据表还具备数据分享和协作的能力。用户可以将表格导出为不同格式的文件,并将其分享给其他人。同时,多个用户可以同时对同一个数据表进行编辑和更新。这使得团队成员之间的合作变得更加高效和方便。 总的来说,K3wise数据表是一种强大的图形化工具,可用于创建、管理和分析数据表格。它的简单和直观的界面,丰富的功能以及数据分享和协作的能力,使得使用者可以更轻松地处理和使用数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值