まず、SQLデータベース操作:
図1に示すように、三テーブルクエリ、所属テーブルを決定しなければならない現在のフィールドのために最終的な状態に、それはのような分野で判断すべきテーブルを指定する必要があります。
そして、制限時間が続く、特定のパラメータを識別することができないシステムを回避するために、追加するために注意を払う必要があります。
// 条件に応じて従業員情報テーブルを検索し 、公開一覧<メッセージ> getMessageByConditionは(条件条件条件条件、のためにint型のインデックス、CURRENTCOUNT整数) スローSQLExceptionが{ QueryRunner QR = 新新QueryRunner(MyDBUtils.getDataSource()); 文字列のSQLが =「人からSELECT * person.ppid = position.ppid ON位置参加JOIN部門person.pdid = department.pdid ON = 1. 1 " ; // (変更することはできませんによる配列の長さ)で結果に設定する必要があるにDISTINCT重量 のArrayList <OBJECT> ARR = 新しい新しいのArrayList <オブジェクト> (); // TRIM()の両方のスペースを削除することである IF!(condition.getPpid()= nullを&& condition.getPpid()= ""!){ // SQL + = "やppositionような";?!&& condition.getPteam()= "" // arr.add( "%" + condition.getPposition()+ "%"); SQL + = "とperson.Ppid =?" ; arr.add(condition.getPpid())。 } であれば(condition.getPdid()!= NULL && condition.getPdid()!= "" ){ SQL + = "とperson.Pdid =" ; arr.add(condition.getPdid())。 } 場合(condition.getPteam()!= nullの &&条件。+ = "とpteam =?" ; arr.add(condition.getPteam())。 } SQL + = "限界?、?" ; arr.add(インデックス)。 arr.add(CURRENTCOUNT)。 一覧 <メッセージ>リスト= qr.query(SQL、新しい。BeanListHandler <メッセージ>(メッセージクラス)、arr.toArray()); 戻り値のリスト。 }
2、ときに直接ライン上の5-テーブルクエリクエリ:
文字列のSQL =「`JOINのhuman.username = information.username上のヒトのJOIN person.pname = information.pname ON人のJOIN情報SELECT * FROM position` ON person.ppid = position.ppid person.pdid = department.pdid ON部門のJOIN 「;
フィールドのテーブル2に載置された条件に応じて結果のうち3、表1クエリ:
文字列のSQL = "(` ISTATE = '通过' 情報からusername`を選択) `human`(ユーザー名)。INSERT INTO";
4、表1の結果チェックアウトすることにより、表2のデータを削除します。
文字列のSQLが= "PNAME =は(?PID =人からPNAMEを選択)の情報から、削除";
二、JavaBeanクラス:
冗長データを削減するので、彼らはすべての情報は、その後、マルチテーブルの必要性を見たいので、もし、データテーブルの一部は、再サブテーブルのクエリが必要になります - データクラスの数を構築します:
1、継承の形態を使用することができる: - すべてのサブクラスそのようなデータとその親クラスへのアクセス。
以下のためのパッケージ変更ドメイン; // すべての個人情報は-ログインページ継承する パブリック クラスを PersonalMessage 拡張情報{ プライベート文字列のPWDを、 プライベート整数のpid; プライベート文字列pposition; プライベート文字列pDepartment、 プライベート整数pteam、 プライベート整数PPID、 プライベート整数PDIDを、 公共の文字列getPwd(){ 戻りPWD; } 公共 ボイドSETPWD(文字列のPWD){ この .pwd = PWD; } パブリック整数GETPID(){ 戻りPID。 } 公共 ボイドsetPid(整数PID){ これを.pid = PID。 } パブリック文字列getPposition(){ 戻りpposition。 } 公共 ボイドsetPposition(文字列pposition){ この .pposition = pposition。 } パブリック文字列getPdepartment(){ 戻りpdepartment。 } 公共 ボイドsetPdepartment(文字列pdepartment){ この .pdepartment =pdepartment; } パブリック整数getPteam(){ 戻りpteam。 } 公共 ボイドsetPteam(整数pteam){ この .pteam = pteam。 } パブリック整数getPpid(){ 戻りPPID。 } 公共 ボイドsetPpid(整数PPID){ この .ppid = PPID。 } パブリック整数getPdid(){ 戻りPDID。 } 公共 ボイドsetPdid(整数PDID){ この .pdid = PDID。 } @Override パブリック文字列のtoString(){ リターン "PersonalMessage [PWD =" + PWD + "PID =" + PID + "pposition =" + pposition + "pdepartment =" + pdepartment + "pteam =" + pteam + "PPID =" + PPID +は+ PDID + "]" "=をPDID" 。 } }
2、あなたが実際にカテゴリを構築することができ、どのようなデータがデータである、時間を呼び出す必要があります:
// 类请假 パブリック クラスを残すには、実装Serializableを{ プライベート整数蓋を、 プライベート整数PID; プライベート文字列のpname。 プライベートダブルlday。 プライベート文字列dateStart。 プライベート文字列dateWork。 プライベート文字列のlreason。 プライベート文字列のleaveType。 プライベート文字列のlstate1。 プライベート文字列のlstate2。 // 额外的属性---连表查询用 のプライベート整数PDID。 プライベート整数pteam。 プライベート整数PPID。 プライベート文字列のpdepartment。 プライベート文字列のpposition。 パブリック整数getLid(){ 戻り蓋。 } 公共 ボイドsetLid(整数蓋){ この .lid =蓋。
図3に示すように、上記のコード
実装シリアライズ
これは、シリアル化を達成するために重大な問題ではありません。
第三に、他の細部:
1.レビュー:
IDの銀行によると、すべてのデータ>クエリ銀行サーブレット - - (IDの銀行との)行のjspクエリ内の[編集]ボタンをクリックしてください>は、変更のjspページを入力するための要求を転送します(あなたが特定の情報を設定することができます変更することはできません。 )=「true」を無効--->サーブレットを変更--->リダイレクション問合せのすべての情報サーブレット--->クエリの合計JSPページ
図2に示すように、フォームのアクションが送信サブミットボタンをポイントするアドレスで形成します。
3、ときに所望の効果のページをクリックして最初のイベントでアドレスクリックを確認し、現存するサーブレットXMLかどうかを確認するために、表示されません。
データを取るために持っている場合は、ドメインにデータを保存するかどうか、確認するためにデータがない場合は、JSPページキーが正しいです。
<JSPに$直接、直接のJavaのSystem.out.println(データ)で、データを表示{データ}>
第四に、使用layui:
それが形成1、:
あなたは、レンダリングする必要があります。
layui.use( '形態'、関数(){
VAR形= layui.form;
form.render();
});
2、ポップアップは:(あなたのJSを使用する必要がありますか?)
/ *ポップアップ* /使用
layui.use(「レイヤ」、関数(){
VAR = layui.layer層と、
});
//最初の:その競合が導入されたアクティブロードjQueryのモジュールは(ポップアップの消失につながりページの内容の後にまだ)存在
layui.use([ 'jQueryの'、 '層']、機能(){
VAR = $ // $ layuiに焦点を当てています。
、レイヤー= layui.layer;
//ちょうどあなたの後ろ通常通りのjQueryを使用する
ポップアップボックス上の/ *設定します* /表示されます
/ * $( "#のBTN")をクリックします(関数(){。
layer.open({
タイトル: "ヒント"、
タイプの:1、
はcloseBtn:偽、
shadeCloseを:真に
コンテンツ:$( "#情報")、
キャンセル:関数(){コールバック機能ボタン閉じ//
)location.reloadを(;閉じたときに//(ポップアップコンテンツが再びページ内に表示される防ぐために)ページを更新
}
})。
})/ *
3、スイッチングIFRAMEを使用する:あなたは、[追加]をクリックしますSRCアドレス。
<! - 引入IFRAME - > < IFRAME クラス= "personList" スタイル= "幅:100%;高さ:100%;マージントップ:0" FRAMEBORDER = "0" SRC = "" > </ IFRAME > / *点击员工信息表按钮* / $( "personalMessagebtn ")。(上の "クリック"、 機能(){ $("。personList ")。ATTR(" SRC"、 「$ {} pageContext.request.contextPath / PersonalMessageServlet "); $(" layui体")、CSS("背景」、 "NONE"); }); / * * /ボタンスタッフのジョブ情報テーブルをクリックします ( "ConditionPersonbtn")$。ON( "クリック"、機能(){ $( "layuiボディ。 ")、CSS("背景"、 "なし")。 $( "personList ")ATTR(" SRC"、 "$ {pageContext.request.contextPath} / ConditionPersonServlet"、 "表示"、 "ブロック") })。
4.その他を参照します。https://www.cnblogs.com/30go/p/11088549.html(侵略は削除しました)