小编Ann*_*cks的帖子

重用PreparedStatement

我在我们的代码库上运行了findbugs,它指出还有两个语句仍然需要关闭.在我们运行的代码的这一部分中:

preparedStatement = connection.prepareStatement(query);
Run Code Online (Sandbox Code Playgroud)

对于3个不同的查询,重用prepareStatement.在finally块中,我们关闭资源:

finally{
   try{
      if (resultSet != null) 
         resultSet.close();
   } catch (Exception e) {
      exceptionHandler.ignore(e);
   }
   try {
      if (preparedStatement != null) 
         preparedStatement.close();
   } catch(Exception e) {
      exceptionHandler.ignore(e);
   }
Run Code Online (Sandbox Code Playgroud)

语句是否应在下一个connection.prepareStatement(query)之前关闭; 或者这个发现者是否谨慎?

java findbugs prepared-statement

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

如何测试返回 zip 文件的弹簧控制器?

我有一个返回 zip 文件的控制器。我想将 zip 文件与预期的 zip 进行比较,但我不确定如何从我的结果中获取文件。这是我到目前为止所拥有的:

public class FileControllerTest extends ControllerTest {

  @InjectMocks
  private FileController controller;

  @Autowired
  private WebApplicationContext context;

  private MockMvc mvc;

  @Before
  public void initTests() throws IOException {
    MockitoAnnotations.initMocks(this);
    mvc = MockMvcBuilders.webAppContextSetup(context).build();
  }

  @Test
  public void shouldReturnZip() throws Exception {
    MvcResult result = mvc
        .perform(get(SERVER + FileController.REQUEST_MAPPING + "/zip").accept("application/zip"))
        .andExpect(status().isOk()).andExpect(content().contentType("application/zip"))
        .andDo(MockMvcResultHandlers.print()).andReturn();

  }
}
Run Code Online (Sandbox Code Playgroud)

spring

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

Angular Controller Constructor:什么时候被调用?

我正在学习角度,并有一个示例登录代码.此代码具有一个构造函数,可在调用时清除凭据.我的问题是:何时调用构造函数?是在初始化代码时还是每次调用控制器上的方法时?我可能会把这与我的后端开发框架与DI一起工作的方式混淆,后者在初始化时只运行一次控制器的构造函数.

作为后续问题,我是否需要注销功能或构造函数是否足够好?

这是我目前正在查看的代码:

(function () {
'use strict';

angular
    .module('app')
    .controller('LoginController', LoginController);

LoginController.$inject = ['$rootScope', '$location', 'AuthenticationService', 'FlashService'];
function LoginController($rootScope, $location, AuthenticationService, FlashService) {
    var vm = this;

    vm.login = login;

    (function initController() {
        // reset login status
        AuthenticationService.ClearCredentials();
    })();

    function login() {
        vm.dataLoading = true;
        var promise = AuthenticationService.Login(vm.username, vm.password)
            .then(function(userInfo){

                AuthenticationService.SetCredentials(userInfo);
                $location.path('/');

            }, function(failedReason) {
                FlashService.Error(failedReason);
                vm.dataLoading = false;
            });
    };

    function logout() {
        AuthenticationService.ClearCredentials();
        $location.path('/login');

    };
}

})();
Run Code Online (Sandbox Code Playgroud)

angularjs

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

标签 统计

angularjs ×1

findbugs ×1

java ×1

prepared-statement ×1

spring ×1