準備する
mysqlデータベースにはstuテーブルがあり、テーブルの構造、データ、Studentクラスは以下の通りです。
テスト 1 を開始します (値は指定されていません)
シナリオ 1: データを追加しますが、数学列はスキップします
ご覧のとおり、テーブルの int 型のデフォルト値は null です。
id=2 のデータを確認し、student クラスを使用してアクセスします。
エンティティ クラスの int 要素は null にならず、デフォルトで 0 が与えられるため、数学の結果は 0 になります。
hashMap<string,string> を使用して取得します
その結果、数学フィールドが null であるため、数学フィールドは直接受信されません。
ケース 2: データを追加しますが、性別列はスキップします
ご覧のとおり、varchar 型のデフォルト値は null です。
id=3 のデータを確認し、student クラスを使用してアクセスします。
エンティティ クラスの文字列要素もデフォルトでは null であるため、結果の性別は null になります。
hashMap<string,string> を使用して取得します
その結果、性別フィールドが null であるため、性別フィールドは直接受信されません。
ケース 3: データを追加しますが、insertTime 列をスキップします
ご覧のとおり、デフォルトの日時型は null です。
id=3 のデータを確認し、student クラスを使用してアクセスします。
その結果、エンティティ クラスの Date 要素もデフォルトで null であるため、insertTime は null になります。
hashMap<string,string> を使用して取得します
その結果、insertTime フィールドは null であるため、insertTime フィールドは直接受信されません。
テスト 1 を開始します (空の文字列を与えます)
テーブルの int 型と datetime 型のフィールドに空の文字列を代入するとエラーになるため、テーブルの varchar 型のみを試します。
ケース 1: 性別フィールドに空の文字列「」を追加する
下の図から、追加されたデータ行の性別フィールドに白いボックスが表示され、そのボックス内をクリックすると、マウス カーソルがセルの左端にあることがわかります。
id=5 のデータを確認し、student クラスを使用してアクセスします。
ご覧のとおり、空の文字列 "" も出力されます。
id=5のデータを確認し、マップを使用して結果を受信して出力します。
ご覧のとおり、空の文字列 "" も出力されます。
ケース 2: 性別フィールドにいくつかのスペース「」を含む文字列を追加する
下の図から、追加されたデータ行の性別フィールドにも白いボックスが表示されていることがわかります。マウスをクリックした後、マウス カーソルはセルの左側から少し離れたところにあります。
id=6 のデータを確認し、student クラスを使用してアクセスします。
ご覧のとおり、出力された文字列もいくつかのスペース「」を含む文字列です。
id=6 のデータを確認し、map を使用して結果を受信して出力します。
ご覧のとおり、出力された文字列もいくつかのスペース「」を含む文字列です。
要約:
1. mysql データベース テーブルのテーブル作成ステートメントでは、任意のフィールドの後に NULL DEFAULT NULL が続きます。これは、値が指定されない場合、デフォルト値は null であることを意味します。したがって、上記の int、varchar、および datetime 型のフィールドはテーブルには値が割り当てられていません。時間、デフォルトは null
2. エンティティ クラスを使用して選択結果を受け取る場合、テーブル内の int 型が null であることが判明しても、エンティティ クラスは int を独自に定義されたデフォルト値の 0 に自動的に変更します。
3. マップを使用して選択結果を受信する場合、テーブル内の null フィールドはマップで直接受信されず、マップは非 null フィールドのみを受信します。
4. テーブルの varchar 型フィールドに空の文字列 "" またはスペースを含む文字列 " " を指定すると、テーブルは実際にそれらをまったく同じものに格納します。また、エンティティ クラスまたはマップを使用して結果を受け取る場合、それらを受け取ることができます。 . 空の文字列 "" またはスペースを含む文字列 " "。
-------------------------------------------------- -------------------------------------------------- -------------------------
時間は限られています。当面は、テーブルの 3 つのフィールド タイプ (int、varchar、datetime) をテストします。後で時間があるとき、または他のフィールド タイプに遭遇したときにまとめます。