相关疑难解决方法(0)

带引号的ORMLite查询,Android

我正在使用ORMLite,使用Table RecentSearch:

@DatabaseTable(tableName = LocalStorageConfig.SQL_RECENTS_TABLE_NAME)
public class RecentSearch {

    @DatabaseField
    public String search_text;
    public static String SQL_SEARCH_FIELD = "search_text";

    @DatabaseField
    public String location_text;
    public static String SQL_LOCATION_FIELD = "location_text";

    @DatabaseField
    public Date creation_date = new Date();
    public static String SQL_CREATION_DATE_FIELD = "creation_date";
Run Code Online (Sandbox Code Playgroud)

它几乎一直在工作,但是当我发现包含'的字符串的情况时,它似乎是一个问题.你知道怎么解决这个问题吗?我找不到我要找的东西.

这是我删除最近的功能

public boolean deleteRecent(RecentSearch search) {
    try {
        Dao<RecentSearch, Integer> recentsDao = recentsSqlManager.getRecentsDao();
        DeleteBuilder<RecentSearch, Integer> deleteBuilder = recentsDao.deleteBuilder();

        deleteBuilder.where().eq(RecentSearch.SQL_SEARCH_FIELD, search.getSearch_text()).and().eq(RecentSearch.SQL_LOCATION_FIELD, search.location_text);
        recentsDao.delete(deleteBuilder.prepare());
        return true;
    } catch (Exception e) {
        Log.e(TAG, "Database exception", e);
        return false;
    }
} …
Run Code Online (Sandbox Code Playgroud)

android ormlite

7
推荐指数
1
解决办法
4779
查看次数

使用ORMLite准备查询的SQL异常

我正在使用ORM(ORMlite),我的所有调用都进行得很顺利,直到我收到以下错误.

线程"main"中的异常org.h2.jdbc.JdbcSQLException:SQL语句中的语法错误"SELECT*FROM""STORIES""WHERE""TITLE""='Deepcut case leads'not FOLLOWED [*]''"; SQL语句:SELECT*FROM StoriesWHERE title='Deepcut case leads'未跟随org.h2.message.DbException.get处的org.h2.message.DbException.getJdbcSQLException(DbException.java:327)中的'[42000-152] DbException.java:167)org.h2.message.DbException.get(DbException.java:144)org.h2.message.DbException.getSyntaxError(DbException.java:179)atg.h2.command.Parser.getSyntaxError (Parser.java:480)org.h2.command.Parser.prepareCommand(Parser.java:229)org.h2.engine.Session.prepareLocal(Session.java:426)atg.h2.engine.Session. prepare命令(Session.java:374)org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1093)org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:71)org.h2.jdbc.JdbcConnection. prepare.com(JdbcConnection.java:601)位于com.j256.ormlite.jdbc.JdbcDatabaseConnection.compileStatement(JdbcDatabaseConnection.java:83)的com.j256.ormlite.stmt.mapped.MappedPreparedStmt.compile(MappedPreparedStmt.java:44)at com .j256.ormlite.stmt.StatementExecut com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:119)中的or.buildIterator(StatementExecutor.java:169)at com.j256.ormlite.dao.BaseDaoImpl.query(BaseDaoImpl.java:189)

我很困惑,哪些是错的.我从这些行调用搜索:

// get our query builder from the DAO
QueryBuilder<Story, Integer> queryBuilder = StoryDao.queryBuilder();
// the 'title' field must be equal to title (a variable)
queryBuilder.where().eq(Story.TITLE_FIELD_NAME, title);
// prepare our sql statement
PreparedQuery<Story> preparedQuery = queryBuilder.prepare();
// query for all stories that have that title
List<Story> accountList = StoryDao.query(preparedQuery);
Run Code Online (Sandbox Code Playgroud)

java sql exception h2 ormlite

2
推荐指数
1
解决办法
3794
查看次数

标签 统计

ormlite ×2

android ×1

exception ×1

h2 ×1

java ×1

sql ×1