@Test
|
public void test() throws SQLException {
|
String url = "jdbc:mariadb://localhost:3306?user=user&password=password";
|
Connection con = DriverManager.getConnection(url);
|
|
execute(con, "DROP DATABASE IF EXISTS test");
|
execute(con, "CREATE DATABASE test");
|
execute(con, "USE test");
|
execute(con, "CREATE OR REPLACE TABLE t0(c0 FLOAT UNIQUE)");
|
execute(con, "CREATE PROCEDURE `t0_select_all`() BEGIN SELECT * FROM t0; END;");
|
execute(con, "INSERT INTO t0 VALUES (1898969556)");
|
|
// use CallableStatement
|
CallableStatement cstmt = con.prepareCall("call `t0_select_all`()");
|
if (cstmt.execute()) {
|
ResultSet rs = cstmt.getResultSet();;
|
ResultSetMetaData rsMetaData = rs.getMetaData();
|
int count = rsMetaData.getColumnCount();
|
StringBuffer sb = new StringBuffer();
|
|
while (rs.next()) {
|
sb.setLength(0);
|
for (int i = 1; i <= count; i++) {
|
sb.append("* " + rs.getString(i) + " *");
|
}
|
System.out.println(sb);
|
}
|
}
|
|
// use Statement
|
Statement stmt = con.createStatement();
|
if (stmt.execute("call `t0_select_all`()")) {
|
ResultSet rs = stmt.getResultSet();
|
ResultSetMetaData rsMetaData = rs.getMetaData();
|
int count = rsMetaData.getColumnCount();
|
StringBuffer sb = new StringBuffer();
|
|
while (rs.next()) {
|
sb.setLength(0);
|
for (int i = 1; i <= count; i++) {
|
sb.append("* " + rs.getString(i) + " *");
|
}
|
System.out.println(sb);
|
}
|
}
|
|
con.close();
|
}
|
|
public void execute(Connection con, String sql) {
|
try {
|
Statement statement = con.createStatement();
|
statement.execute(sql);
|
statement.close();
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|