小编Dan*_*ean的帖子

JdbcTemplate queryForInt/Long在Spring 3.2.2中已弃用.应该用什么代替?

JdbcTemplate中的queryforInt/queryforLong方法在Spring 3.2中已弃用.我无法找出使用这些方法替换现有代码的最佳做法的原因或内容.

一种典型的方法:

int rowCount = jscoreJdbcTemplate.queryForInt(
    "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
    playerNameKey.toUpperCase(),
    teamNameKey.toUpperCase()
);
Run Code Online (Sandbox Code Playgroud)

好的,上面的方法需要重写如下:

Object[] params = new Object[] { 
   playerNameKey.toUpperCase(), 
   teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
    "SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
    params, Integer.class);
Run Code Online (Sandbox Code Playgroud)

显然,这种弃用使JdbcTemplate类更简单(或者它?).QueryForInt总是一种方便的方法(我猜)并且已经存在了很长时间.为什么删除它.结果代码变得更加复杂.

java spring jdbc jdbctemplate

101
推荐指数
4
解决办法
8万
查看次数

使用eclipse的JSP的间歇性ClassNotFoundException

在Windows上运行Eclipse Indigo,Tomcat 7 - 使用eclipse wtp插件在ROOT上下文中运行Web应用程序我遇到了这个间歇性问题,其中eclipse无法找到已编译的JSP.它在首次访问JSP时发生,除非通过停止Tomcat服务器并清理Work目录和项目目录,否则无法解析.编译版本在eclipse目录结构中:

.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\_\org\apache\jsp\WEB_002dINF\...
Run Code Online (Sandbox Code Playgroud)

但它仍然会产生这个错误.

经过一些研究后,我发现这个相关的线程似乎只是在应用程序部署在ROOT上时才会出现问题.

http://comments.gmane.org/gmane.comp.jakarta.tomcat.user/208071

并输入了一个错误:https: //bugs.eclipse.org/bugs/show_bug.cgi?id = 334977

有没有人有类似的问题,并知道解决方案?

java jsp tomcat web-applications eclipse-wtp

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

Android权限保护级别为18和50

当我在Nexus 7上对所有应用程序转储所有权限时,我获得了保护级别为0(正常),1(危险),2(签名)的权限(如预期).3(SIGNATURE_OR_SYSTEM)*下没有记录任何内容.

但是也有很多权限,其保护级别设置为'18',一些权限设置为'50'.

我找不到关于这些值代表什么的任何文档.有人知道吗?

*它没有记录3岁以下的任何东西.

这些是记录的:

android.permission.ACCESS_CACHE_FILESYSTEM - 18
android.permission.ACCESS_CHECKIN_PROPERTIES - 18
android.permission.ACCESS_DOWNLOAD_MANAGER - 18
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED - 18
android.permission.ACCESS_MTP - 18
android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK - 18
android.permission.BACKUP - 18
android.permission.BIND_APPWIDGET - 18
android.permission.BIND_DIRECTORY_SEARCH - 18
android.permission.BIND_KEYGUARD_APPWIDGET - 18
android.permission.BIND_REMOTEVIEWS - 18
android.permission.BIND_WALLPAPER - 18
android.permission.CALL_PRIVILEGED - 18
android.permission.CHANGE_COMPONENT_ENABLED_STATE - 18
android.permission.CHANGE_CONFIGURATION - 18
android.permission.CONNECTIVITY_INTERNAL - 18
android.permission.CONTROL_LOCATION_UPDATES - 18
android.permission.CRYPT_KEEPER - 18
android.permission.DELETE_CACHE_FILES - 18
android.permission.DELETE_PACKAGES - 18
android.permission.DOWNLOAD_CACHE_NON_PURGEABLE - 18
android.permission.GLOBAL_SEARCH - 18
android.permission.INSTALL_LOCATION_PROVIDER - 18
android.permission.INSTALL_PACKAGES - 18
android.permission.MANAGE_USB - …
Run Code Online (Sandbox Code Playgroud)

java android

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

当我在浏览器上"查看源代码"时,如何确保格式良好的HTML?

当我使用不同的浏览器"查看源代码"时,我的网页似乎总是有很多空格并且格式错误.我正在使用JSP开发Java Web应用程序.

我怎样才能确保当我'查看源代码'时,我看到格式良好的HTML?

编辑:

当我说格式化时我的意思是:

我得到这样的事情:

<div>




                     <p>some text</p>
     </div>
Run Code Online (Sandbox Code Playgroud)

当我想要的时候:

<div>
      <p>some text</p>
</div>
Run Code Online (Sandbox Code Playgroud)

在我的JSP(使用包含)中,一切都很好地格式化.

html java browser jsp web-applications

6
推荐指数
1
解决办法
1406
查看次数

简单的Java代码允许单线程访问和其他线程跳过/继续

换句话说,我不希望线程等待它无法访问锁(如在同步中),我想线程执行只是在它无法获得锁时立即返回.

像这样简单的布尔锁可能允许多个线程访问.

private static boolean lockAvailable = true;

private boolean acquireLock() {
  if(lockAvailable) {
    lockAvailable = false;
    return true;
  }
  return false;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?实现这一目标的最佳/最简单方法是什么?

编辑:

谢谢你指出信号量(!)

所以再看一遍这段代码是防弹吗?

private final static Semaphore lock = new Semaphore(1, true);   

public void tryAndDoSomething() {
  if(lock.tryAcquire()) {
    try {
      // only single thread can access here at one time
    } finally {
      lock.release();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

更新:

我意识到我需要可重入的功能,所以我创建了一个简单的非阻塞重入.为任何对您如何执行此操作感兴趣的人发布代码.任何想要这种功能的人当然应该使用现有的 Java类java.util.concurrent.locks.ReentrantLock:

import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * SimpleNonBlockingLock ensures that only a single thread can call …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading synchronization semaphore

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

在多个Java客户端访问数据库时确保数据完整性

我有一个MySql数据库实例和一个Account表维护一个Balance字段.我有多个Java应用程序,每个都使用Jdbc连接到数据库,可能会增加或减少Balance字段的值.如何确保读取,计算和更新Balance值以及此过程是单独发生的,并且"了解"可能正在执行相同操作的任何其他Java进程?

java mysql database jdbc data-integrity

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