Giter Site home page Giter Site logo

litesuits / android-lite-orm Goto Github PK

View Code? Open in Web Editor NEW
1.5K 1.5K 360.0 1.96 MB

LiteOrm is a fast, small, powerful ORM framework for Android. LiteOrm makes you do CRUD operarions on SQLite database with a sigle line of code efficiently.

Home Page: http://litesuits.com?form=gorm

License: Apache License 2.0

Java 100.00%

android-lite-orm's People

Contributors

litesuits avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-lite-orm's Issues

混淆后query方法失效

混淆后query方法失效,查询不到结果,我是把代码导入到一个module,作为lib编译进我的项目,然后我发现,导出为签名的apk的时候query( QueryBuilder )方法失效了

msg = near "from": syntax error

如果我的对象中一个字段名叫from,liteorm直接就报错了。log显示create table就失败了。 msg = near "from": syntax error 这样的字段话取名还要想想想是不是和sql命令冲突?
我测试加这句就好了@column("ffrom"),但这样好难用。。。

@PrimaryKey(PrimaryKey.AssignType.BY_MYSELF)
@column("id")
private String id;
private String textContent;
private String from;
private String to;

实体类中有集合,存不进去

代码如下,我发现集合类型的字段存不进去,这块应该怎么处理呢?
`@Table("OutlineTreeTest2")
public class OutlineTreeVo implements Serializable {

@PrimaryKey(AssignType.BY_MYSELF)
private int outlineId;

private String outlineName;
private int sequence;
private int hierarchyId;
private int parentId;
private int initialId;//大纲初始ID
private String status;
private int examCount;
@Mapping(Relation.OneToMany)
private List<Long> examIds;
private int examFilterCount;
@Ignore
private List<Long> examFilterIds;
private int doneExamCount;
@Ignore
private List<Long> doneExamIds;
private int correctExamCount;
@Ignore
private List<Long> correctExamIds;
private String rightRate;
//统计信息
@Mapping(Relation.OneToOne)
private OutlineStatisticVo outlineStatisticVo;
@Mapping(Relation.OneToMany)
private List<OutlineTreeVo> children;`

我在魅族m2 note上面发现一个很严重的问题

只有在此机型的最新系统上面有,flyme 5.1.6,其它机型没有问题,报错如下:
android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: CREATE TABLE IF NOT EXISTS address(id INTEGER PRIMARY KEY AUTOINCREMENT ,city TEXT NOT NULL DEFAULT ,isDefault TEXT NOT NULL DEFAULT false ,locationInfo TEXT NOT NULL ,mobile TEXT NOT NULL ,name TEXT NOT NULL )
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:898)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:509)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
06-16 18:08:11.192 20224-21214/? W/System.err: at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1024)
06-16 18:08:11.192 20224-21214/? W/System.err: at com
.....
android.database.sqlite.SQLiteException: no such table: address (code 1): , while compiling: REPLACE INTO address(id,city,isDefault,locationInfo,mobile,name)VALUES(?,?,?,?,?,?)
06-16 18:08:11.194 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
06-16 18:08:11.194 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:898)
06-16 18:08:11.195 20224-21214/? W/System.err: at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:509)
06-16 18:08:11.195 20224-21214/? W/System.err: at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
06-16 18:08:11.195 20224-21214/? W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
06-16 18:08:11.195 20224-21214/? W/System.err: at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
06-16 18:08:11.195 20224-21214/? W/System.err: at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1024)
06-16 18:08:11.195 20224-21214/? W/System.err: at com.litesuits.orm.db.assit.SQLStatement.execInsertWithMapping(SQLStatement.java:102)
06-16 18:08:11.195 20224-21214/? W/System.err: at com.litesuits.orm.db.assit.SQLStatement.execInsert(SQLStatement.java:93)
06-16 18:08:11.195 20224-21214/? W/System.err: at com.litesuits.orm.db.impl.SingleSQLiteImpl.save(SingleSQLiteImpl.java:58)
06-16 18:08:11.195 20224-21214/? W/System.err: at me.liutaw.data.repository.UserRepostitoryImpl$3.call(UserRepostitoryImpl.java:105)
06-16 18:08:11.195 20224-21214/? W/System.err: at me.liutaw.data.repository.UserRepostitoryImpl$3.call(UserRepostitoryImpl.java:93)
06-16 18:08:11.195 20224-21214/? W/System.err: at rx.Observable.unsafeSubscribe(Observable.java:8098)
06-16 18:08:11.195 20224-21214/? W/System.err: at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
06-16 18:08:11.195 20224-21214/? W/System.err: at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
06-16 18:08:11.195 20224-21214/? W/System.err: at rx.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:98)
06-16 18:08:11.195 20224-21214/? W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-16 18:08:11.195 20224-21214/? W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-16 18:08:11.195 20224-21214/? W/System.err: at java.lang.Thread.run(Thread.java:818)

