try-with-resource小demo遇到的一些小问题

开发环境报错

用的 IDE 是 Intellij-IDEA。

Error:java: Compilation failed: internal java compiler error

解决思路和步骤:

首先尝试了把 project 的 module settings 改一下。

于是右键项目,单击open module settings,把能改的地方都改成java8

try-with-resource小demo遇到的一些小问题_第1张图片这里写图片描述try-with-resource小demo遇到的一些小问题_第2张图片

改完这三个地方发现还是报错。

于是想改Intellij-IDEA的全局配置去。

try-with-resource小demo遇到的一些小问题_第3张图片

第3个框不要忘了。我最开始忘了修改第三个框,结果还是报错。

修改完上面这些后,环境就OK了。

其实实际开发中,比如要求JDK至少是1.6,那么项目中很有可能是有人用jdk1.6,有人用jdk1.7。版本不一样会引起这个错误。解决方法都是如此。

try-with-resource 遇上 JDBC

public class JdbcTest {
    public static void main(String[] argc) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            try (Connection connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/your_db_name?characterEncoding=utf-8",
                    "your_username",
                    "your_password")){
                String sql = "select * from user where username = ? ";
                try (PreparedStatement ps = connection.prepareStatement(sql)) {
                    ps.setString(1, "王五");
                    try (ResultSet rs = ps.executeQuery()) {
                        while (rs.next()) {
                           System.out.println(rs.getString("id") + "  " + rs.getString("username"));
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:

注意这里有坑。

try-with-resource小demo遇到的一些小问题_第4张图片

红框里面那个设置编码要注意,不然涉及到中文编码,会导致查询结果不对。

小心编码问题

同样的代码,在IDEA-community-2017.2上和IDEA-ULTIMATE-14.1.7上运行的结果不一致。因为前面代码中的查询中涉及到了中文,所以要很小心编码问题。

try-with-resource小demo遇到的一些小问题_第5张图片 try-with-resource小demo遇到的一些小问题_第6张图片

你可能感兴趣的:(IDE或编辑器)