我正在使用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) 我正在使用ORM(ORMlite),我的所有调用都进行得很顺利,直到我收到以下错误.
线程"main"中的异常org.h2.jdbc.JdbcSQLException:SQL语句中的语法错误"SELECT*FROM""STORIES""WHERE""TITLE""='Deepcut case leads'not FOLLOWED [*]''"; SQL语句:SELECT*FROM
StoriesWHEREtitle='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)