子元素是List集合,能保存关联。却无法取出。

package com.litesuits.orm.junit;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import com.litesuits.orm.LiteOrm;
import com.litesuits.orm.db.annotation.Column;
import com.litesuits.orm.db.annotation.Mapping;
import com.litesuits.orm.db.annotation.PrimaryKey;
import com.litesuits.orm.db.annotation.Table;
import com.litesuits.orm.db.enums.AssignType;
import com.litesuits.orm.db.enums.Relation;
import com.litesuits.orm.model.demo.Teacher;

import android.content.Context;
import android.os.Environment;
import android.test.AndroidTestCase;

public class MyDemoTest extends AndroidTestCase {

public static final String DB_NAME = Environment
        .getExternalStorageDirectory().getAbsolutePath()
        + "/lite/orm/love.db";

public void estHello() {
    System.out.println("你好");
}

public void estSaveData() {
    Context mContext = getContext();
    LiteOrm liteOrm = LiteOrm.newCascadeInstance(mContext, DB_NAME);
    liteOrm.save(new Teacher("丽华", 23));
    liteOrm.save(getHomeTypeList());

}

public void estDeleteData(){
    Context mContext = getContext();
    LiteOrm liteOrm = LiteOrm.newCascadeInstance(mContext, DB_NAME);
    liteOrm.delete(HomeType.class);
}

public void testGetData(){
    Context mContext = getContext();
    LiteOrm liteOrm = LiteOrm.newCascadeInstance(mContext, DB_NAME);
    List<HomeType> hy = liteOrm.query(HomeType.class);
    System.out.println("hy = "+hy.toString());

}

public List<HomeType> getHomeTypeList(){
    List<HomeType>  homeTypes = new ArrayList<MyDemoTest.HomeType>();

    for (int i = 1; i <= 3; i++) {
        List<UserHome> userhomes = new ArrayList<MyDemoTest.UserHome>();
        UserHome[] uhs = new UserHome[3];
        for (int j = 1; j <= 3; j++) {
            userhomes.add(new UserHome("uid" + i + j, "nickname" + i + j));
            uhs[j-1] = new UserHome("uid" + i + j, "nickname" + i + j);
        }

// homeTypes.add(new HomeType("hometypelist:" + i, "title," + i,
// (UserHome[]) (userhomes.toArray())));
// homeTypes.add(new HomeType("hometypelist:" + i, "title," + i,
// uhs));
homeTypes.add(new HomeType("hometypelist:" + i, "title," + i,
userhomes));
}
return homeTypes;
}

@Table("home_type")
public static class HomeType implements Serializable {

    private static final long serialVersionUID = -6048223356798388872L;
    public static final String VISIBLE = "1";
    public static final String NONE = "0";

    @PrimaryKey(AssignType.AUTO_INCREMENT)
    @Column("db_id")
    private long db_id;

    @Column("hometypelist")
    private String hometypelist;
    @Column("type_id")
    private String type_id;
    private String title;
    private String image;
    private String typeinfo;
    private String home_image;

    /** 推荐是否有更多 0无 1 有 */
    private String usermore;

    @Mapping(Relation.OneToMany)
    @Column("userlist")

// private UserHome[] userlist;
private List userList;

    private HomeType(String hometypelist, String title,
            List<UserHome> userList) {
        this.hometypelist = hometypelist;
        this.title = title;
        this.userList = userList;
    }


    public String getHometypelist() {
        return hometypelist;
    }

