如何解决PostgreSQL,Java:如何在没有代码中位置信息的情况下打印 RAISE EXCEPTION 消息?
这是我的java方法:
public static boolean addEmployee(Employee employee) {
String sql = "SELECT addemployee(?,?,?);";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setString(1,employee.getFirstName());
.
.
.
ps.execute();
return true;
} catch (SQLException e) {
showMessageDialog(null,e.getMessage());
System.out.println(e.getMessage());
}
return false;
}
这是我的 PostgreSQL 函数:
CREATE OR REPLACE FUNCTION addEmployee(. . .)
RETURNS BOOLEAN AS
$$
DECLARE
existsCheck BOOLEAN;
iddd INTEGER;
BEGIN
SELECT EXISTS(SELECT ed.username
FROM employee_data ed
WHERE ed.username = usernameAdd)
INTO existsCheck;
IF (SELECT existsCheck = FALSE) THEN
.
.
.
ELSE
RAISE EXCEPTION 'Nazwa użytkownika jest zajęta!';
END IF;
RETURN TRUE;
END ;
$$
当抛出异常时,我得到这样一个消息对话框: [图片]
当我尝试注册并且我输入的用户名已经存在时收到错误消息。所以我收到警报“用户名被某人占用,请尝试其他人”(屏幕截图上的第一行)。而且我只想打印这些单词,屏幕截图上没有第二行。
如何去掉第二行?
解决方法
使用 String.split() 拆分异常消息并打印所需内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。