greendao3关闭数据库(greendao数据库升级)

软件开发 9
本篇文章给大家谈谈greendao3关闭数据库,以及greendao数据库升级对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 如何查看greendao3生成的数据库 如何查看greendao3生成的数据库:使用 Guid 作为我一个服务器应用程序中的主键,并且想要能够远程从 android 设备和上载回服务器生成新的数据。Android 设备上的数据库是在 sqlite 中,并使用 greenDAO 来生成 Pojo 和数据访问层

本篇文章给大家谈谈greendao3关闭数据库,以及greendao数据库升级对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

如何查看greendao3生成的数据库

如何查看greendao3生成的数据库

:使用 Guid 作为我一个服务器应用程序中的主键,并且想要能够远程从 android 设备和上载回服务器生成新的数据。Android 设备上的数据库是在 sqlite 中,并使用 greenDAO 来生成 Pojo 和数据访问层

GreenDao 有对数据库内容监听的功能么

你只能监控从JAVA端对数据库的操作(CURD),可统一在切面拦截时进行写日志的操作,如果要监控用户通过第三方软件连接到数据库的操作,你只能读取MYSQL日志进行分析了。

greendao怎么更改数据库版本号

项目开发中用到的就是GreenDAO数据库框架,需要进行数据库版本升级。

其实数据库版本升级比较麻烦的就是数据的迁移,data migration。

数据库版本升级有很多方法,按不同需求来处理。

本质上是去执行sql语句去创建临时数据表,然后迁移数据,修改临时表名等。

数据版本升级,为了便于维护代码可以先定义一个抽象类

public abstract class AbstractMigratorHelper {

public abstract void onUpgrade(SQLiteDatabase db);

}1234

然后让自己更新数据库逻辑的类继承这个类

public class DBMigrationHelper6 extends AbstractMigratorHelper {

/* Upgrade from DB schema 6 to schema 7 , version numbers are just examples*/

public void onUpgrade(SQLiteDatabase db) {

/* Create a temporal table where you will copy all the data from the previous table that you need to modify with a non supported sqlite operation */

db.execSQL("CREATE TABLE " + "'post2' (" + //

"'_id' INTEGER PRIMARY KEY ," + // 0: id

"'POST_ID' INTEGER UNIQUE ," + // 1: postId

"'USER_ID' INTEGER," + // 2: userId

GreenDAO的数据库操作需要在子线程完成吗

当然是可以的,在线程里面会有很多程序,可以调用任何程序啊,这样调用的程序都在一个线程里完成的。在这个过程中当然也可以调用database类来完成对数据库的操作。

greendao用完需要手动关闭数据库吗

点开greendao某方法

private void deleteInTxInternal(IterableT entities, IterableK keys) {

    //此处打开

    db.beginTransaction();

    try {

       ...

    } finally {

        //此处关闭

        db.endTransaction();

    }

}

greendao不需要手动去打开和关闭数据库,已经帮我们做好了

android contentprovider 怎么操作greendao的数据库

有时我们需要对文件或数据库进行测试,但我们又不想破坏应用程序或设备原有的数据。此时我们就需要一个Mock来替代他们,这里的Mock不是android.test.mock,但也是android.test包下面的,RenamingDelegatingContext的类。示例参见:D:workspaceMockTest*******************MockContextExampleActivity********packagecom.example.mocktest;importjava.io.FileInputStream;importandroid.app.Activity;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.view.Menu;importandroid.widget.TextView;publicclassMockContextExampleActivityextendsActivity{publicfinalstaticStringFILE_NAME="myfile.txt";privateTextViewmTv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mTv=(TextView)findViewById(R.id.text1);finalbyte[]buffer=newbyte[1024];try{finalFileInputStreamfis=openFileInput(FILE_NAME);finalintn=fis.read(buffer);mTv.setText(newString(buffer,0,n-1));}catch(Exceptione){mTv.setText(e.toString());mTv.setTextColor(Color.RED);}}//这里写了个getText方法,测试工程会用到。publicStringgetText(){returnmTv.getText().toString();}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.mock_context_example,menu);returntrue;}}*****************MockContextExampleTest*****************packagecom.example.mocktest;importandroid.content.Intent;importandroid.test.ActivityUnitTestCase;importandroid.test.RenamingDelegatingContext;publicclassMockContextExampleTestextendsActivityUnitTestCase{privatestaticfinalStringPREFIX="test.";privateRenamingDelegatingContextmMockContext;publicMockContextExampleTest(){super(MockContextExampleActivity.class);}@OverrideprotectedvoidsetUp()throwsException{super.setUp();mMockContext=newRenamingDelegatingContext(getInstrumentation().getTargetContext(),PREFIX);mMockContext.makeExistingFilesAndDbsAccessible();}@OverrideprotectedvoidtearDown()throwsException{super.tearDown();}publicvoidtestSampleTextDisplayed(){setActivityContext(mMockContext);startActivity(newIntent(),null,null);finalMockContextExampleActivitymActivity=getActivity();assertNotNull(mActivity);Stringtext=mActivity.getText();assertEquals("Thisis*MOCK*data",text);}}Notice:别忘了在清单文件里加上RenamingDelegatingContext函数的使用,PREFIX是表示文件或数据库的前缀。另外这里为什么使用getTargetContext方法而不是getContext,后者我们经常在UiTest中使用到。这里其实看下注释就明白了://getContext():Theinstrumentation’spackagecontext.//getTargetContext():AContextinthetargetapplication.运行下测试,pass。这说明getText方法返回的string已经是Thisis*MOCK*data而不是Thisisrealdata了。这就可以证明,开发没有写死这段话。以上就是RenamingDelegatingContext函数如何来mock文件的,数据库的使用也是一样的。

greendao3关闭数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于greendao数据库升级、greendao3关闭数据库的信息别忘了在本站进行查找喔。

greendao3关闭数据库
扫码二维码