    public void setHometypelist(String hometypelist) {
        this.hometypelist = hometypelist;
    }

    public String getType_id() {
        return type_id;
    }

    public void setType_id(String type_id) {
        this.type_id = type_id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getTypeinfo() {
        return typeinfo;
    }

    public void setTypeinfo(String typeinfo) {
        this.typeinfo = typeinfo;
    }

// public UserHome[] getUserlist() {
// return userlist;
// }
//
// public void setUserlist(UserHome[] userlist) {
// this.userlist = userlist;
// }

    public String getHome_image() {
        return home_image;
    }

    public void setHome_image(String home_image) {
        this.home_image = home_image;
    }

    /** 推荐是否有更多 0无 1 有 */
    public String getUsermore() {
        return usermore;
    }

    public void setUsermore(String usermore) {
        this.usermore = usermore;
    }

    @Override
    public String toString() {
        return "HomeType [hometypelist=" + hometypelist + ", type_id="
                + type_id + ", title=" + title + ", image=" + image
                + ", typeinfo=" + typeinfo + ", home_image=" + home_image

// + ", userlist=" + Arrays.toString(userlist) + "]";
+ ", userlist=" + userList.toString() + "]";
}

}

@Table("user_home")
public static class UserHome implements Serializable {

    private static final long serialVersionUID = -1311542533996146739L;

    @PrimaryKey(AssignType.AUTO_INCREMENT)
    @Column("db_id")
    private long db_id;

    @Column("uid")
    private String uid;
    @Column("easemob_uuid")
    private String easemob_uuid;
    @Column("gender")
    private String gender;
    @Column("nickname")
    private String nickname;
    @Column("header")
    private String header;
    @Column("voice")
    private String voice;
    @Column("voice_time")
    private String voice_time;



    private UserHome(String uid, String nickname) {
        this.uid = uid;
        this.nickname = nickname;
    }

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getEasemob_uuid() {
        return easemob_uuid;
    }

    public void setEasemob_uuid(String easemob_uuid) {
        this.easemob_uuid = easemob_uuid;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getHeader() {
        return header;
    }

    public void setHeader(String header) {
        this.header = header;
    }

    public String getVoice() {
        return voice;
    }

    public void setVoice(String voice) {
        this.voice = voice;
    }

    public String getVoice_time() {
        return voice_time;
    }

    public void setVoice_time(String voice_time) {
        this.voice_time = voice_time;
    }

    @Override
    public String toString() {
        return "UserHome [db_id=" + db_id + ", uid=" + uid
                + ", easemob_uuid=" + easemob_uuid + ", gender=" + gender
                + ", nickname=" + nickname + ", header=" + header
                + ", voice=" + voice + ", voice_time=" + voice_time + "]";
    }

}

}

Android 6.0 不支持,直接报错结束。

在6.0上报错。5.1和4.4上面正常。
输出日志

03-05 08:12:55.621 8980-8980/? E/SQLiteLog: (14) cannot open file at line 31278 of [2ef4f3a5b1]
03-05 08:12:55.621 8980-8980/? E/SQLiteLog: (14) os_unix.c:31278: (2) open(/storage/emulated/0/xxxx/database/xxxx.db) - 
03-05 08:12:55.622 8980-8980/? E/SQLiteDatabase: Failed to open database '/storage/emulated/0/xxxx/database/xxxx.db'.
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database

warning: non-varargs call of varargs method with inexact argument type for last parameter;

/Users/krew/Android/service/android/app/src/main/java/com/service/DbUtils.java:69: warning: non-varargs call of varargs method with inexact argument type for last parameter;
        return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
                                                                          ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
/Users/krew/Android/service/android/app/src/main/java/com/service/DbUtils.java:83: warning: non-varargs call of varargs method with inexact argument type for last parameter;
        return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value).limit(start, length));
                                                                          ^
  cast to Object for a varargs call
  cast to Object[] for a non-varargs call and to suppress this warning
Note: /Users/krew/Android/service/android/app/src/main/java/com/service/DbUtils.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 warnings

无法插入级联数据

@table("product")
public class ProductMdl implements Serializable {

@Unique
@PrimaryKey(AssignType.AUTO_INCREMENT)
private int id;

@Column("proName")
private String proName;

@Column("proPrice")
private String proPrice;


@Column("proNum")
private String proNum;

@Column("proPhotoUrl")
private String proPhotoUrl;

}

