Java は高級プログラミング言語であり、MySQL はリレーショナル データベース管理システムです。 Java プログラムでは、データベースとのデータ対話が必要になることが多く、これにはデータ型のマッピングと変換が含まれます。
Java データ型と MySQL データ型のマッピングを次の表に示します。
Java データ型 |
MySQL データタイプ |
#String
| VARCHAR
|
int
| INT
|
long
| BIGINT
|
double
| DOUBLE
|
float
| FLOAT
|
boolean
| TINYINT
|
Date
| DATE
|
時間
| TIME
|
タイムスタンプ
| DATETIME
|
# #ご覧のとおり、Java で一般的に使用されるデータ型は、MySQL で一般的に使用されるデータ型に対応できます。ただし、一部の Java データ型と MySQL データ型の間には、変換が必要な相違点があります。
たとえば、Java の Date 型と MySQL の DATE 型の間の変換です。 Java では、Date 型は日付と時刻を表しますが、MySQL では、DATE 型は日付のみを表し、時刻は表しません。変換するときは、形式の問題に注意する必要があります。
Java コードの Date 型は、SimpleDateFormat 型を使用して文字列にフォーマットでき、その文字列は MySQL に渡されます。
Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String str = sdf.format(d); PreparedStatement ps = conn.prepareStatement("INSERT INTO my_table (id, date) VALUES (?, ?)"); ps.setInt(1, 1); ps.setString(2, str); ps.executeUpdate();
ログイン後にコピー
MySQL から DATE 型のデータを読み取る場合は、対応する書式設定メソッドを使用して Java の Date 型に変換し、プログラムの処理に使用する必要もあります。
もう 1 つの例は、Java のブール型と MySQL の TINYINT 型の間の変換です。 Java では、ブール型は true または false の 2 つの値のみを取ることができますが、MySQL では、TINYINT 型は 0 または 1、またはそれ以上の範囲の整数を格納できます。
Java プログラムでは、MySQL で TINYINT 型のデータを読み込む際に型変換が必要です。
ResultSet rs = stmt.executeQuery("SELECT * FROM my_table"); while (rs.next()) { int id = rs.getInt("id"); boolean value = rs.getInt("value") == 1; ... }
ログイン後にコピー
MySQL データを読み取る場合、getInt メソッドを使用して TINYINT 型を読み取り、それを使用して値が 1 であるかどうかを判断することで、正しいブール型の値を取得できます。
MySQL に書き込む場合は、型変換も必要です。
boolean value = true; PreparedStatement ps = conn.prepareStatement("INSERT INTO my_table (id, value) VALUES (?, ?)"); ps.setInt(1, 1); ps.setInt(2, value ? 1 : 0); ps.executeUpdate();
ログイン後にコピー
MySQLにboolean型の値を書き込む場合はint型に変換する必要があり、trueは1、falseは0に変換されます。
つまり、Java と MySQL の間のデータ型のマッピングと変換は非常に重要であり、プログラムの正確さとパフォーマンスを確保するには、このプロセスを正確に処理することが重要です。 Java 開発ツールと MySQL ツールを使用して開発すると、開発者の効率が向上します。
以上がJava と MySQL の間のデータ型のマッピングと変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。