greenDAO的简单使用(二)
2016-05-24 18:28
302 查看
在上一篇greenDAO的简单使用(一)中已经介绍了如何生成DAO文件,这里就来介绍下如何使用DAO文件,利用源码
生成相应的daocore.jar库,这里也是新建一个Android工程,把相应的文件拷贝过来
新建一个测试DAO的工程,导入前面生成的daocore.jar库和加入第一篇生成的DAO类文件
在测试程序中有数据库的增、删、改、查功能,界面如下:
布局文件就不分析了,看下代码实现类UserActivity.java
这里就有生成的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
生成相应的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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories