greenDAO的简单使用(二)

在上一篇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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值