@table("tablePro")
public class TableProMdl implements Serializable {
/**
*
*/
@unique
@PrimaryKey(AssignType.AUTO_INCREMENT)
private int id;

private static final long serialVersionUID = -5204190870608983058L;
@Column("tableTitle")
private String mTableTitle;

@Column("proTotal")
private String mProTotal;

@Mapping(Relation.OneToMany)
private List<ProductMdl> mProList;

}

tablePro这个表中 插入数据其他字段都可以插入,mProList 插入不了!

我遇到一个问题,不知道是个人原因还是框架的原因,希望能够帮我解答!

有两个Activity:FirstActivity,SecondActivity
1、我在FirstActivity获取服务器上的数据,并保存数据表为test
2、FirstActivity执行finish(),打开SecondActivity
3、SecondActivity查询test表,查不出数据,而且输出的表名为空
4、SecondActivity执行finish(),回到FirstActivity,FirstActivity可以查出数据
重复第2项的操作,结果与第3的一样
注:导出的db文件可以看到已保存的数据。

是否支持成员变量为其他对象

插入如下对象时报空指针异常:

public class Province extends Area implements Parcelable {

    @JSONField(name = "cities")
    public ArrayList<City> cities;
    //...
}

其中City也继承自Area:

public class City extends Area implements Parcelable {

    @JSONField(name = "areas")
    public ArrayList<Area> areas;
    //...
}

Area的结构如下:

public class Area implements Parcelable {
    @JSONField(name = "name")
    public String name;
    @JSONField(name = "code")
    public int code;
    @JSONField(name = "level")
    public final int level;
    //...
}

异常信息如下:

 java.lang.NullPointerException
     at com.litesuits.orm.db.assit.SQLBuilder.buildInsertSql(SQLBuilder.java:270)
     at com.litesuits.orm.db.assit.SQLBuilder.buildReplaceAllSql(SQLBuilder.java:236)
     at com.litesuits.orm.db.impl.SingleSQLiteImpl.save(SingleSQLiteImpl.java:74)
     at com.parkingwang.app.support.CacheHelper.saveToDbCache_aroundBody6(CacheHelper.java:97)
     at com.parkingwang.app.support.CacheHelper$AjcClosure7.run(CacheHelper.java:1)
     at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
     at hugo.weaving.internal.Hugo.logAndExecute(Hugo.java:30)
     at com.parkingwang.app.support.CacheHelper.saveToDbCache(CacheHelper.java:97)
     at com.parkingwang.app.account.vehicle.VehicleCallback.onUISuccess(VehicleCallback.java:37)
     at com.parkingwang.api.NotifyCallback.onUIResponse(NotifyCallback.java:79)
     at com.parkingwang.api.NotifyCallback.onUIResponse(NotifyCallback.java:35)
     at com.github.yoojia.fast.http.ParsableHttpCallback$1.handleMessage(ParsableHttpCallback.java:29)
     at android.os.Handler.dispatchMessage(Handler.java:106)
     at android.os.Looper.loop(Looper.java:193)
     at android.app.ActivityThread.main(ActivityThread.java:5551)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:730)
     at dalvik.system.NativeStart.main(Native Method)

查询id对不上结果对不上

保存数据id为1-8;使用
QueryBuilder queryBuilder = new QueryBuilder(ProblemDetailBean.class);
queryBuilder.whereEquals("id", "5");
或queryById(5, MyClass.class) 均没有返回值(确定query(MyClass.class)返回了所有值, debug断点查了20分钟确定)。设置whereLessThan(“5”)时返回了所有值。

无法插入级联数据

@table("tb_user")
public class UserModel extends BaseModel {
private static final long serialVersionUID = 1L;

public static final String COL_MOBILE = "mobile";

@NotNull
@Column(COL_MOBILE)
private String mobile;

@mapping(Relation.OneToMany)
private ArrayList roles;
}

@table("tb_role")
public class RoleModel extends BaseModel {

@Unique
@NotNull
private int roleId;

private String role;

}

