例子
研究以下示例代码以了解其用法 try....catch...finally 块。
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCExample {
static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT";
static final String USER = "guest";
static final String PASS = "guest123";
static final String QUERY = "{call getEmpName (?, ?)}";
public static void main(String[] args) {
// Open a connection
try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
CallableStatement stmt = conn.prepareCall(QUERY);
) {
// Bind values into the parameters.
stmt.setInt(1, 1); // This would set ID
// Because second parameter is OUT so register it
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
//Use execute method to run stored procedure.
System.out.println("Executing stored procedure..." );
stmt.execute();
//Retrieve employee name with getXXX method
String empName = stmt.getString(2);
System.out.println("Emp Name with ID: 1 is " + empName);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
现在,让我们编译上面的例子如下 -
C:\>javac JDBCExample.java
C:\>
当你跑 JDBCExample, 如果没有问题,它会产生以下结果,否则会捕获相应的错误并显示错误消息 -
C:\>java JDBCExample
Executing stored procedure...
Emp Name with ID: 1 is Alex
C:\>
通过传递错误的数据库名称或错误的用户名或密码来尝试上面的示例并检查结果。