SSH和Ajax的整合

2021-08-31 12:07:19 字數 3667 閱讀 3692

[size=large][color=blue]整合步驟總結:[/color][/size]

[size=medium]1,action中利用request.getparameter("*",x)可以獲得jsp頁面傳過來的引數

2,jsp頁面中加<%@taglib uri="" prefix="bean"%>後

獲得引數,使用方法:$

獲得物件,使用同上

3,hibernate中:一對多關係中,hibernate預設是懶的初始化(lazy=true),這樣當你查詢一的一方時,它不會級聯查詢多的一方,這樣單的一方就沒辦法使用儲存在類中多的一方的屬性

如果想使用就必須在多的一方中加上lazy=false,如:

當多的一方是通過外來鍵指向單的一方主鍵時:預設的

4,jsp頁面中實現國際化方法:[/size]

<%@taglib uri="" prefix="html"%>

$ 其中name為配置檔案中寫的

<%@taglib uri="" prefix="bean" %>

key中為配置檔案寫的

[size=medium]5,頁面編碼問題:

通常可以通過寫過濾器來解決,但是寫了過濾器之後,還可能出現頁面亂碼,url不支援中文傳輸,所有通常在傳中文時最好用post方法(表單實現,get是用url實現),如果要用get也可以在tomcat中conf.server.xml檔案中找到修改埠的地方加上uriencoding="編碼方式"即可。

6,級聯刪除:

如果想刪除a表,但是b表的乙個外來鍵指向a表,關係維護在b表中,這時要向刪除a表中的資料,首先要查出b表中指向a表的資料,然後把b表中的外來鍵設為空,在刪除a表中資料。

如果兩個表都維護關係,寫級聯就ok

7,通過hibernate配置檔案自動建立表:

(1)寫好實體,和詳細的xml影射檔案

(2)在hibernate配置檔案中新增

載入後即可生成sql語句。

8,利用powerdesigner通過**生成關係圖:

file--->reverse engineer--->datebase--->彈出對話方塊

輸入名字,選擇資料庫,單擊確定

新增.sql檔案後單擊確定後可以生產圖。

9,以下**很有效:實現了分頁查詢所有物件的模板 // 定義泛型[/size]

public listselectallobject(classclazz,page page) 

return objects;

}

[size=medium]實現用物件或物件的屬性實現分頁查詢:

/**實現hibernatecallback()方法所傳的引數必須是final的,

*final t exampleentity : 傳過來的實體物件 final string propertyname :實體物件的屬性名字

*final object startdata,final object enddata :通過時間查詢時需要 final page page :分頁時需要

*/[/size]

import org.hibernate.criteria;

import org.hibernate.hibernateexception;

import org.hibernate.query;

import org.hibernate.session;

import org.hibernate.criterion.criterion;

import org.hibernate.criterion.example;

import org.hibernate.criterion.expression;

import org.springframework.orm.hibernate3.hibernatecallback;

import org.springframework.orm.hibernate3.support.hibernatedaosupport;

protected listselectbyexampleentity(final t exampleentity,final string propertyname,

final object startdata,final object enddata,final page page)

criteria.add(example);

page.setordercount(new long(criteria.list().size()));

criteria.setfirstresult((page.getpagenumber()-1)*page.getmax());

criteria.setmaxresults(page.getmax());

return criteria.list();

}});

return (list) object;

}

[size=medium]10, 在hibernate.hbm.xml檔案配置中指定lazy="false"的話,固然可以在查詢該物件的時候將其關係物件

一併查詢出來,只是影響全域性,或許我們只是想在某些情況下順帶查詢關係物件,在不需要的時候則

浪費了查詢時間以及記憶體空間。為了縮小影響範圍,我們可以不指定lazy="false",只是在web.xml

檔案中,配置乙個spring提供的過濾器,如此便可在一次連線的範圍內擴大事務,即使事務結束、session

被關閉,再獲取關係屬性一樣可行(school.getstudents() ... ),使用如下所示 : [/size]

opensessioninviewfilter

org.springframework.orm.hibernate3.support.opensessioninviewfilter

singlesession

true

sessionfactorybeanname

sessionfactory

[size=medium]11,oracle資料庫:

當你修改了自己的計算機名稱後,就會出現無法登陸oracle主頁等其它狀況;

找到你資料庫的安裝目錄:d:\..\oracle\product\10.2.0\server\network\admin下邊有兩個檔案

listener.ora和tnsnames.ora,開啟它們並把其中的主機名(host)改為現在的主機名就ok

當兩個表的列相同時(個數,名稱,約束):

union連線兩個select語句可以將兩個表的資料加在一起(去掉重複),union all顯示所有

eg: select id,name from student1 union (all) select id,name from student2 ;

12,日期和字串之間相互轉換:[/size]

date d = new ******dateformat("yyyy-mm-dd").parse("1234-25-30");

system.out.println(d);

string str = new ******dateformat("yyyy-mm-dd").format(d);

system.out.print(str);

SSH初次的整合

環境 eclipse neon release 4.6.0 spring 4.3.8.release hibetnate4 struts2 mysql5 因為spring要融合hibernate和struts2 我就先加入的spring spring資源 密碼 qy7i hibernate資源 密碼...

Ajax框架整合

我們知道,每次根據不同介面,寫不同的ajax是一件比較麻煩的事兒,但是又不逃避他們,那麼該腫麼辦呢,下面給大家介紹一種整合框架,可以根據與不同介面去建立不同的ajax lang en charset utf 8 title head function ajax option 迴圈遍歷傳參 for v...

關於ssh和ajax小小總結

我是相當的不專業,寫給自己看。有什麼錯誤的話,說出來將感激不盡。有兩種方法非同步傳輸 1.通過json字串 jsp中這麼寫 getjson details ajaxaction function data success function responseresult each responsere...