回答
这应该是Oracle吧,使用工具类前需要引入Oracle的驱动包
Maven pom.xml配置
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.15.0.0.1</version>
</dependency>
然后是工具类代码,仅供参考
import java.sql.*;
public class SQLExecutor {
public static void main(String[] args) {
String driverClass = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@你的数据库IP地址或域名:端口号:数据库名称";
String username = "用户名";
String password = "用户密码";
// 执行存储过程需要数据库中已经创建好,然后使用 {call 存储过程名称(参数1,参数2,...,参数n)} 调用存储过程
String procedure = "xxx(a, b)";
execute(driverClass, url, username, password, procedure);
}
/**
* 执行存储过程方法
* @param driverClass 数据库驱动类的全路径名
* @param url 数据库访问url (指定IP、端口号、数据库名)
* @param username 数据库用户名
* @param password 数据库用户密码
* @param procedure 存储过程名称+对应参数(多个参数以','分隔)
*/
public static void execute(String driverClass, String url, String username, String password, String procedure) {
Connection connection = null;
try {
// 注册数据库驱动
Class.forName(driverClass);
// 创建数据库连接
connection = DriverManager.getConnection(url);
// 调用存储过程
CallableStatement statement = connection.prepareCall("{call " + procedure + "}");
statement.execute();
// 结果集
ResultSet resultSet = statement.getResultSet();
// 遍历结果集
while ( resultSet.next() ) {
// 获取指定字段的字符串
// String string = resultSet.getString("xxx");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if ( connection != null && !connection.isClosed() ) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private SQLExecutor() {}
}