0

以下のようにmysqlデータベースにレコードを挿入する方法があります。

public boolean addOrganization(OrganizationDTO organizationDTO) {
    Connection con = null;
    try {
        String insertOrganizationSQL = "INSERT INTO organizations (org_id, org_name) VALUES(?, ?)";
        con = JDBCConnectionPool.getInstance().checkOut();
        PreparedStatement insertOrgPS = (PreparedStatement) con.prepareStatement(insertOrganizationSQL);
        insertOrgPS.setString(1, organizationDTO.getOrg_id());
        insertOrgPS.execute();
        return true;
    } catch (Exception e) {
        JDBCConnectionPool.getInstance().checkIn(con);
        logger.error(e.getLocalizedMessage());
        e.printStackTrace();
        return false;
    } finally {
        JDBCConnectionPool.getInstance().checkIn(con);
    }
}

データベーステーブル、

CREATE TABLE `organizations` (
  `org_id` varchar(5) NOT NULL,
  `org_name` varchar(100) DEFAULT NULL,
  `sys_dat_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `user` varchar(100) NOT NULL,
  PRIMARY KEY (`org_id`)
)

私が必要とするのは、新しいレコードを挿入するときに、それが重複している場合、挿入しようとせずにメソッドを終了し、それが重複レコードであることをユーザーに通知することです。挿入する前にレコードを検索する別の方法を書かずに行うことは可能ですか?

4

2 に答える 2

0

そうです、Alterテーブルは確かに役立ちます。

あなたの場合、たとえば、org_idとorg_nameの両方が存在する場合、後で混乱を避けるために、両方に一意を追加します。

于 2012-05-02T06:02:59.753 に答える
0

私はあなたのテーブルにUNIQUE制約を追加します。たとえば、org_nameを一意にする必要がある場合:

ALTER TABLE organizations ADD UNIQUE (org_name);

次に、Javaを介して重複レコードを挿入しようとしたときに返される内容を確認します。これを確認するコードを追加し、発生した場合は、ユーザーにメッセージを表示します。

これは、 ALTERTABLEのリファレンスドキュメントです。

于 2012-05-02T03:37:32.610 に答える