Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xử lý ngoại lệ EntityManager trong session bean

Tôi có một gợi ý mà tôi sử dụng trong ứng dụng của mình. Chúng tôi có thể truy xuất SQLException từ PersistenceException . Sau đó, hãy thử lấy sql error code cho SQLException . Nếu yêu cầu của bạn là nhận được mã lỗi sql error code , bạn có thể làm theo ví dụ của tôi;

public void insert(Group group) throws DAOException {
    try {
        //your operation
        em.flush();
        logger.debug("insert() method has been successfully finisehd.");
    } catch (PersistenceException pe) {
        String sqlErroCode = getErrorCode(pe);
        // do your operation based on sql errocode
    }
}

protected String getErrorCode(RuntimeException e) {
    Throwable throwable = e;
    while (throwable != null && !(throwable instanceof SQLException)) {
        throwable = throwable.getCause();
    }
    if (throwable instanceof SQLException) {
        Properties properties = --> load sql error code form configuration file.
        SQLException sqlex = (SQLException) throwable;
        String errorCode = properties.getProperty(sqlex.getErrorCode() + "");
        return errorCode;
    }
    return "NONE";
}

Cấu hình mã lỗi mẫu của mysql

mysql_error_code.properties

#MySQL Database
1062=DUPLICATE_KEY_FOUND
1216=CHILD_RECORD_FOUND
1217=PARENT_RECORD_NOT_FOUND
1048=NULL_VALUE_FOUND
1205=RECORD_HAS_BEEN_LOCKED 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tách một chuỗi và lặp qua các giá trị trong Thủ tục MySql

  2. Sự khác biệt giữa việc sử dụng và bật trong phép nối bảng trong MySQL là gì?

  3. Lồng nhau Chèn vào và chọn câu lệnh

  4. Kết nối với máy chủ Azure MySQL không thành công do chuỗi kết nối không chính xác

  5. Thay đổi mã hóa ký tự MySQL. Dữ liệu có được bảo toàn toàn vẹn không?