网站首页 > 开源技术 正文
有时我们的数据属于保存到数据库,对于Android应用和IOS应用,我们一般都会使用SQLite这个嵌入式的数据库作为我们保存数据的工具。由于我们直接操作数据库比较麻烦,而且管理起来也非常的麻烦,所以我今天结束用greendao来保存数据。如果对我的文章感兴趣,欢迎订阅我的头条号:一点热,yeehot.com.
1、我们创建一个Android工程,这里就不着重结束了。
2、使用gradle导入greendao包和greendao-generator包并配置我们的路径。
其中greendao用于我们操作数据库的类。而greendao-generator是用来产生我们的的数据库的数据类。包含了Bean、DAO、DaoMaster、DaoSession 。
我们在项目中添加如下的代码
compile 'org.greenrobot:greendao:3.0.1'
compile 'org.greenrobot:greendao-generator:3.0.0'
3、在src/main下创建一个java-gen的包,用于生成我们的bean类文件
4、创建Dao的生成类文件YeehotGeneratorDao.java,用于生成上面说的几个类。这里我直接在项目里面创建了。
public class YeehotGeneratorDao {
public static void main(String[] args) throws Exception {
//DB_VESION,BEAN 版本号与 包路径
Schema schema = new Schema(1, "com.yeehot.greendao");
addTable(schema);
//第二个参数是我们刚刚的包db的路径。
new DaoGenerator().generateAll(schema, "/Users/yeehot/Desktop/a/GreendaoInfo/app/src/main/java-gen");
}
/**
* @param schema
*/
/**
* @param schema
*/
private static void addTable(Schema schema) {
// 创建一个实体,其实就是表名
Entity User = schema.addEntity("User");
//添加表的属性。
User.addIdProperty();
//添加字符串的属性
User.addStringProperty("email").notNull();
User.addStringProperty("passwd");
User.addStringProperty("userid");
}
}
5、运行一下YeehotGeneratorDao
大概过了一会就生成我们需要的类文件了,如图
6、有了上面的几个类后,我们就基本可以操作我们的数据库了。
我们在创建的登陆页面里面测试看看
首先,我们需要创建一个创建数据库的方法,这样里面的表才能存放进去
package com.yeehot.greendaoinfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.yeehot.greendaoinfo.db.DaoMaster;
import com.yeehot.greendaoinfo.db.DaoSession;
import com.yeehot.greendaoinfo.db.User;
import com.yeehot.greendaoinfo.db.UserDao;
import org.greenrobot.greendao.generator.Query;
import org.greenrobot.greendao.query.QueryBuilder;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession;
private Cursor cursor;
private EditText email;
private Button add;
private Button search;
private Button delete;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
email= (EditText) findViewById(R.id.email);
add= (Button) findViewById(R.id.add);
search= (Button) findViewById(R.id.search);
delete= (Button) findViewById(R.id.delete);
CreateDB();
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addEmail();
}
});
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FindEmail();
}
});
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DeleteEmail();
}
});
}
private void CreateDB() {
// DevOpenHelper
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "yeehotdb", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
private void addEmail() {
String emailinfo = email.getText().toString();
// 插入操作,简单到只要你创建一个 Java 对象
User note = new User(null,emailinfo,"1234","0001");
daoSession.getUserDao().insert(note);
}
private void FindEmail() {
Query query = daoSession.getUserDao().queryBuilder()
.where(UserDao.Properties.Email.eq(email.getText().toString()))
.orderAsc(UserDao.Properties.Id)
.build();
List list=query.list();
QueryBuilder.LOG_SQL = true;
QueryBuilder.LOG_VALUES = true;
}
private void DeleteEmail() {
// daoSession.getUserDao().deleteByKey(id);
daoSession.getUserDao().deleteAll();
}
}
猜你喜欢
- 2024-12-14 ES的searchAfter使用详解
- 2024-12-14 Spring Boot Data Elasticsearch 通用工具类
- 2024-12-14 SpringBoot+Vue+ES 实现仿百度全文搜索
- 2024-12-14 Spring Data JPA——多表设计、一对多、多对多、多表查询
- 2024-12-14 一文读懂SpringBoot整合Elasticsearch
- 2024-12-14 ElasticSearchRepository和ElasticSearchTemplate的使用
- 2024-12-14 Elasticsearch 在地理信息空间索引的探索和演进
- 2024-12-14 Java微服务-一套前后台全部开源的H5商城送给大家(全部开源)
- 2024-12-14 纯干货,Spring-data-jpa详解,全方位介绍
- 2024-12-14 一套前后台全部开源的H5商城送给大家
你 发表评论:
欢迎- 03-24罕见的PostgreSQL数据库主从物理复制断开案例
- 03-24每周 GitHub 探索|Teale,基于 postgres 的无代码 Airtable 替代方案
- 03-24KVM、QEMU、LIBVIRT 是什么(kvm qemu libvirt)
- 03-24Ukrainian academician and expert team visited Yiheyuan to investigate the crispy pear project
- 03-24这72个一建机电考点每年必考一次,囊括9成考点,背熟实务超线30
- 03-24思南安监部门路边查车(安监可以在路上查证吗)
- 03-242022年一造《管理》+《计价》真题及答案已出,速来看看上岸没有
- 03-24如何在 Linux 中创建 Systemd 服务?
- 最近发表
-
- 罕见的PostgreSQL数据库主从物理复制断开案例
- 每周 GitHub 探索|Teale,基于 postgres 的无代码 Airtable 替代方案
- KVM、QEMU、LIBVIRT 是什么(kvm qemu libvirt)
- Ukrainian academician and expert team visited Yiheyuan to investigate the crispy pear project
- 这72个一建机电考点每年必考一次,囊括9成考点,背熟实务超线30
- 思南安监部门路边查车(安监可以在路上查证吗)
- 2022年一造《管理》+《计价》真题及答案已出,速来看看上岸没有
- 如何在 Linux 中创建 Systemd 服务?
- CentOS 下用 Nginx 和 uwsgi 部署 flask 项目
- 使用Flask应用框架在Centos7.8系统上部署机器学习模型
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)