MySQLIntegrityConstraintViolationExceptionの対処法

watanabe 1,790views 更新:2014年11月11日
MySQLIntegrityConstraintViolationException: Column 'カラム名' cannot be null

という例外はnullが入ってはならないカラムに対してnullが入ってしまう場合に起こる例外です。
この例外が起きるケースとしては、データベースにコミットする処理の引数にそのまま値を取得する処理を書いてしまい、

その値を取得する処理においてエラーが起きた際のreturn nullなどが引数に入ってしまうことなどが考えられます。

例)

insertData(getId());

getId(){
    if(id != 0){
        return id;
    } else {
        return null
    }
}

例としてあげたコードは実際のものではありませんが、このgetId()でnullが返されてしまった場合はinsertData()(カラムにデータを入れる処理)の引数にそのままnullが入ってしまいMySQLIntegrityConstraintViolationExceptionが発生してしまいます。

対処法としてはnullが必ず返されないようにする、もしくはinsertDataの前にgetId()で取得した値のnullチェックを行うことが挙げられます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません