| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> android:kotlin语言使用greendao3,跨平台app开发框架 -> 正文阅读 |
|
[移动开发]android:kotlin语言使用greendao3,跨平台app开发框架 |
apply plugin: ‘org.greenrobot.greendao’ greendao { //数据库的schema版本,也可以理解为数据库版本号 schemaVersion 1 //设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。 daoPackage ‘tsou.com.simple.greendaoforkotlin.greendao’ //设置DaoMaster、DaoSession、Dao目录 targetGenDir ‘src/main/java’ } dependencies compile ‘org.greenrobot:greendao:3.2.0’ }
buildscript { ext.kotlin_version = ‘1.1.50’ repositories { mavenCentral() google() jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0-beta7’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.0’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 步骤二、创建Student实体类 package tsou.com.simple.greendaoforkotlin.bean; import android.support.annotation.Keep; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Generated; @Entity(generateConstructors = false) public class Student { @Id private Long id; private String name; private int age; public Student() { } @Keep public Student(String name, int age) { this.name = name; this.age = age; } public Student(Long id, String name, int age) { this.id = id; this.name = name; this.age = age; } @Keep public Long getId() { return id; } @Keep public void setId(Long id) { this.id = id; } @Keep public String getName() { return name; } @Keep public void setName(String name) { this.name = name; } @Keep public int getAge() { return age; } @Keep public void setAge(int age) { this.age = age; } @Keep @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Student)) return false; Student student = (Student) o; return name.equals(student.name); } @Keep @Override public int hashCode() { return (int) (id ^ (id >>> 32)); } @Keep @Override public String toString() { return “Student{” + “id=” + id + “, name=’” + name + ‘’’ + “, age=” + age + ‘}’; } } 步骤三、修复一下工程,自动生成greendao包下的类(就是点击一下小锤子),你会自动生成greendao包中的类。 步骤四、开始使用,创建管理类 package tsou.com.simple.greendaoforkotlin.manager import android.content.Context import android.database.sqlite.SQLiteDatabase import tsou.com.simple.greendaoforkotlin.greendao.DaoMaster import tsou.com.simple.greendaoforkotlin.greendao.DaoSession class DbManager private constructor(mContext: Context) { private val DB_NAME = “test.db” private var mDevOpenHelper: DaoMaster.DevOpenHelper? = null private var mDaoMaster: DaoMaster? = null private var mDaoSession: DaoSession? = null init { // 初始化数据库信息 mDevOpenHelper = DaoMaster.DevOpenHelper(mContext, DB_NAME) getDaoMaster(mContext) getDaoSession(mContext) } companion object { @Volatile var instance: DbManager? = null fun getInstance(mContext: Context): DbManager? { if (instance == null) { synchronized(DbManager::class) { if (instance == null) { instance = DbManager(mContext) } } } return instance } } /**
*/ fun getReadableDatabase(context: Context): SQLiteDatabase? { if (null == mDevOpenHelper) { getInstance(context) } return mDevOpenHelper?.getReadableDatabase() } /**
*/ fun getWritableDatabase(context: Context): SQLiteDatabase? { if (null == mDevOpenHelper) { getInstance(context) } return mDevOpenHelper?.getWritableDatabase() } /**
*/ fun getDaoMaster(context: Context): DaoMaster? { if (null == mDaoMaster) { synchronized(DbManager::class.java) { if (null == mDaoMaster) { mDaoMaster = DaoMaster(getWritableDatabase(context)) } } } return mDaoMaster } /**
*/ fun getDaoSession(context: Context): DaoSession? { if (null == mDaoSession) { synchronized(DbManager::class.java) { mDaoSession = getDaoMaster(context)?.newSession() } } return mDaoSession } } 步骤五、增删改查, package tsou.com.simple.greendaoforkotlin.dao import android.content.Context import tsou.com.simple.greendaoforkotlin.bean.Student import tsou.com.simple.greendaoforkotlin.greendao.StudentDao import tsou.com.simple.greendaoforkotlin.manager.DbManager class StudentDaoOpe private constructor() { private object mHolder { val instance = StudentDaoOpe() } companion object { fun getInstance(): StudentDaoOpe { return mHolder.instance } } /**
*/ fun insertData(context: Context?, stu: Student) { DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.insert(stu) } /**
*/ fun insertData(context: Context?, list: List?) { if (null == list || list.size <= 0) { return } DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.insertInTx(list) } /**
*/ fun saveData(context: Context?, student: Student) { DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.save(student) } /**
*/ fun deleteData(context: Context?, student: Student) { DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.delete(student) } /**
*/ fun deleteByKeyData(context: Context?, id: Long) { DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.deleteByKey(id) } /**
*/ fun deleteAllData(context: Context?) { DbManager.getInstance(context!!)?.getDaoSession(context)?.getStudentDao()?.deleteAll() } /**
最后愿你有一天,真爱自己,善待自己。
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 14:26:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |