小编ADT*_*DTC的帖子

有没有有效的方法使Android数据库查询更快?

在我的Android应用程序中,我需要获取50,000个数据库条目(文本),并在活动开始时(in onCreate())与它们进行比较.我用最简单的方法做到这一点:我将整个表从db到光标.然而这种方式太迟钝了.有没有其他方法可以更有效地做到这一点?

编辑:该应用程序是"拼字游戏解决者",这就是为什么我不在WHERE我的查询中使用子句(获取整个数据并将其与输入字母的组合进行比较).起初我正在使用一个包含完整可能单词的大表.现在我使用26张桌子.这减少了滞后,我在一个线程上进行数据库调用 - 这也解决了很多问题.它仍然有点滞后但更好.

sqlite android

5
推荐指数
1
解决办法
7073
查看次数

在Postgres中使用dblink有什么捷径吗?

在Postgres中,您可以使用链接到其他数据库dblink,但语法非常详细.例如,您可以这样做:

SELECT *
FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select * from table'
) AS users([insert each column name and its type here]);
Run Code Online (Sandbox Code Playgroud)

有没有办法更快地做到这一点?也许预先定义连接?

我注意到Postgres有一个create foreign table连接MySQL数据库的新功能.它的语法比dblink.我能用吗?

postgresql syntax dblink cross-database

5
推荐指数
1
解决办法
1万
查看次数

纯HTML不混合HTML,通过将html编写为类似Java的代码

请在回答之前阅读.这是我梦寐以求的幻想编程技巧.我想知道现实生活中是否有任何接近的东西.

以下JSP页面:

<%
html {
    head {
        title {"Pure fantasy";}
    }
    body {
        h1 {"A heading with double quote (\") character";}
        p {"a paragraph";}
        String s = "a paragraph in string. the date is ";
        p {
            s;
            new Date().toString();
        }
        table (Border.ZERO, new Padding(27)) {
            tr {
                for (int i = 0; i < 10; i++) {
                    td {i;}
                }
            }
        }
    }
}
%>
Run Code Online (Sandbox Code Playgroud)

可以生成以下HTML页面:

<html>
    <head>
        <title>Pure fantasy</title>
    </head>
    <body>
        <h1>A heading with double …
Run Code Online (Sandbox Code Playgroud)

html java jsp

5
推荐指数
1
解决办法
1372
查看次数

如何在Android模拟器上使用Xposed框架

我正在尝试API 17,我无法打开Xposed框架.

确切的步骤是:

  1. 启动分区大小为1024的模拟器
  2. adb install XposedInstaller.apk
  3. adb remount (使系统目录可写)
  4. 启动Xposed安装程序并单击"安装/更新"

我得到一个空白的错误消息然后它说没有安装框架.

android reverse-engineering

5
推荐指数
1
解决办法
8052
查看次数

为什么JDBC使用原语而不是包装clasess?

这不是我现在遇到的具体问题,只是我无法解决的问题.我在这里找不到任何问题或在网上找到关于此的信息.

诸如java.lang.Integer(对于原语int)的包装类从一开始就存在于Java中.但JDBC的开发人员选择实现诸如getIntgetLong使用Java原语之类的方法.原语的问题在于它们不能代表SQL NULL.

要解决这一问题,JDBC开发者写了很多方法来返回默认的原始值,如0false当列NULL,并推出了wasNull()为用户检查它是否应该是功能null.更糟糕的是,当许多其他方法(如PreparedStatement) setInt接受原语而不是包装器对象时,用户必须有条件地使用setNull来设置相应的列NULL.

我发现这为其用户如何使用JDBC API 增加了不必要的复杂性.如果JDBC的ResultSet对象在列具有SQL时getInteger将Java null作为Integer对象返回NULL,那么在没有检查麻烦的情况下它将非常方便wasNull.Java的拆箱会自动处理必须将Integer对象分配给int原始变量并将其转换为的情况0.如果PreparedStatement有一个setInteger方法,用户可以简单地使用它来设置一个合适的列的值 - 包括一个SQL NULL值 - 而无需检查它是否应该为null并且还原为setNull.

直到现在,JDBC还没有改变以纠正这种异常现象.即使在我们已经处于Java 1.7或1.8之后,JDBC仍继续使用原始类型(我是否正确?).Java的内置装箱和拆箱将确保假定原始类型的旧应用程序将继续正确使用更新的JDBC版本以使用包装器.那么为什么没有人费心去升级JDBC以使用包装器对象代替原语?

