小编ste*_*bot的帖子

PreparedStatement会逃脱哪些角色?

我注意到,当我使用PreparedStatement它时似乎没有逃脱某些像'%'或'_'这样的外卡字符.我知道这些可以使用反斜杠在MySql中进行转义.这让我想知道,什么角色会PreparedStatement逃脱?

java jdbc

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

在维护预先存在的XML映射的同时启用Spring MVC注释

我使用XML映射处理在Spring 2.5下开发的应用程序.最近,我们将JARS升级到Spring 3.0,并添加了一些组件扫描,试图使用Spring 3.0的新MVC功能,同时仍然维护我们现有的XML映射.

但是,如果我们要添加以下内容以启用sping mvc注释

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- The following is the new XML configuration that we have tried to add -->
    <mvc:annotation-driven/>

    <!-- ... old XML mappings -->

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

然后,Spring只查找用@Controller注释的控制器,我们的旧XML映射似乎被忽略了.是这个问题的唯一解决方案,我们需要将所有旧的XML映射更新为基于注释(一项艰巨的任务)还是有其他解决方案?

我们旧的XML映射的一个示例如下:

<bean id="loginController" class="com.app.controller.login.LoginController">
        <property name="loginService" ref="loginService"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

LoginController扩展了SimpleFormController.许多其他旧的控制器要么扩展SimpleFormController,要么扩展MultiActionController.

这就是我们的控制器的映射方式.

     <bean id="urlMapping"
          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/login">loginController</prop>
...
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

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

如果HTML元素具有侦听器,那么从DOM中删除该元素后,侦听器会发生什么?

正如标题所述,如果我有一个绑定到HTML元素的jQuery监听器,然后使用jQuery从DOM中删除HTML元素会发生什么?

<div id="eventDiv> ... </div>


$('#eventDiv').click(function() {
    // event handling code here
 });
Run Code Online (Sandbox Code Playgroud)

那么当我这样做时,听众会发生什么

 $('#eventDiv').remove();
Run Code Online (Sandbox Code Playgroud)

另外,如果你不使用jQuery并使用document.removeChild()会发生什么?

html javascript jquery

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

在XSD中表示OR

我需要要求

(firstName and lastName) OR (nameForDisplay)
Run Code Online (Sandbox Code Playgroud)

在XSD中.如果我使用,我可以得到XOR,<xs:choice>但我似乎无法得到OR.

java xml xsd

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

H2在内存DB中,在MySQL模式下以不同方式处理ORDER BY

我有一个查询ORDER BY在包含电子邮件地址的VARCHAR列上执行.

如果我点击我的物理MySQL数据库,它会忽略大小写ORDER BY.但是,我的h2内存数据库是尊重案例.它设置为MySQL模式.

有谁知道这是为什么?

java mysql collation h2 sql-order-by

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

OAuth使用Scribe与Vimeo集成

我已经能够使用Scribe API从Vimeo成功获取访问令牌.

但是,当我尝试访问受保护的资源时,我收到无效的签名错误.我OAuthService用来尝试访问受保护资源,我看起来像:

OAuthService service = new ServiceBuilder()
    .provider(VimeoApi.class)
    .apiKey(APIKEY)
    .apiSecret(API_SECRET)
    .signatureType(SignatureType.QueryString)
    .build();
Run Code Online (Sandbox Code Playgroud)

然后,我发出请求,执行以下操作:

  OAuthRequest orequest = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
  orequest.addBodyParameter("method", "vimeo.videos.upload.getQuota");
Run Code Online (Sandbox Code Playgroud)

这失败了,告诉我签名无效.

java oauth vimeo scribe

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

发布应用程序时显示停机页面

ASP.NET MVC是否可以在将项目发布到服务器时显示停机页面?现在,如果我在发布时点击页面,我会收到错误:

Could not load type "App.MvcApplication"
Run Code Online (Sandbox Code Playgroud)

如果我们能够设置停机页面以便用户知道稍后再回来,而不是认为应用程序被破坏,那将是非常棒的.

c# asp.net deployment iis asp.net-mvc

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

高效解析单个数字算术表达式

您将如何有效地(针对运行时进行优化,但同时将空间保持在最低限度)解析和评估 Java 中的一位数算术表达式。

以下算术表达式都是有效的:

eval("-5")=-5
eval("+4")=4
eval("4")=4
eval("-7+2-3")=-8
eval("5+7")=12
Run Code Online (Sandbox Code Playgroud)

我的方法是迭代所有元素,使用标志跟踪当前的算术运算,并逐位评估。

public int eval(String s){
    int result = 0;
    boolean add = true; 
    for(int i = 0; i < s.length(); i++){
        char current = s.charAt(i);
        if(current == '+'){
            add = true;
        } else if(current == '-'){
            add = false;
        } else {
            if(add){
                result +=  Character.getNumericValue(current);
            } else {
                result -= Character.getNumericValue(current);
            }
        }
    }
    return result;
} 
Run Code Online (Sandbox Code Playgroud)

这是唯一的最佳解决方案吗?我曾尝试使用堆栈来跟踪算术运算符,但我不确定这是否更有效。我也没有尝试过正则表达式。我之所以这么问,是因为我在一次采访中给出了上述解决方案,并被告知这是次优的。

java algorithm parsing

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

使用带有JUnit测试的Jetty服务器

我一直在尝试通过在JUnit测试用例的BeforeClass方法中启动Jetty服务器然后使用HttpClient来形成对服务器的请求来测试我的Web应用程序.我让服务器启动没有任何问题,但是当我尝试发出请求时,我一直得到404.

我的服务器配置如下:

  public void start() throws Exception {
        if (server == null) {
            server = new Server(PORT);
            server.setStopAtShutdown(true);

            wac = new WebAppContext();
            wac.setContextPath("/app");
            wac.setResourceBase("war");
            wac.setClassLoader(this.getClass().getClassLoader());
            server.addHandler(wac);

            server.start();
        }
   }    
Run Code Online (Sandbox Code Playgroud)

我的配置有问题吗?服务器正在运行,我可以看到我正在点击它,它只是找不到任何资源.

java junit http jetty

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

带有C3P0或DBCP的Spring ORM正在泄漏连接

在DBCP和C3P0的最新版本上,使用Spring的Ibatis支持,我遇到了两个泄漏连接的问题.

方案是有一个运行SQL的日志来锁定多个表.这会导致我的池中的连接最大化,因为用户触发了锁定表的查询.最后,管理员进入MySQL并对kill query <id>长时间运行的SQL执行操作.

如果有足够的线程(在我的情况下大约50个或更多)等待将数据库线程重新检入池中,那么我在线程转储中看到如下内容:

 java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)
    at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
    - locked <0x00002aaacbb01118> (a com.mchange.v2.resourcepool.BasicResourcePool)
    at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at 
Run Code Online (Sandbox Code Playgroud)

要么

  java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
    - locked <0x00002aab0f030620> (a org.apache.commons.pool.impl.GenericObjectPool$Latch)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at 
Run Code Online (Sandbox Code Playgroud)

这些线程在FOREVER等待.

如果池被最大化,并且只有少数(大约5个)线程正在等待池中的空闲连接,则不会发生这种情况.

我知道有配置可以解决这个问题(设置超时等),但我感兴趣的是为什么这首先发生?当有50个或更多线程等待连接并且我终止长时间运行的SQL时,为什么活动线程没有返回到池?

更新:我应该明确表示我使用的是Spring 3.0.2和Ibatis 2.3.我使用SqlMapClientTemplate来管理我的连接.此时,我开始认为Ibatis 2.3没有正确处理重负载.

java mysql database spring c3p0

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