小编lit*_*leK的帖子

将Java结果集转换为String数组

我正在编写一个程序,它将查询MS访问数据库,将查询作为结果集返回,然后我想最终将该结果集转换为String数组,以便我可以将它传递给Swing JComboBox的构造函数 - 所以ComboBox将列出查询返回的项目.

我已经能够将结果集的行存储到ArrayList中,然后将该ArrayList转换为对象数组,组合框将列出正确的项目,但作为对象.我根本无法将ArrayList转换为String数组.有谁知道这是否可能?这是我的一些代码......

// Convert the Resultset into an array list

public ArrayList<ArrayList<Object>> Results2Array(ResultSet rs) throws SQLException {
    ResultSetMetaData metaData = rs.getMetaData();
    int columns = metaData.getColumnCount();

    ArrayList<ArrayList<Object>> al = new ArrayList<ArrayList<Object>>();

    while (rs.next()) {
        ArrayList<Object> record = new ArrayList<Object>();

        for (int i = 1; i <= columns; i++) {
            Object value = rs.getObject(i);
            record.add(value);
        }
        al.add(record);
    }
    return al;
}

// Convert ArrayList to Object Array, and pass into GUI

ArrayList<String> Locations = new ArrayList<String>();
ArrayList<String> Months = …
Run Code Online (Sandbox Code Playgroud)

java swing arraylist resultset

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

我应该开发什么样的最低黑莓OS?

我正在为BlackBerry移动设备开发Netflix应用程序.我需要决定我应该开发的最小操作系统版本 - 取决于我选择哪些会产生一些设计影响(例如我可以使用哪些浏览器字段类等)

它归结为......我应该支持低于OS 5.0的任何东西吗?

blackberry

9
推荐指数
1
解决办法
1890
查看次数

需要帮助在线程运行方法中返回对象

我有一个扩展的Java类Thread,它基本上如下所示:

public class HttpRequestDispatcher extends Thread {
    private String url;
    private String method; // GET or POST
    private byte[] postData;

    public HttpRequestDispatcher(String url, String method, byte[] postData) {
        this.url = url;
        this.method = method;
        this.postData = postData;
    }

    public HttpRequestDispatcher(String url, String method) {
        this.url = url;
        this.method = method;
    }

    public void run() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要run()方法来返回a ByteArrayOutputStream或a String.但是,因为它是在run()方法中Thread,我不能将方法的返回类型设置为a ByteArrayOutputStream或a String.

HttpRequestDispatcher班被称为所谓的OAuth.java类里面.

我怎样才能解决这种情况?

java methods multithreading return

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

在Activity中没有调用Android onConfigurationChanged()

我意识到这个主题还有其他一些帖子,但这些帖子的解决方案对我不起作用.

基本上,我想停止我的Activity重新启动设备方向更改.为此,我修改了清单文件中的活动:

        <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden"></activity>
Run Code Online (Sandbox Code Playgroud)

onConfigurationChanged()在我的活动中覆盖了:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    System.out.println("IN onConfigurationChanged()");
}
Run Code Online (Sandbox Code Playgroud)

但是,在方向更改时,活动仍在重新启动,并且onConfigurationChanged()未调用该方法.

有谁知道为什么会这样?

java android orientation android-activity

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

Java中许多if-else语句的性能不佳

我有一个方法,用32个if-else语句检查5种不同条件的所有组合(想想真值表).5个不同的字母表示每个在字符串上运行自己的正则表达式的方法,并返回一个布尔值,指示字符串是否与正则表达式匹配.例如:

if(A,B,C,D,E){

}else if(A,B,C,D,!E){

}else if(A,B,C,!D,!E){

}...etc,etc.
Run Code Online (Sandbox Code Playgroud)

但是,它确实影响了我的应用程序的性能(对不起,我不能详细介绍).谁能推荐一种更好的方法来处理这种逻辑?

使用正则表达式的每个方法如下所示:

String re1 = "regex here";
Pattern p = Pattern.compile(re1, Pattern.DOTALL);
Matcher m = p.matcher(value);
return m.find();
Run Code Online (Sandbox Code Playgroud)

谢谢!

java performance conditional if-statement

8
推荐指数
2
解决办法
2846
查看次数

何时使用Java Messaging和Queuing Systems的持久性

我正在对(Java)消息传递和排队系统进行贸易研究,以便即将重新设计主要Web应用程序的后端框架(在Amazon的EC2 Cloud,x-large实例上).我目前正在评估ActiveMQ和RabbitMQ.

计划是有5个不同的队列,其中一个是死信队列.每天发送的邮件数量将介于40K到400K之间.由于我计划将消息内容作为指向数据存储上XML文件位置的指针,因此我希望消息大约为64字节.但是,出于评估目的,我还想考虑在消息中发送原始XML,平均文件大小为3KB.

我的主要问题:每天应该保留多少条消息/多少条消息?考虑到我上面指定的金额,坚持所有消息是否合理?我知道持久性会降低性能,也许会降低很多.但是,由于没有坚持,正在使用大量的RAM.你们有什么建议的?

此外,我知道在线有关于ActiveMQ(JMS)和RabbitMQ(AMQP)的大量信息.我做了大量的研究和测试.看起来这两种实现都符合我的需求.考虑到我上面提供的信息(文件大小和消息数量),任何人都可以指出使用我可能错过的特定供应商的原因吗?

谢谢!

messaging activemq-classic jms amqp rabbitmq

8
推荐指数
1
解决办法
6758
查看次数

