greenDAO的简单使用(二)

来源:互联网 发布:珠海知未科技 编辑:程序博客网 时间:2024/05/29 14:37

在上一篇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;@Overrideprotected 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);}@Overridepublic 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 0
原创粉丝点击