小编Enr*_*que的帖子

在Java应用程序中打开和返回数据库连接的最佳方法?

我提出了以下实用程序类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySqlConnection
{
    private static String dbUrl = "jdbc:mysql://localhost:3306/database";
    private static String dbUsername = "root";
    private static String dbPassword = "mysql";

    public static Connection getConnection()
    {
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
        } catch (ClassNotFoundException e) {
            System.out.println("Could not load JDBC driver: " + e.getMessage());
        } catch (SQLException e) {
            System.out.println("Could not connect to DB: " + e.getMessage());
        }
        return connection;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:我不想从我的方法返回null …

java database jdbc

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

单一责任原则是否适用于职能?

根据Robert C. Martin的说法,SRP表示:

一个班级改变的理由绝不应该是一个原因.

但是,在他的书" 清洁代码"第3章:函数中,他展示了以下代码块:

    public Money calculatePay(Employee e) throws InvalidEmployeeType {
        switch (e.type) {
            case COMMISSIONED:
                return calculateCommissionedPay(e);
            case HOURLY:
                return calculateHourlyPay(e);
            case SALARIED:
                return calculateSalariedPay(e);
            default:
                throw new InvalidEmployeeType(e.type);
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后陈述:

这个功能有几个问题.首先,它很大,当添加新的员工类型时,它会增长.其次,它显然不止一件事.第三,它违反了单一责任原则(SRP),因为改变的原因不止一个.[强调我的]

首先,我认为SRP是为类定义的,但事实证明它也适用于函数.其次,这个功能有多个原因需要改变?我只能看到它因员工的变化而发生变化.

design-patterns single-responsibility-principle

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

如何将JRebel与Mule ESB集成?

是否有人试图将JRebel与Mule一起使用而不是典型的应用服务器?如果是这样,你能描述一下你的经历吗?

据我所知,目前,Mule并没有得到JRebel团队的正式支持.但是,我想知道是否可能有一些解决方法来解决这个问题.

java esb mule jrebel

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

在扩展的try-with-resources语句中究竟抓到了什么?

在以下代码块中:

try ( /* resources declaration */ ) {
    // some dangerous code
} catch (Exception e) {
    // error handling and reporting
}
Run Code Online (Sandbox Code Playgroud)

如果会发生什么,在里面的代码try块和自动close()声明抛出异常?哪一个会陷入困境catch?他们都?只有其中一个?如果是这样,哪一个?

如果try成功但close不是?是否会输入捕获块?

java error-handling try-catch try-with-resources

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

在 VB.NET 中声明数组的不同方法

在VB.NET中,以下声明数组的方式有什么区别吗?

- Dim cargoWeights(10) as Double

- cargoWeights = New Double(10) {}
Run Code Online (Sandbox Code Playgroud)

’这是两个独立的陈述。他们不应该一个接一个地处决。

据我所知,第一个只是声明一个数组变量,该变量保存值“Nothing”,直到将某个数组对象分配给它为止。换句话说,它还没有初始化。

但是第二个声明呢?“=”符号是否意味着变量已经被初始化并且不会保存“Nothing”?它是否会指向一个包含 11 个默认 Double 值 (0.0) 的一维数组?

编辑:

根据MSDN网站:

以下示例声明一个最初不指向任何数组的数组变量。

将twoDimStrings( , ) 变暗为字符串

(...) 变量twoDimStrings 的值为Nothing。

来源:http ://msdn.microsoft.com/en-us/library/18e9wyy0(v=vs.80).aspx

vb.net arrays

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

Objective-C方法的执行是否会创建"堆栈上的帧"?

我知道,在C中,每个函数都会创建一个框架,并且当使用它的函数结束时,每个框架都会自动释放.相同的逻辑是否适用于Objective-C方法?它们在执行时是否在堆栈上创建框架

heap methods stack function objective-c

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