您的位置:首页 > 移动开发 > Android开发

greenDAO的简单使用(二)

2016-05-24 18:28 302 查看
在上一篇greenDAO的简单使用(一)中已经介绍了如何生成DAO文件,这里就来介绍下如何使用DAO文件,利用源码



生成相应的daocore.jar库,这里也是新建一个Android工程,把相应的文件拷贝过来



新建一个测试DAO的工程,导入前面生成的daocore.jar库和加入第一篇生成的DAO类文件



在测试程序中有数据库的增、删、改、查功能,界面如下:



布局文件就不分析了,看下代码实现类UserActivity.java

package com.dzt.user;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ListView;

import com.dzt.greendaodemo.R;
import com.dzt.user.dao.DaoMaster;
import com.dzt.user.dao.DaoMaster.DevOpenHelper;
import com.dzt.user.dao.DaoSession;
import com.dzt.user.dao.User;
import com.dzt.user.dao.UserDao;
import com.dzt.user.dao.UserDao.Properties;

import de.greenrobot.dao.query.Query;

public class UserActivity extends FragmentActivity implements OnClickListener {

private SQLiteDatabase db;
private EditText etUserId;
private EditText etName;
private EditText etLoginName;
private EditText etPwd;
private EditText etPhone;
private ListView lvUser;
private List<User> datas = new ArrayList<User>();
private UserAdapter adapter;
private DaoMaster daoMaster;
private DaoSession daoSession;
private UserDao userDao;

@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_user);

initWidgets();

DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "user_db",
null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
userDao = daoSession.getUserDao();
queryUserAll();
}

private void initWidgets() {
findViewById(R.id.btn_add).setOnClickListener(this);
findViewById(R.id.btn_delete).setOnClickListener(this);
findViewById(R.id.btn_query).setOnClickListener(this);
findViewById(R.id.btn_modify).setOnClickListener(this);
findViewById(R.id.btn_query_all).setOnClickListener(this);
etUserId = (EditText) findViewById(R.id.et_id);
etName = (EditText) findViewById(R.id.et_name);
etLoginName = (EditText) findViewById(R.id.et_login_name);
etPwd = (EditText) findViewById(R.id.et_pwd);
etPhone = (EditText) findViewById(R.id.et_phone);
lvUser = (ListView) findViewById(R.id.lv_user);
adapter = new UserAdapter(getApplicationContext(), datas);
lvUser.setAdapter(adapter);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_add:
addUser();
clearEditText();
break;
case R.id.btn_delete:
String userId = etUserId.getText().toString().trim();
if (TextUtils.isEmpty(userId))
break;
deleteUser(Long.parseLong(userId));
clearEditText();
break;
case R.id.btn_query:
queryUser();
break;
case R.id.btn_modify:
modifyUser();
break;
case R.id.btn_query_all:
queryUserAll();
clearEditText();
break;
default:
break;
}
}

private void addUser() {
String name = etName.getText().toString();
String loginName = etLoginName.getText().toString();
String pwd = etPwd.getText().toString();
String phone = etPhone.getText().toString();

User user = new User(null, name, loginName, pwd, phone, new Date());
userDao.insert(user);
datas.add(user);
Log.d("DaoExample", "Inserted new note, ID: " + user.getId());
queryUserAll();
}

private void deleteUser(long id) {
userDao.deleteByKey(id);
queryUserAll();
}

private void queryUser() {
String id = etUserId.getText().toString().trim();
if (TextUtils.isEmpty(id))
return;
Query<User> query = userDao.queryBuilder().where(Properties.Id.eq(id))
.build();
List<User> list = query.list();
for (User user : list) {
etUserId.setText(user.getId() + "");
etName.setText(user.getName());
etLoginName.setText(user.getLogin_name());
etPwd.setText(user.getPwd());
etPhone.setText(user.getPhone());
}
}

private void modifyUser() {
String id = etUserId.getText().toString().trim();
if (TextUtils.isEmpty(id))
return;
String name = etName.getText().toString().trim();
String loginName = etLoginName.getText().toString().trim();
String pwd = etPwd.getText().toString().trim();
String phone = etPhone.getText().toString().trim();
User entity = new User();
entity.setId(Long.valueOf(id));
entity.setName(name);
entity.setLogin_name(loginName);
entity.setPwd(pwd);
entity.setPhone(phone);
entity.setDate(new Date());
userDao.update(entity);
queryUserAll();
clearEditText();
}

private void queryUserAll() {
List<User> users = userDao.queryBuilder().list();
datas.clear();
for (User user : users) {
Log.i("dzt", user.toString());
datas.add(user);
}
adapter.notifyDataSetChanged();
}

private void clearEditText() {
etUserId.setText("");
etName.setText("");
etLoginName.setText("");
etPwd.setText("");
etPhone.setText("");
}
}


这里就有生成的DAO文件使用

DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "user_db",

null);

db = helper.getWritableDatabase();

daoMaster = new DaoMaster(db);

daoSession = daoMaster.newSession();

userDao = daoSession.getUserDao();

对数据的操作都是使用userDao

代码下载:http://download.csdn.net/detail/deng0zhaotai/9530004
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android ORM greenDAO