52 lines
2.5 KiB
Java
52 lines
2.5 KiB
Java
import java.sql.*;
|
|
|
|
/** 一次性探针:复现 COUNT_BIG 报错。用完即删。 */
|
|
public class Probe4 {
|
|
public static void main(String[] args) throws Exception {
|
|
String url = "jdbc:sqlserver://118.89.70.199:1433;databaseName=FMS;encrypt=true;trustServerCertificate=true";
|
|
try (Connection conn = DriverManager.getConnection(url, "sa", "zhang520..")) {
|
|
|
|
try (Statement st = conn.createStatement();
|
|
ResultSet rs = st.executeQuery("SELECT COUNT_BIG(1) FROM [b_con_type]")) {
|
|
rs.next();
|
|
System.out.println("Statement 无别名: " + rs.getLong(1));
|
|
} catch (SQLException e) {
|
|
System.out.println("Statement 无别名 失败: " + e.getMessage());
|
|
}
|
|
|
|
try (Statement st = conn.createStatement();
|
|
ResultSet rs = st.executeQuery("SELECT COUNT_BIG(1) AS total FROM [b_con_type]")) {
|
|
rs.next();
|
|
System.out.println("Statement 有别名: " + rs.getLong(1) + " / getLong(\"total\")=" + rs.getLong("total"));
|
|
} catch (SQLException e) {
|
|
System.out.println("Statement 有别名 失败: " + e.getMessage());
|
|
}
|
|
|
|
try (PreparedStatement ps = conn.prepareStatement("SELECT COUNT_BIG(1) FROM [b_con_type]");
|
|
ResultSet rs = ps.executeQuery()) {
|
|
rs.next();
|
|
System.out.println("PreparedStatement 无别名 getLong(1): " + rs.getLong(1));
|
|
} catch (SQLException e) {
|
|
System.out.println("PreparedStatement 无别名 失败: " + e.getMessage());
|
|
}
|
|
|
|
try (PreparedStatement ps = conn.prepareStatement("SELECT COUNT_BIG(1) AS total FROM [b_con_type]");
|
|
ResultSet rs = ps.executeQuery()) {
|
|
rs.next();
|
|
System.out.println("PreparedStatement 有别名 getLong(1): " + rs.getLong(1));
|
|
} catch (SQLException e) {
|
|
System.out.println("PreparedStatement 有别名 失败: " + e.getMessage());
|
|
}
|
|
|
|
System.out.println("列类型: " + columnType(conn, "SELECT COUNT_BIG(1) FROM [b_con_type]"));
|
|
}
|
|
}
|
|
|
|
private static String columnType(Connection conn, String sql) throws SQLException {
|
|
try (PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery()) {
|
|
ResultSetMetaData md = rs.getMetaData();
|
|
return md.getColumnLabel(1) + " / " + md.getColumnTypeName(1) + " / type=" + md.getColumnType(1);
|
|
}
|
|
}
|
|
}
|