小编Ish*_*Ish的帖子

使用JDBC迭代大表的最快方法

我正在尝试创建一个java程序来清理和合并表中的行.该表很大,大约500k行,我目前的解决方案运行速度非常慢.我想做的第一件事就是简单地获取一个表示我表中所有行的对象的内存数组.这是我正在做的事情:

  • 一次选择1000行的增量
  • 使用JDBC在以下SQL查询上获取结果集SELECT*FROM TABLE WHERE ID> 0 AND ID <1000
  • 将结果数据添加到内存数组中
  • 继续查询最多500,000,增量为1000,每次添加结果.

这已经很久了.事实上,它甚至没有超过从1000到2000的第二个增量.查询需要永远完成(虽然当我直接通过MySQL浏览器运行相同的东西时它速度相当快).我已经有一段时间了,因为我直接使用了JDBC.有更快的替代方案吗?

java mysql jdbc

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

Mac OSX中的Eclipse键盘快捷键

我正在运行Leopard并在eclipse中完成所有Java开发.一些快捷方式的工作,如Command-1,它会做一个快速建议.但是,如何使用功能键(包浏览器中的F5进行刷新)?现在它将空间或任何系统偏好设置映射到该空间.

那么当我在调试时想要直接转到所选择的函数时,按住Ctrl键点击一个断点?有没有办法让我的eclipse键盘快捷键优先于其他程序?

我正在运行eclipse 3.4虽然自从eclipse 3.2以来我遇到了这个问题.

eclipse macos

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

超快的屏幕抓取技术?

我经常发现自己需要为内部目的进行一些简单的屏幕抓取(即我使用的第三方服务仅通过HTML发布报告).我现在至少有两三个这样的案例.我可以使用apache httpclient并创建所有必要的屏幕抓取代码,但它需要一段时间.这是我通常的过程:

  1. 在网站上打开Charles Proxy并查看最新情况.
  2. 开始使用Apache HttpClient编写一些Java代码,处理cookie,多个请求
  3. 使用Jericho HTML来处理HTML的解析.

我希望我能够快速"记录我的会话",然后参数化会话之间不同的事情.想象一下,只需使用Charles获取所有请求HTTP,然后参数化相关的查询字符串或post params.我有一个可重复使用的http脚本.

有没有这样做呢?我记得当我曾经在一家大公司工作时,我们曾经使用过Mercury Interactive称为Load Runner的工具,它基本上有一种记录http会话并使其可重用(用于测试目的)的好方法.不幸的是,这个工具非常昂贵.

html screen-scraping

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

使用XCode将同一iOS应用程序的多个版本安装到iPhone的最佳方法是什么?

我经常发现我需要在我的iPhone上构建一个可以指向我的演示服务器的"演示就绪"版本.我还想要一个构建,这是我正在开发的最新和最好的调试构建,指向我的开发服务器.有没有人找到一个非常简单的方法让我安装两个可能是相同代码但指向不同服务器的应用程序?或者也许我会有一个应用程序,它是最新版本背后的几个版本?我最好使用相同的XCode项目来构建和安装到iPhone上.

iphone xcode ios

10
推荐指数
1
解决办法
3169
查看次数

跨多个Tomcat实例维护JNDI

我想知道人们如何管理跨Tomcat应用程序服务器的多个实例维护JNDI资源.让我们以我的数据库JNDI资源为例.它在我的/conf/context.xml文件中声明,并从我的apps web.xml文件中引用.

必须在我的开发框,登台框和生产框中独立定义JNDI资源.如果我想设置开发人员/登台/生产箱的新实例怎么办?这意味着我必须在context.xml中为我提出的每个新实例重新创建资源名称?从设置角度来看,这是一个可能导致应用服务器开始指向错误数据库的人为错误的地方.

我发现这是繁琐和令人困惑的,因为我扩大了我的项目的开发人员数量以及最终我可能使用的生产服务器的数量.

你只是将它作为你的设置的一部分,或者每次重新安装tomcat并设置一个盒子时创建一个处理这个的安装脚本吗?或者是否有一些其他级别的间接可以使这更容易?

deployment tomcat jndi production-environment

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

什么是在Java中连续处理异步队列的最佳方法?

我很难弄清楚如何构建我系统的最后一块.目前我正在运行一个Tomcat服务器,它有一个响应客户端请求的servlet.每个请求反过来将一个处理消息添加到异步队列(我可能会通过Spring或更可能是Amazon SQS使用JMS).

事件的顺序是这样的:

