안 드 로 이 드 에 서 는 포 장 된 데이터베이스 작업 도구 류 를 포함 하여 GreenDAO 데이터베이스 프레임 워 크 를 도입 합 니 다.
11050 단어 안 드 로 이 드
. / src / main 디 렉 터 리 아래 자바 와 같은 등급 의 자바 - gen 폴 더 를 만 듭 니 다.
2. build. gradle 에 설정
//buildTypes{}
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
3. 의존 도 추가dependencies {
compile 'de.greenrobot:greendao:1.3.7'
}
4. 간단 한 조작 을 위해 JAVA 프로젝트 greendao 를 직접 도입 할 수 있 습 니 다. 안 드 로 이 드 프로젝트 에 의존 도 를 직접 추가 하고 greendao 의 자바 프로젝트 를 첨부 합 니 다.자원 링크 http://download.csdn.net/detail/qq_23363425/9618837
편 의 를 위해 코드 를 붙 입 니 다: 비고 (자바 프로젝트 에 의존 컴 파일 ('de. green robot: DaoGenerator: 1.3.0') 을 추가 해 야 합 니 다.
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
public class MyDaoGenerator {
public static void main(String args[]) throws Exception {
Schema schema = new Schema(5, "com.aaa.bean");
// 1:
// com.xxx.bean: Bean /java-gen/com/xxx/bean
schema.setDefaultJavaPackageDao("com.aaa.dao");
// DaoMaster.java、DaoSession.java、BeanDao.java /java-gen/com/xxx/dao
// ,
initTable(schema); // Bean
new DaoGenerator().generateAll(schema, "D:\\Dao\\app\\src\\main\\java-gen");//
}
private static void initTable(Schema schema) {
Entity table = schema.addEntity("ContentEntity");//
// table.setTableName("table"); //
//table.addLongProperty("id").primaryKey().index().autoincrement();
table.addIdProperty().autoincrement();// ,
table.addStringProperty("status");
table.addLongProperty("version");
table.addStringProperty("tableTypeId");
table.addStringProperty("storeId");
table.addStringProperty("name");
table.addStringProperty("orderby");
}
}
5. , , , !
6、 db
BaseApplication
package com.wp.dao.daohelp;
import android.app.Application;
import android.content.Context;
import com.aaa.dao.DaoMaster;
import com.aaa.dao.DaoSession;
/**
* Created by wp on 2016/8/12.
*/
public class BaseApplication extends Application {
public static BaseApplication mInstance;
public static DaoMaster daoMaster;
public static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
if (mInstance == null)
mInstance = this;
}
/**
* DaoMaster
*
* @param context
* @return DaoMaster
*/
public static DaoMaster getDaoMaster(Context context) {
if (daoMaster == null) {
// DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(context,"myDb",null);
DaoMaster.OpenHelper helper = new TableOpenHelper(context, "myDb", null);
daoMaster = new DaoMaster(helper.getWritableDatabase());
}
return daoMaster;
}
/**
* DaoSession
*
* @param context
* @return DaoSession
*/
public static DaoSession getDaoSession(Context context) {
if (daoSession == null) {
if (daoMaster == null) {
daoMaster = getDaoMaster(context);
}
daoSession = daoMaster.newSession();
}
return daoSession;
}
}
TableOpenHelper
package com.wp.dao.daohelp;/*
package com.wp.dao.daohelp;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.aaa.dao.DaoMaster;
import com.aaa.dao.TableDao;
*/
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.aaa.dao.ContentEntityDao;
import com.aaa.dao.DaoMaster;
/**
* Created by wp on 2016/8/12.
*/
public class TableOpenHelper extends DaoMaster.OpenHelper {
public TableOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
super(context, name, factory);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {
case 1:
// , createTable()
ContentEntityDao.createTable(db, true);
//
//db.execSQL("ALTER TABLE 'moments' ADD 'audio_path' TEXT;");
// TODO
break;
}
}
}
DbService
package com.wp.dao.daohelp;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.aaa.bean.AllData;
import com.aaa.bean.ContentEntity;
import com.aaa.dao.ContentEntityDao;
import com.aaa.dao.DaoSession;
import java.util.List;
import de.greenrobot.dao.query.QueryBuilder;
import de.greenrobot.dao.query.WhereCondition;
/**
* Created by wp on 2016/8/15.
*/
public class DbService {
private static final String TAG = DbService.class.getSimpleName();
private static DbService instance;
private static Context appContext;
private DaoSession mDaoSession;
private ContentEntityDao contentEntityDao;
private DbService() {
}
/**
*
*
* @param context
* @return dbservice
*/
public static DbService getInstance(Context context) {
if (instance == null) {
instance = new DbService();
if (appContext == null) {
appContext = context.getApplicationContext();
}
instance.mDaoSession = BaseApplication.getDaoSession(context);
instance.contentEntityDao = instance.mDaoSession.getContentEntityDao();
}
return instance;
}
/**
* id,
*
* @param id id
* @return
*/
public ContentEntity loadNote(Long id) {
if (!TextUtils.isEmpty(id + "")) {
return contentEntityDao.load(id);
}
return null;
}
/**
*
*
* @return
*/
public List loadAllNote() {
return contentEntityDao.loadAll();
}
/**
* id
*
* @return
*/
public List loadAllNoteByOrder() {
return contentEntityDao.queryBuilder().orderDesc(ContentEntityDao.Properties.Id).list();
}
/**
* ,
*
* @param where
* @param params
* @return
*/
public List queryNote(String where, String... params) {
return contentEntityDao.queryRaw(where, params);
}
/**
* ,
*
* @param user
* @return id
*/
public long saveorReplace(ContentEntity user) {
return contentEntityDao.insertOrReplace(user);
}
public long saveNote(ContentEntity user) {
return contentEntityDao.insert(user);
}
/**
*
*
* @param list
*/
public void saveNoteLists(final List list) {
if (list == null || list.isEmpty()) {
return;
}
contentEntityDao.getSession().runInTx(new Runnable() {
@Override
public void run() {
for (int i = 0; i < list.size(); i++) {
ContentEntity user = list.get(i);
//if (!instance.loadAllNote().equals(user.)){
contentEntityDao.insertOrReplace(user);
// }
}
}
});
}
/**
*
*/
public void deleteAllNote() {
contentEntityDao.deleteAll();
}
/**
* id,
*
* @param id id
*/
public void deleteNote(long id) {
contentEntityDao.deleteByKey(id);
Log.i(TAG, "delete");
}
/**
* ,
*
* @param user
*/
public void deleteNote(ContentEntity user) {
contentEntityDao.delete(user);
}
public List queryPerson(WhereCondition arg0, WhereCondition... conditions) {
QueryBuilder qb = contentEntityDao.queryBuilder();
qb.where(arg0, conditions);
List personList = qb.list();
return personList;
}
/**
*
*
* @param newList
* @return
*/
public void checkPersonExistAndUpdate(List newList) {
List oldList = instance.loadAllNote();//
System.out.println(oldList.size() + "------------- ");
if (oldList.size() > 0) {
for (int i = 0; i < oldList.size(); i++) {
for (int j = 0; j < newList.size(); j++) {
if (oldList.get(i).getTableTypeId().equals(newList.get(j).getTableTypeId())) {// tabletypeID
// status
if (Integer.parseInt(newList.get(j).getStatus()) == 2) {// 2,
instance.deleteNote(oldList.get(i));
} else {// 1,
return;
}
} else {
if (Integer.parseInt(newList.get(j).getStatus()) == 2) {// 2,
return;
} else {// 1,
//return;
instance.deleteNote(oldList.get(i));
}
// tabletypeid,
// instance.saveNote(newList.get(j));
}
}
}
} else {
// ,
for (int j = 0; j < newList.size(); j++) {
if (Integer.parseInt(newList.get(j).getStatus()) == 2) {
newList.remove(newList.get(j));
}
}
instance.saveNoteLists(newList);
System.out.println(" " + oldList.size());
}
}
}
http://download.csdn.net/download/qq_23363425 / 9618892 전체 프로젝트 주 소 는 여기에 있 습 니 다. 부정 확 한 점 이 있 으 면 지적 해 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안 드 로 이 드 에 서 는 포 장 된 데이터베이스 작업 도구 류 를 포함 하여 GreenDAO 데이터베이스 프레임 워 크 를 도입 합 니 다.1. 프로젝트 설정 . / src / main 디 렉 터 리 아래 자바 와 같은 등급 의 자바 - gen 폴 더 를 만 듭 니 다. 2. build. gradle 에 설정 3. 의존 도 추가 4. 간단 한 조작 을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.