質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

解決済

JavaでSQLファイルの個人情報部分をマスキングして新しいテストファイルを作る方法がわからない。

zeuma
zeuma

総合スコア6

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

2回答

1リアクション

1クリップ

2213閲覧

投稿2019/10/04 16:33

前提・実現したいこと

SQLファイルの中に大量の顧客データが入っており、それをJavaを用いてマスキングしたいです。具体的には、JavaでそのSQLファイルを読み込んで、個人情報がマスキングされたバージョンのSQLファイルを新たに生成するJavaプログラムを作りたいです。

発生している問題・エラーメッセージ

JavaでSQLファイルの必要部分をマスキングして新しいテストファイルを作る方法がわからない。

該当のソースコード

SQL

INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES ... (112, 32, '_customer_user', '11'), (113, 32, '_payment_method', 'cod'), (114, 32, '_payment_method_title', '代金引換'), (115, 32, '_customer_ip_address', '::1'), (116, 32, '_customer_user_agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'), (117, 32, '_created_via', 'checkout'), (118, 32, '_cart_hash', '87df4e6e684584c5061fed4b9e6f1063'), (119, 32, '_billing_first_name', '利人'), (120, 32, '_billing_last_name', '遠藤'), (121, 32, '_billing_address_1', '8-9-1'), (122, 32, '_billing_city', '四万十市西土佐岩間'), (123, 32, '_billing_state', 'JP39'), (124, 32, '_billing_postcode', '787-1321'), (125, 32, '_billing_country', 'JP'), (126, 32, '_billing_email', 'endou72@example.com'), (127, 32, '_billing_phone', '090-7716-5803'), (128, 32, '_order_currency', 'JPY'), (129, 32, '_cart_discount', '0'), (130, 32, '_cart_discount_tax', '0'), (131, 32, '_order_shipping', '0'), (132, 32, '_order_shipping_tax', '0'), (133, 32, '_order_tax', '0'), (134, 32, '_order_total', '11700'), (135, 32, '_order_version', '3.7.0'), (136, 32, '_prices_include_tax', 'no'), (137, 32, '_billing_address_index', '利人 遠藤 8-9-1 四万十市西土佐岩間 JP39 787-1321 JP endou72@example.com 090-7716-5803'), (138, 32, '_shipping_address_index', ' '), (139, 32, 'is_vat_exempt', 'no'), (140, 32, '_download_permissions_granted', 'yes'), (141, 32, '_recorded_sales', 'yes'), (142, 32, '_recorded_coupon_usage_counts', 'yes'), (143, 32, '_order_stock_reduced', 'yes'),

ここにより詳細な情報を記載してください。

上記コードのように、個人情報は4列目に記載されていて、3列目のkeyと紐づけられているので、Javaで3列目のkeyが例えば'?billing_address_index'の場合は、最後の何文字は*に置換する、といったようにして個人情報をマスキングしたいです。
ただ、全てのデータをユニークなままにしたいので、全ての文字を*に置換するということはしたくありません。

A-pZ👍を押しています

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。