public void insert(T t) {
getLiteOrm().cascade().insert(t, ConflictAlgorithm.Abort);
}
插入数据userMode,UserModel中其他字段都可以插入,唯独roles是空

无法更新数据失败

mUserInfo.setIsCurrUser("0");
Log.i("主键",mUserInfo.getId() + "");
ColumnsValue cv = new ColumnsValue(new String[]{"is_curr"});
mLiteOrm.update(mUserInfo, cv, ConflictAlgorithm.None);

这里mUserInfo所有数据正常,主键也存在
image

where条件的主键一直是空

权限问题

如果我要将数据库放在外部存储中,当版本选择23时在Application中初始化时就会直接报错!

Relation.OneToMany 存在无法删除的最后一条关联记录

CASCADE模式下,比如A类和B类,A类中有个List,当list的数量大于一条时,list.remove(index)后,save,则AB两个类的关系表中的关系记录则会被删除,但是,当删除到最后一条时,再怎么删除就都删除不掉了,始终会有最后一条存在。希望能解答一下,谢谢。

Auto increase ( auto ordered ) with the AssignType.BY_MYSELF

在定义主键的时候发现了一个问题:

就是虽然我用了@PrimaryKey(AssignType.BY_MYSELF)来注解我数据的xxxId

xxxId是无规律的整数

但是在保存之后orm会自动根据这个xxxId排序.....好奇怪😶

谁能帮我解答一下...不甚感激O(∩_∩)

为啥save和update方法没效果?

我用save方法保存了数据,用liteOrm.update去更新内容,返回int是正确的条数。
但是用query重新查询出来的结果还是旧的值,为啥呢?

statement aborts at 31: [REPLACE INTO Object

android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 1802)
W/System.err(17618): at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
W/System.err(17618): at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:972)
W/System.err(17618): at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
W/System.err(17618): at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
W/System.err(17618): at com.litesuits.orm.db.assit.SQLStatement.execInsertWithMapping(SQLStatement.java:111)

触发器

请问支持创建触发器么 该怎么创建

官方Demo在某些平台(eg. 华硕平板),插入级联数据报错

