2017-9-20 1-Nメンテナンス
4716 ワード
***
採用したフレームワークはSpring 4+SpringMVC+Hibernate/MyBatis、補助gradle構築ツールとdubboミドルウェアとローカルmaven倉庫、プロジェクトにはredis、webServiceなどの技術があり、ここでは使わずに先に言わない.プロシージャは、表示レイヤ、ビジネスロジックレイヤ、およびデータベースレイヤに関連します.今回はhibernateとMyBatisを使ったので、持続層も増やしました.
国際化のサポートに参加することを考慮することができます.
一.追加削除について
1.
ひょうげんそうデータの完全性と合法性の検証:データベース設計の要求に基づいて、空でないフィールドを表示層で値を制御する. フォーム値のフォーマットが正しいかどうかを確認します.例えば、日付、ドロップダウン・ボックス、ラジオ・ボックス、マルチ選択ボックスなどです.同時に、データ辞書から読み取る必要がある値をドロップダウンして、tagが正しく参照、表示、伝達されているかどうかを確認します. は、特定のビジネスロジックを有するフィールドに対してjsを用いて制御する.例えば、開始日が終了日より大きくないなど. formフォームでは、新規と更新の区別の必要性を考慮して、フォームにオブジェクトのプライマリ・キー値を挿入し、JSTLの値を例にとると、以下のようになります: 1-Nのinsertの違い:1-Nの新規では、1のテーブルの非空フィールドは空であることが許されず、Nのテーブルは記録されず、記録され得る.Nのテーブルの新規化については、動的に追加する方法を採用し、+番号をクリックするたびにjsrenderを用いてinput値のセットを動的に追加し、このセットの新規なinputは削除することができるが、ビジネスロジック層には伝わらない.レンダーする行数indexを
ビジネスロジック層はhibernateを用いてデータを格納し、まずプライマリテーブルを格納してプライマリテーブルPKに戻り、サブテーブルを遍歴し、id値をサブテーブルオブジェクトに詰め込んで格納する.ここでは、フロントフィールドの大文字と小文字の変換が正しいかどうかに注意します(class:text-uppercase).
2.表示層&ビジネスロジック層クエリー・パラメータの正当性と完全性:まず、ビジネス・ロジックに基づいて、クエリー・パラメータが空でないかどうか、各クエリー・パラメータの転送が正しいかどうかを制御します.次に、クエリー操作が完了した後、クエリーボックスのクエリーパラメータが埋め戻されるかどうか.この点で何度もミスを犯したのは、コントロール層がModelAndViewオブジェクトに戻るときに、伝わってきたqueryDTOオブジェクトを詰め込むのを忘れたためで、覚えておいてください!! プライマリ・セカンダリ・テーブルのクエリーでは、まずSQL文の実装です.次に、フロントエンドのページングプラグインと実装効果です.
まずSQL文について話します.hibernate関連クエリーの永続化文にはあまり詳しくないので、普段は簡単なinsert、delete、update、ページングクエリーの操作しかしていないので、今回のメインサブテーブルのクエリーは、比較的熟練したMyBatisを使ってクエリーを行います(私が必要とするSQLを直接書くのはもちろん便利です~).
関連クエリーの条件をサブテーブルのクエリー条件に入れ、サブテーブル条件が存在する場合に関連クエリーを行います.そうしないと、メインテーブルに記録があり、サブテーブルに記録がない場合が漏れます.結果をdistinctし、重複データをフィルタリングする.注意クエリーフィールドには、下線のあるフィールドに別名を付けます.ここではMyBatisを検討します.サブテーブルのクエリーでは、関連クエリー条件をwhere文の下に直接置くことも、distinctでフィルタする必要もありません.
次にフロントエンドのページングプラグインで、まず1つのプラグインだけを使って、サブテーブルのクエリーボタンをクリックする時、htmlで解析したjspページに戻って、プラグインの方法を書き直して、ページングを実現することができて、しかし2つのページングは互いに影響します.js制御を採用しようとしたが,表示レイヤがjsコードを削除してもjsメソッドがロードされることに気づいた.やめる.
bootstrap-tableメソッドが追加されましたが、このプラグインのapiや使用方法についてはネット上では詳しく説明しません.jspページデータがコントローラに転送されると、フレームワークにjsonに変換する方法が設定されていないので、下@ResponseBodyとResultDTOを使って、オブジェクトにカプセル化し、フロントが自分で解析します.
また、ここではPOST方式でデータを転送し、
3.クエリーオブジェクトの表示、動的編集と業務論理層の記憶は、プライマリテーブルidに基づいてプライマリテーブルデータを取得し、サブテーブルデータを詰め込んでオブジェクトにカプセル化し、フロントで表示する.プライマリ・テーブルは変更をサポートし、サブテーブルは変更削除もサポートします.ここでは、既存のデータと新たに追加されたデータの保存に注意し、メインテーブルはデータを取り出し、空でないことを検証してから直接updateする.サブテーブルは、削除された操作行であるかどうか、既存であるかどうかを判断します.
4.プライマリ・テーブル・データの直接削除とサブテーブル・データの削除を含む.
採用したフレームワークはSpring 4+SpringMVC+Hibernate/MyBatis、補助gradle構築ツールとdubboミドルウェアとローカルmaven倉庫、プロジェクトにはredis、webServiceなどの技術があり、ここでは使わずに先に言わない.プロシージャは、表示レイヤ、ビジネスロジックレイヤ、およびデータベースレイヤに関連します.今回はhibernateとMyBatisを使ったので、持続層も増やしました.
国際化のサポートに参加することを考慮することができます.
一.追加削除について
1.
ひょうげんそう
//
$.fn.formValidate = function () {
var ret = true;
this.each(function (i, formElem) {
ret = $(":input", $(formElem)).validate();
return ret;
});
return ret;
};
"XXX" value="${XXXX}"/>
var size = $("#table tbody tr").length;
で記録し始めたばかりで、テストで問題が見つかりました.inputのセットを削除して追加すると、trのindex値が重複します.そこで,1つのJSのグローバル変数が+番号をクリックした回数,すなわち生成したinputボックスのグループ数を記録するように設定した.ビジネスロジック層はhibernateを用いてデータを格納し、まずプライマリテーブルを格納してプライマリテーブルPKに戻り、サブテーブルを遍歴し、id値をサブテーブルオブジェクトに詰め込んで格納する.ここでは、フロントフィールドの大文字と小文字の変換が正しいかどうかに注意します(class:text-uppercase).
2.表示層&ビジネスロジック層
まずSQL文について話します.hibernate関連クエリーの永続化文にはあまり詳しくないので、普段は簡単なinsert、delete、update、ページングクエリーの操作しかしていないので、今回のメインサブテーブルのクエリーは、比較的熟練したMyBatisを使ってクエリーを行います(私が必要とするSQLを直接書くのはもちろん便利です~).
関連クエリーの条件をサブテーブルのクエリー条件に入れ、サブテーブル条件が存在する場合に関連クエリーを行います.そうしないと、メインテーブルに記録があり、サブテーブルに記録がない場合が漏れます.結果をdistinctし、重複データをフィルタリングする.注意クエリーフィールドには、下線のあるフィールドに別名を付けます.ここではMyBatisを検討します.サブテーブルのクエリーでは、関連クエリー条件をwhere文の下に直接置くことも、distinctでフィルタする必要もありません.
次にフロントエンドのページングプラグインで、まず1つのプラグインだけを使って、サブテーブルのクエリーボタンをクリックする時、htmlで解析したjspページに戻って、プラグインの方法を書き直して、ページングを実現することができて、しかし2つのページングは互いに影響します.js制御を採用しようとしたが,表示レイヤがjsコードを削除してもjsメソッドがロードされることに気づいた.やめる.
bootstrap-tableメソッドが追加されましたが、このプラグインのapiや使用方法についてはネット上では詳しく説明しません.jspページデータがコントローラに転送されると、フレームワークにjsonに変換する方法が設定されていないので、下@ResponseBodyとResultDTOを使って、オブジェクトにカプセル化し、フロントが自分で解析します.
responseHandler: res,
//
function res(res) {
if (res) {
return {
"rows" : res.result,
"total" : res.detail
};
} else {
return {
"rows" : [],
"total" : 0
};
}
}
また、ここではPOST方式でデータを転送し、
contentType: "application/x-www-form-urlencoded",
ではなく設定します.そうでないと、バックグラウンドでは、ページングのstartIndetなどのページングパラメータが受信できません(クエリーパラメータは正常に渡されます).3.
4.プライマリ・テーブル・データの直接削除とサブテーブル・データの削除を含む.