データベース内のフィールドに値が指定されていないか、または "" が指定されています。デフォルトでは何が保存されますか?

準備する

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) をテストします。後で時間があるとき、または他のフィールド タイプに遭遇したときにまとめます。

おすすめ

転載: blog.csdn.net/weixin_70280523/article/details/132418376