Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何在ORMLite中插入最后一个id?_Java_Android_Ormlite - Fatal编程技术网

Java Android:如何在ORMLite中插入最后一个id?

Java Android:如何在ORMLite中插入最后一个id?,java,android,ormlite,Java,Android,Ormlite,我在执行一个查询(使用ORMLite)时遇到问题,该查询向“ultimaConfiguracao”添加了一个返回,在该查询中可以获取插入到配置表中的最后一个“id” 最后一次配置的搜索方法如下: public Integer buscaIdUltimaAtualizacao() throws SQLException { GenericRawResults<Integer> raw = this.queryRaw("SELECT MAX (id) FROM confi

我在执行一个查询(使用ORMLite)时遇到问题,该查询向“ultimaConfiguracao”添加了一个返回,在该查询中可以获取插入到配置表中的最后一个“id”

最后一次配置的搜索方法如下:

public Integer buscaIdUltimaAtualizacao() throws SQLException {
        GenericRawResults<Integer> raw = this.queryRaw("SELECT MAX (id) FROM configuracao", new RawRowMapper<Integer>() {
            Configuracao c = new Configuracao();
            @Override
            public Integer mapRow(String[] columns, String[] results) throws SQLException {
                if(results[0] != null)
                    return Integer.parseInt(results[0]);
                else
                    return 0;
            }
        });
        return raw.getFirstResult();
    }
我执行操作的上下文:

protected Boolean doInBackground(Void... paths){
        try {
            this.ultimaConfiguracao = this.confDao.queryForId(confDao.buscaIdUltimaAtualizacao().toString());

            if(ultimaConfiguracao != null){
                //baixa somente o que tem atualização
            }
            else{
                //region MIDIA
                this.query = new ParseQuery("Midia");
                this.query.whereEqualTo("ativo", true);
                query.findInBackground(new FindCallback() {
                    @Override
                    public void done(List list, com.parse.ParseException e) {
                        if(!list.isEmpty()){
                            for(ParseObject pObject : (List<ParseObject>) list) {
                                publishProgress(((Activity) listener).getString(R.string.m_progress_textView_verificandoAtualizacoes));
                                Midia md = new Midia();
...
您应该在列名和表名的前面和后面加上tide(`)字符

我也面临着这个问题。这是解决办法

QueryBuilder<Account, Integer> qb = accountDao.queryBuilder();
// select 2 aggregate functions as the return
qb.selectRaw("MAX(`column_name`)");
// the results will contain 2 string values for the min and max
results = accountDao.queryRaw(qb.prepareStatementString());
String[] values = results.getFirstResult();

QueryBuilder

该`字符由way@Odaym(主题外)。这个`字符实际上是一个“倒引号”(或“倒勾”)。“瓷砖”是这样的:~
02-23 22:36:24.097    1446-1453/com.universo91.towersrock W/art﹕ Suspending all threads took: 313.333ms
02-23 22:36:24.936    1446-1453/com.universo91.towersrock W/art﹕ Suspending all threads took: 651.381ms
02-23 22:36:25.009    1446-1491/com.universo91.towersrock W/System.err﹕ java.sql.SQLException: Could not perform raw query for SELECT MAX (id) FROM configuracao
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.dao.BaseDaoImpl.queryRaw(BaseDaoImpl.java:552)
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at com.universo91.towersrock.DAO.ConfiguracaoDao.buscaIdUltimaAtualizacao(ConfiguracaoDao.java:78)
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at com.universo91.towersrock.BL.PSTowersRock.doInBackground(PSTowersRock.java:72)
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at com.universo91.towersrock.BL.PSTowersRock.doInBackground(PSTowersRock.java:39)
02-23 22:36:25.011    1446-1491/com.universo91.towersrock W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
02-23 22:36:25.012    1446-1491/com.universo91.towersrock W/System.err﹕ Caused by: java.sql.SQLException: Getting a writable database from helper DatabaseHelper@28ef97dc failed
02-23 22:36:25.013    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
02-23 22:36:25.013    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.android.AndroidConnectionSource.getReadWriteConnection(AndroidConnectionSource.java:68)
02-23 22:36:25.013    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.android.AndroidConnectionSource.getReadOnlyConnection(AndroidConnectionSource.java:54)
02-23 22:36:25.014    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.stmt.StatementExecutor.queryRaw(StatementExecutor.java:306)
02-23 22:36:25.014    1446-1491/com.universo91.towersrock W/System.err﹕ at com.j256.ormlite.dao.BaseDaoImpl.queryRaw(BaseDaoImpl.java:550)
02-23 22:36:25.014    1446-1491/com.universo91.towersrock W/System.err﹕ ... 9 more
QueryBuilder<Account, Integer> qb = accountDao.queryBuilder();
// select 2 aggregate functions as the return
qb.selectRaw("MAX(`column_name`)");
// the results will contain 2 string values for the min and max
results = accountDao.queryRaw(qb.prepareStatementString());
String[] values = results.getFirstResult();