PS:听听推荐的JDBC解决这个荒谬问题的替代解决方案会很高兴.

java jdbc resultset prepared-statement

5
推荐指数
1
解决办法
1250
查看次数

Android:如何集成Log4j2?

我正在尝试在Android中集成Log4j2,但收到以下错误消息:

java.lang.ClassCastException: org.apache.logging.log4j.simple.SimpleLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.appender.SyslogAppender;

  LoggerContext context = (LoggerContext) LogManager.getContext();
  Logger root = context.getLogger("MainActivity");
  SyslogAppender appender = obtainAppender();

  if (!appender.isStarted()) 
    appender.start();

  root.addAppender(appender);
  root.setAdditive(false);
  root.setLevel(Level.DEBUG);
  root.debug("This is a test message");
Run Code Online (Sandbox Code Playgroud)

android rsyslog log4j2

5
推荐指数
1
解决办法
2305
查看次数

密码:使用WHERE子句或MATCH属性定义进行完全匹配吗?

在Neo4j(3.0版)中,以下查询返回相同的结果:

1. MATCH (a:Label) WHERE a.property = "Something" RETURN a
2. MATCH (a:Label {property: "Something"}) RETURN a
Run Code Online (Sandbox Code Playgroud)

在处理一些大型数据集时,我注意到(并使用EXPLAINPROFILE进行了验证),在某些情况下,第二个查询之类的查询会更快更好地执行。虽然存在其他实例,两个版本的性能均相同,但我还没有看到第一个版本的性能更好的实例。

neo4j文档和教程也有所不同。两者之间没有明确的比较。docs和tut使用这两个版本,通常倾向于第一个版本(可能是因为非精确匹配只能使用WHERE子句来完成)。但是指南还指出,缩小搜索范围的越早,搜索速度就越快。

  1. 我对两个版本将始终返回相同的结果吗?
  2. 我认为第二个版本通常会更好,因为它会缩小搜索范围,这对吗?

performance neo4j cypher query-tuning

5
推荐指数
1
解决办法
329
查看次数

如何在保留旧设置的情况下更新 Windows 版 Git 客户端?

我多年前安装了 Windows 版 Git。我将它与 Cygwin 一起使用。我也有 Sourcetree,并且我的计算机中的许多 Git 存储库都存在一些问题(但现在不再是了)。

现在,我的旧 Git 无法在 GitHub 上运行,所以我必须更新它。我开始安装 Git,它问了我很多问题。我不记得三年前我为这些选择了什么。我不想冒险破坏任何东西。

那么,有没有一种方法可以在不更改任何设置的情况下更新 Git?

git git-for-windows

5
推荐指数
1
解决办法
6889
查看次数

如何禁用Next.Js和svgr中的removeViewBox插件?

我想禁用 Next.js/svgr/svgo 中的removeViewBox 插件。以下 next.config.js 应该可以工作,但没有。有人可以帮忙吗?我使用它: "@svgr/webpack": "^6.2.0", "react": "17.0.2", "next": "^12.0.7",

module.exports = {
  reactStrictMode: true,
  i18n,
  webpack(config) {
    config.module.rules.push(
      {
        test: /\.svg$/i,
        issuer: /\.[jt]sx?$/,
        use: [
          {
            loader: '@svgr/webpack',
            options: {
              prettier: false,
              svgo: true,
              icon: true,
              svgoConfig: {
                plugins: [
                  {
                    name: 'preset-default',
                    params: {
                      overrides: {
                        removeViewBox: false,
                      },
                    },
                  },
                ],
              },
              titleProp: true,
            },
          },
        ],
      })
    return config
  },
}
Run Code Online (Sandbox Code Playgroud)

svg webpack next.js

5
推荐指数
2
解决办法
2413
查看次数

在reflog过期和gc修剪后推送到源

我使用以下命令删除了本地存储库中一些无法访问且悬空的提交

git fsck --unreachable --dangling --no-reflogs
git reflog expire --expire=now --all
git gc --prune=now
Run Code Online (Sandbox Code Playgroud)

但是我发现删除的提交仍然可以在原始服务器上使用(确切地说是GitHub)。

我试过了,git push --force但是它没有将更改同步到原点。如何强制将更改同步到原点(将无法访问/悬垂的提交也从远程删除)?

这是一个类似的问题,没有答案:

gc prune和git reflog的范围到期,并且相关配置

git garbage-collection git-push git-reflog

4
推荐指数
1
解决办法
863
查看次数