发送方:
1.获取客户端请求
2.使用唯一ID将一些数据添加到与此请求相关的数据库中
3.将表示此请求的消息对象添加到消息队列

接收方:
1.从队列中提取新的消息对象
2.打开对象并根据msg对象中包含的信息从网站获取一些信息.
3.发送电子邮件警报
4.更新我的数据库行(相同的唯一ID)以及为此请求完成操作的信息.

我正在努力弄清楚如何妥善处理接收方.一方面,我可以创建一个简单的java程序,我从命令行启动它,选择队列中的每个项目并处理它.这样安全吗?让该程序作为Tomcat容器中的另一个线程运行更有意义吗?我不想连续地这样做,这意味着接收端应该能够一次处理多个对象 - 使用多个线程.我想让它一直24小时都在运行.

建立接收方有哪些选择?

java queue asynchronous jms

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

Java中从Java进行异步处理

我目前有一个tomcat容器 - 在其上运行的servlet监听请求.我需要HTTP请求的结果是作业队列的提交,然后将异步处理.我希望每个"作业"在数据库中连续保存,以便在发生故障时进行跟踪和恢复.我一直在做很多阅读.这是我的选择(注意我必须使用开源的东西).

1)JMS - 使用ActiveMQ(但是在这种情况下谁是该作业的消费者另一个servlet?)

2)让我的请求在数据库中创建一行.在我的Tomcat容器中有一个始终运行的独立servlet - 它使用Quartz Scheduler或java.util.concurrent中提供的实用程序来连续处理作为作业的行(使用线程池).

我倾向于后者,因为查看JMS文档让我头疼,虽然我知道它是一个更强大的解决方案,但我需要相对快速地实现它.在任何情况下,在部署此服务器的早期我都没有预料到会产生巨大的负载.

很多人都认为Spring可能对1或2都有好处.但是我从未使用过Spring,我甚至不知道如何开始使用它来解决这个问题.任何有关如何潜入而无需重新编写整个项目的指针都会很有用.

否则,如果您可以权衡选项1或2,这也是有用的.

澄清:异步过程是屏幕抓取第三方网站,并向原始请求者发送消息通知.第三方网站有点不稳定和缓慢,这就是为什么它将作为异步进程处理(内置几次重试尝试).我还将从该站点提取文件并将其存储在S3中.

java tomcat asynchronous jms quartz-scheduler

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

打包并运行具有spring依赖关系的Java应用程序

我构建了一个独立的Java应用程序,它有一堆依赖项(Apache Commons libs等)以及对Spring框架的依赖,而Spring框架又有一堆依赖项.

我在Eclipse中构建了它,它运行良好.现在我需要将它部署到生产中,因此我试图找出用所有依赖项打包它的最佳方法,以及如何甚至调用该事物(它将从命令行调用).

蛮力的方式是将我的项目导出为jar,找到所有依赖的jar(及其依赖项!),将它们复制到公共目录,编写包含类路径中每个项目的shell脚本并运行它.显然这看起来很愚蠢.

我应该使用Ant,Maven吗?我应该将所有依赖的Spring jar包装成一个大文件吗?处理此问题的任何提示都会有所帮助.

java ant spring build-process packaging

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

基本的Spring帮助

我正在尝试我的第一个Spring项目,并且必须做一些非常愚蠢的事情,因为我无法弄清楚如何使以下简单的代码片段工作:

这是我的定义文件:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="AWSProperties" class="com.addy.server.queue.AWSProperties" scope="singleton">
        <property name="awsAccessKey" value="test1"/>
        <property name="awsSecretKey" value="test2"/>
        <property name="awsSQSQueueName" value="testqueue"/>
    </bean>

    <bean id="QueueService" class="com.addy.server.queue.QueueService">
     <constructor-arg ref="AWSProperties"/>
    </bean>

</beans>
Run Code Online (Sandbox Code Playgroud)

还有我的两个简单豆子:

public class AWSProperties {

    private String awsAccessKey;
    private String awsSecretKey;
    private String awsSQSQueueName;


    public void setAwsAccessKey(String awsAccessKey) {
        awsAccessKey = awsAccessKey;
    }

    public String getAwsAccessKey() {
        return awsAccessKey;
    }

    public void setAwsSecretKey(String awsSecretKey) {
        awsSecretKey = awsSecretKey;
    }

    public String getAwsSecretKey() {
        return awsSecretKey;
    }

    public void setAwsSQSQueueName(String …
Run Code Online (Sandbox Code Playgroud)

java spring

0
推荐指数
1
解决办法
137
查看次数