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);
}
/**
*/
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);
}
/**
*/
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();
}
}
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">
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:orientation=“horizontal”>
android:id="@+id/add"
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:text=“增” />
android:id="@+id/delete"
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:text=“删” />
android:id="@+id/updata"
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:text=“改” />
android:id="@+id/check"
android:layout_width=“0dp”
android:layout_height=“wrap_content”
android:layout_weight=“1”
android:text=“查” />
android:id="@+id/deleteAll"
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_centerInParent=“true”
android:layout_weight=“1”
android:text=“删除全部” />
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查” />
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(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
网上学习 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)]