RabbitMQ扇出交换有问题

我可以使用Publish/Subscribe RabbitMQ Java教程创建一个扇出交换,任何连接的使用者都将收到一条消息的副本.我想在连接任何消费者之前创建交换和绑定,而不是动态地/以编程方式声明交换和绑定.我是通过RabbitMQ管理控制台完成的.但是,出于某种原因,我的消费者正在以循环方式接收消息,而不是全部接收消息的副本.我错过了什么?以下是一些代码段:

出版商:

channel.basicPublish("public", "", null, rowId.getBytes("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

消费者:

QueueingConsumer consumer = new QueueingConsumer(channel);
            channel.basicConsume("myqueue", false, consumer);
Run Code Online (Sandbox Code Playgroud)

...在RabbitMQ管理控制台中,我创建了一个"扇出"类型的交换"公共",并且我将该交换的绑定设置为"myqueue".

我很感激任何帮助!

messaging amqp rabbitmq rabbitmq-exchange

8
推荐指数
1
解决办法
5673
查看次数

将 Amazon Cognito 的授权代码授予与无服务器/单页 Web 应用程序一起使用

我正在尝试开发一个无服务器 JavaScript Web 应用程序,该应用程序由 API 网关(带有 Amazon Cognito 自定义授权程序)、Lambda 和 DynamoDB 组成。这篇文章是我在完全放弃 Cognito 之前最后一次尝试让 Cognito 满足我的需求(第二次)。由于 Cognito 文档令人困惑和缺乏,我将尝试注入一些我学到的知识。

使用 Cognito,您可以使用自己的注册、登录等网页开发自定义身份验证工作流程。您还可以选择利用 Amazon 的托管 Web UI 使事情变得更简单(尽管 HTML/CSS 自定义选项很少)。我正在使用后者。

为 Cognito 用户池配置 App 客户端时,您必须做出的最关键决定是使用授权代码授权还是隐式授权。使用授权代码授予,成功的身份验证将向调用方返回包含 JWT id_token、access_token 和 refresh_token 的会话令牌。使用隐式授权,您的调用者将收到一个授权代码,该代码仅可用于获取 id_token 和 access_token,没有 refresh_token。隐式授权最适用于无服务器(或单页)应用程序,因为它不会向客户端公开长期存在的 refresh_token,该令牌很容易被破坏并用于假设对您的应用程序的有效访问。但是,access_token 有固定的一小时过期时间,目前无法配置。所以,

由于我的 Web 应用程序绝不包含敏感信息,因此我将使用授权代码授予并将令牌保留在浏览器的 LocalStorage 中(这是不安全的,不推荐的,也是一种不好的做法),希望在某个时候, Cognito 将完全遵守 OpenId 规范,并通过 prompt=none具有隐式授权的刷新令牌提供全面支持。如您所见,亚马逊对此事一直没有回应。哎呀,即使是自定义 access_token 到期时间的选项(使用隐式授权)也是一个不错的折衷方案。

因此,我已成功部署了来自amazon-cognito-auth-js JavaScript 库的示例应用程序,该库旨在与托管 Web UI 流程一起使用。这不应与 amazon-cognito-identity-js 库混淆,如果您正在开发自己的自定义身份验证工作流程,则应使用该库。amazon-cognito-auth-js 库同时支持授权代码授权和隐式授权,并将处理解析令牌、将它们缓存到/从 LocalStorage 缓存/检索,以及使用刷新令牌静默更新 access_token(用于授权代码授予)。

当我登录时,我的浏览器 URL 类似于以下内容:https : …

javascript authentication amazon-web-services oauth-2.0 amazon-cognito

8
推荐指数
1
解决办法
1515
查看次数

冰淇淋三明治中的Android Toast通知太小

冰淇淋三明治中的吐司通知是否有任何问题?在我的应用程序中,通知在所有其他版本上看起来很好.然而,在冰淇淋三明治中,它非常小巧.起初我认为它可能是我的自定义主题,但在禁用它后,我看到了相同的结果.我正像其他人一样展示Toast:

Toast.makeText(MyActivity.this, "Hello, World!", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

我的主题:

<resources>
<style name="mytheme" parent="@android:style/Theme.Light.NoTitleBar" >
    <item name="android:editTextStyle">@style/blue_edittext</item>
    <item name="android:windowNoTitle">true</item>  
    <item name="android:windowBackground">@color/White</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

java android android-4.0-ice-cream-sandwich

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

SpringSource IDE不使用项目名称作为Spring MVC应用程序的根URL

当我使用SpringSource IDE创建Spring MVC模板项目时,我运行应用程序并将根URL设置为默认包名称的最后一个单词:

例如,当我创建项目时,我将默认包设置为com.sample.myapp.当我运行应用程序时,它会打开http://localhost:8080/myapp.为什么根URL不使用我的项目名称MyProject,而是?

这是一个问题,因为我必须在我的应用程序中指定所有URL,/myapp/resources/css/mycss.css但是当我导出.war并将其部署到Tomcat服务器时,Tomcat需要项目名称(它希望我使用/MyProject/resources/css/mycss.css.因此,部署时我的所有链接都被破坏了(但是当我在SpringSource IDE中本地运行tomcat时却没有...)

有没有其他人遇到这个问题?


下面的评论讨论示例:

<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
    <property name="service"
        value="https://localhost:8443/MyProject/j_spring_cas_security_check" />
    <property name="sendRenew" value="false" />
</bean>
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc sts-springsourcetoolsuite

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