01-13 13:36:16.906 20740-21066/com.litesuits.orm.samples D/Querier: ----> Query Start: SQLStatement [sql=SELECT * FROM book, bindArgs=null, mStatement=null]
01-13 13:36:16.906 20740-21066/com.litesuits.orm.samples I/SqliteDatabaseCpp: sqlite returned: error code = 1, msg = no such table: book, db=/mnt/sdcard/lite/orm/cascade.db
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: android.database.sqlite.SQLiteException: no such table: book: , while compiling: SELECT * FROM book
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53)
01-13 13:36:16.914 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.assit.Querier.doQuery(Querier.java:23)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.checkTableAndQuery(CascadeSQLiteImpl.java:348)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.query(CascadeSQLiteImpl.java:304)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.queryAndPrintAll(CascadeTestActivity.java:297)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.testQueryAll(CascadeTestActivity.java:207)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.makeOrmTest(CascadeTestActivity.java:94)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.access$0(CascadeTestActivity.java:78)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity$1.run(CascadeTestActivity.java:379)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples W/System.err: at java.lang.Thread.run(Thread.java:856)
01-13 13:36:16.921 20740-21066/com.litesuits.orm.samples I/CascadeTestActivity: Book : []
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples D/Querier: ----> Query Start: SQLStatement [sql=SELECT * FROM student, bindArgs=null, mStatement=null]
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples I/SqliteDatabaseCpp: sqlite returned: error code = 1, msg = no such table: student, db=/mnt/sdcard/lite/orm/cascade.db
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples W/System.err: android.database.sqlite.SQLiteException: no such table: student: , while compiling: SELECT * FROM student
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
01-13 13:36:16.929 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.assit.Querier.doQuery(Querier.java:23)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.checkTableAndQuery(CascadeSQLiteImpl.java:348)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.query(CascadeSQLiteImpl.java:304)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.queryAndPrintAll(CascadeTestActivity.java:297)
01-13 13:36:16.937 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.testQueryAll(CascadeTestActivity.java:208)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.makeOrmTest(CascadeTestActivity.java:94)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.access$0(CascadeTestActivity.java:78)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity$1.run(CascadeTestActivity.java:379)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at java.lang.Thread.run(Thread.java:856)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples I/CascadeTestActivity: Student : []
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples D/Querier: ----> Query Start: SQLStatement [sql=SELECT * FROM teacher, bindArgs=null, mStatement=null]
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples I/SqliteDatabaseCpp: sqlite returned: error code = 1, msg = no such table: teacher, db=/mnt/sdcard/lite/orm/cascade.db
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: android.database.sqlite.SQLiteException: no such table: teacher: , while compiling: SELECT * FROM teacher
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53)
01-13 13:36:16.945 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.assit.Querier.doQuery(Querier.java:23)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.checkTableAndQuery(CascadeSQLiteImpl.java:348)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.query(CascadeSQLiteImpl.java:304)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.queryAndPrintAll(CascadeTestActivity.java:297)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.testQueryAll(CascadeTestActivity.java:209)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.makeOrmTest(CascadeTestActivity.java:94)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.access$0(CascadeTestActivity.java:78)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity$1.run(CascadeTestActivity.java:379)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: at java.lang.Thread.run(Thread.java:856)
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples I/CascadeTestActivity: Teacher : []
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples D/Querier: ----> Query Start: SQLStatement [sql=SELECT * FROM class, bindArgs=null, mStatement=null]
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples I/SqliteDatabaseCpp: sqlite returned: error code = 1, msg = no such table: class, db=/mnt/sdcard/lite/orm/cascade.db
01-13 13:36:16.953 20740-21066/com.litesuits.orm.samples W/System.err: android.database.sqlite.SQLiteException: no such table: class: , while compiling: SELECT * FROM class
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.assit.Querier.doQuery(Querier.java:23)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.checkTableAndQuery(CascadeSQLiteImpl.java:348)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.query(CascadeSQLiteImpl.java:304)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.queryAndPrintAll(CascadeTestActivity.java:297)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.testQueryAll(CascadeTestActivity.java:210)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.makeOrmTest(CascadeTestActivity.java:94)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.access$0(CascadeTestActivity.java:78)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity$1.run(CascadeTestActivity.java:379)
01-13 13:36:16.960 20740-21066/com.litesuits.orm.samples W/System.err: at java.lang.Thread.run(Thread.java:856)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples I/CascadeTestActivity: Classes : []
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples D/Querier: ----> Query Start: SQLStatement [sql=SELECT * FROM school, bindArgs=null, mStatement=null]
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples I/SqliteDatabaseCpp: sqlite returned: error code = 1, msg = no such table: school, db=/mnt/sdcard/lite/orm/cascade.db
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: android.database.sqlite.SQLiteException: no such table: school: , while compiling: SELECT * FROM school
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.assit.Querier.doQuery(Querier.java:23)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.checkTableAndQuery(CascadeSQLiteImpl.java:348)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.db.impl.CascadeSQLiteImpl.query(CascadeSQLiteImpl.java:304)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.queryAndPrintAll(CascadeTestActivity.java:297)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.testQueryAll(CascadeTestActivity.java:211)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.makeOrmTest(CascadeTestActivity.java:94)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity.access$0(CascadeTestActivity.java:78)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at com.litesuits.orm.samples.CascadeTestActivity$1.run(CascadeTestActivity.java:379)
01-13 13:36:16.968 20740-21066/com.litesuits.orm.samples W/System.err: at java.lang.Thread.run(Thread.java:856)

save与insert的区别是什么?

我理解的是前者会判断主键是否存在,若存在进行数据更新,不存在则进行数据插入;后者判断主键存在,则不作处理,返回错误。

LiteOrm.newSingleInstance(Context context, String dbName) 初始化后紧接着调用查询会查询不到内容

版本:1.6.0、1.6.3
使用 LiteOrm.newSingleInstance(Context context, String dbName) 初始化数据库之后,紧接着调用query 查询会查询不到内容,即使数据库中其实有结果数据。除非在查询之前随便 liteOrm.save(...) 一下,QAQ 被坑了一整个晚上!最后的这个解决方法的发现也是突发奇想...

作者看看是什么原因,修正一下吧😂

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.