1.https://github.com/SureCase/GreenDaoForAndroidStudio
Download module
2.Add module to project
3.
Connect generator with project
4.
Run module
5.
Make project aware of GreenDao files
6.- Project is still not aware of new Java files because it isn't located in
../<PROJECT NAME>/src/main/javadirectory. To fix this we must specify projects source sets. It is important to point two java file sources:/src/main/javaand/src/main/java-gen. You can do it by placingsourceSetssection intoandroidsection ingradle.buildfile:
android {
sourceSets {main {manifest.srcFile 'src/main/AndroidManifest.xml'java.srcDirs = ['src/main/java', 'src/main/java-gen']res.srcDirs = ['src/main/res']}}}
package citygo.ewallet.com.facebookexample;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import dao.BoxDao;
import dao.DaoMaster;
import dao.DaoSession;
import de.greenrobot.dao.AbstractDao;
/**
* Created by linkulife on 2014/11/5.
*/
public class DaoFactory {
private DaoSession daoSession;
private static DaoFactory daoFactory;
public static DaoFactory getInstance(){
if(daoFactory==null){
daoFactory = new DaoFactory();
}
return daoFactory;
}
public void init(Context context){
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "example-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
public DaoSession getDaoSession() {
return daoSession;
}
public void beginTransaction(AbstractDao dao){
dao.getDatabase().beginTransaction();
}
public void rollback(AbstractDao dao){
dao.getDatabase().endTransaction();
}
public void commit(AbstractDao dao){
dao.getDatabase().setTransactionSuccessful();
dao.getDatabase().endTransaction();
}
public void setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
}
public BoxDao getBoxDao(){
return daoSession.getBoxDao();
}
}
public class DaoExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
DaoFactory.getInstance().init(this);
}
}
使用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
QueryBuilder.LOG_SQL = true;
QueryBuilder.LOG_VALUES = true;
BoxDao b = DaoFactory.getInstance().getBoxDao();
b.deleteAll();
Box box= new Box();
box.setDescription("de");
box.setName("name");
b.insertOrReplace(box);
DaoFactory.getInstance().beginTransaction(b);
Box box1= new Box();
box1.setName("name2");
b.insert(box1);
DaoFactory.getInstance().rollback(b);
List<Box> all = b.loadAll();
for(Box bb:all){
Log.d("",""+bb.getName());
}
}
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name=".DaoExampleApplication"
>
package ex.lfo.com.myapplicationex;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import de.greenrobot.dao.query.QueryBuilder;
import greendao.BoxDao;
import greendao.DaoMaster;
import greendao.DaoSession;
/**
* Created by Administrator on 2015/2/14.
*/
public class Orm {
private static Orm instance=null;
private SQLiteOpenHelper helper;
private SQLiteDatabase db;
private DaoMaster daoMaster;
private Orm(Context context){
QueryBuilder.LOG_SQL = true;
QueryBuilder.LOG_VALUES = true;
initDb(context);
}
private void initDb(Context context) {
helper = new DaoMaster.DevOpenHelper(context, "box", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
}
public DaoSession getDaoSession(){
DaoSession daoSession = daoMaster.newSession();
// BoxDao boxDao= daoSession.getBoxDao();
return daoSession;
}
public static Orm getInstance(Context context ){
if(instance==null){
instance=new Orm(context);
}
return instance;
}
}
沒有留言:
張貼留言