锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲色一区二区三区四区,亚洲精品无码日韩国产不卡?V ,亚洲日韩av无码中文http://m.tkk7.com/zhanglijun33/category/17946.html娣鋒矊錛屽椒寰紝绔嬪織錛岃搫鍔?..zh-cnFri, 02 Mar 2007 03:10:01 GMTFri, 02 Mar 2007 03:10:01 GMT60spring 瀹炶返錛岃繘涓姝ョ悊瑙e拰浣跨敤aophttp://m.tkk7.com/zhanglijun33/archive/2006/07/27/aoptest.html鏅鴻呮棤鐤?/dc:creator>鏅鴻呮棤鐤?/author>Thu, 27 Jul 2006 09:04:00 GMThttp://m.tkk7.com/zhanglijun33/archive/2006/07/27/aoptest.htmlhttp://m.tkk7.com/zhanglijun33/comments/60383.htmlhttp://m.tkk7.com/zhanglijun33/archive/2006/07/27/aoptest.html#Feedback18http://m.tkk7.com/zhanglijun33/comments/commentRss/60383.htmlhttp://m.tkk7.com/zhanglijun33/services/trackbacks/60383.htmlaop鏄潰鍚戝垏闈㈢紪紼嬬殑錛岀敱姝ら鍏堝簲璇ュ紕娓呯殑鏄細浠涔堟槸鍒囬潰錛?br />鍒囬潰鏄垏鍏ョ偣鍜岄氱煡鐨勭粨鍚堜綋銆?br />鎬庢牱緇勭粐涓涓垏闈紵鎹㈠彞璇濊鎬庝箞鎶婁紬澶氱殑綾葷粍緇囨垚涓涓垏闈紵灝辮鐪嬫垜浠湪鍝簺綾葷殑浠g悊綾諱腑鎻掑叆鐩稿悓鐨勯氱煡浜嗐傝繃澶氱殑渚嬪瓙涓嶅啀涓句簡錛屽鏋滆皝鎯寵涓浠絫estAOP宸ョ▼瀹炰緥錛屽彲浠ョ粰鎴戠暀璦銆?br />鏈▼搴忚鏄庯細
tom鏄叕鍙哥殑涓浣嶇粡鐞唌anager錛坧ojo錛夈?br />鐢變簬浜嬪姟綣佸繖錛屼粬鑱樼敤浜嗕竴涓涔ecretary錛堥氱煡錛夛紝
姣忓綋緇忕悊涓婄彮鐨勬椂鍊欙紝縐樹功鎬諱細鎶婁竴澶╃殑璁″垝鑷姩鐨勬彁鍓嶄氦緇欑粡鐞嗗茍浣滃彛姘寸姸銆?br />鑰屽浜庡埆浜猴紝濂圭殑鎬佸害灝變笉鏄偅涔堝ソ浜嗐?br />鍦ㄨ繖涓▼搴忎腑錛屾垜浠殑縐樹功瀵圭粡鐞嗚璇濈殑鏃跺欑敤鐨勬槸鍓嶇疆閫氱煡銆?br />瀵規櫘閫氬伐浜鴻璇濈殑鏃跺欑敤鐨勬槸鍚庣疆閫氱煡銆?br />鐐逛竴涓嬭繍琛岀湅鐪嬬▼搴忕殑緇撴灉鍚э紵

]]>
SpringFramework涓殑AOP綆鍗曚嬌鐢? http://m.tkk7.com/zhanglijun33/archive/2006/07/25/aop.html鏅鴻呮棤鐤?/dc:creator>鏅鴻呮棤鐤?/author>Tue, 25 Jul 2006 03:38:00 GMThttp://m.tkk7.com/zhanglijun33/archive/2006/07/25/aop.htmlhttp://m.tkk7.com/zhanglijun33/comments/59957.htmlhttp://m.tkk7.com/zhanglijun33/archive/2006/07/25/aop.html#Feedback1http://m.tkk7.com/zhanglijun33/comments/commentRss/59957.htmlhttp://m.tkk7.com/zhanglijun33/services/trackbacks/59957.html
SpringFramework涓殑AOP綆鍗曚嬌鐢?
AOP浣滀負Spring榪欎釜杞婚噺綰х殑瀹瑰櫒涓緢閲嶈鐨勪竴閮ㄥ垎錛屽緱鍒拌秺鏉ヨ秺澶氱殑鍏蟲敞錛孲pring鐨凾ransaction灝辨槸鐢ˋOP鏉ョ鐞嗙殑錛屼粖澶╁氨閫氳繃綆鍗曠殑渚嬪瓙鏉ョ湅鐪婼pring涓殑AOP鐨勫熀鏈嬌鐢ㄦ柟娉曘?

聽 棣栧厛紜畾灝嗚Proxy鐨勭洰鏍囷紝鍦⊿pring涓粯璁ら噰鐢↗DK涓殑dynamic proxy錛屽畠鍙兘澶熷疄鐜版帴鍙g殑浠g悊錛屽鏋滄兂瀵圭被榪涜浠g悊鐨勮瘽錛岄渶瑕侀噰鐢–GLIB鐨刾roxy銆傛樉鐒訛紝閫夋嫨鈥滅紪紼嬪埌鎺ュ彛鈥濇槸鏇存槑鏅虹殑鍋氭硶錛屼笅闈㈡槸灝嗚浠g悊鐨勬帴鍙o細

聽 public interface FooInterface {
聽聽聽 public void printFoo();
聽聽聽 public void dummyFoo();
聽 }


聽 浠ュ強鍏朵竴涓畝鍗曠殑瀹炵幇錛?br />聽
聽 public class FooImpl implements FooInterface {
聽聽聽 public void printFoo() {
聽聽聽聽聽 System.out.println("In FooImpl.printFoo");
聽聽聽 }
聽聽聽 public void dummyFoo() {
聽聽聽聽聽 System.out.println("In FooImpl.dummyFoo");
聽聽聽 }
聽 }


聽 鎺ヤ笅鏉ュ垱寤轟竴涓狝dvice錛屽湪Spring涓敮鎸丄round,Before,After returning鍜孴hrows鍥涚Advice錛岃繖閲屽氨浠ョ畝鍗曠殑Before Advice涓句緥錛?br />聽
聽 public class PrintBeforeAdvice implements MethodBeforeAdvice {
聽聽聽 public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
聽聽聽聽聽 System.out.println("In PrintBeforeAdvice");
聽聽聽 }
聽 }

聽 鏈変簡鑷繁鐨刡usiness interface鍜宎dvice錛屽墿涓嬬殑灝辨槸濡備綍鍘昏閰嶅畠浠簡錛岄鍏堝埄鐢≒roxyFactory浠ョ紪紼嬫柟寮忓疄鐜幫紝濡備笅錛?br />聽
聽 public class AopTestMain {
聽聽聽 public static void main(String[] args) {
聽聽聽聽聽 FooImpl fooImpl = new FooImpl();
聽聽聽聽聽 PrintBeforeAdvice myAdvice = new PrintBeforeAdvice();
聽聽聽聽聽
聽聽聽聽聽 ProxyFactory factory = new ProxyFactory(fooImpl);
聽聽聽聽聽 factory.addBeforeAdvice(myAdvice);
聽聽聽聽聽 FooInterface myInterface = (FooInterface)factory.getProxy();

聽聽聽聽聽 myInterface.printFoo();
聽聽聽聽聽 myInterface.dummyFoo();
聽聽聽 }
聽 }

聽 鐜板湪鎵ц紼嬪簭錛岀濂囩殑緇撴灉灝卞嚭鐜頒簡錛?br />聽
聽 In PrintBeforeAdvice
聽 In FooImpl.printFoo
聽 In PrintBeforeAdvice
聽 In FooImpl.dummyFoo


聽 铏界劧榪欐牱鑳戒綋浼氬埌Spring涓瑼OP鐨勭敤娉曪紝浣嗚繖鍐充笉鏄煎緱鎺ㄨ崘鐨勬柟娉曪紝鏃㈢劧浣跨敤浜哠pring錛屽湪ApplicationContext涓閰嶆墍闇瑕?鐨刡ean鎵嶆槸鏈浣崇瓥鐣ワ紝瀹炵幇涓婇潰鐨勫姛鑳藉彧闇瑕佸啓涓畝鍗曠殑applicationContext灝卞彲浠ヤ簡錛屽涓嬶細

聽 <?xml version="1.0" encoding="UTF-8"?>
聽 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
聽聽聽 "
http://www.springframework.org/dtd/spring-beans.dtd">

聽 <beans>
聽聽聽 <description>The aop application context</description>
聽聽聽 <bean id="fooTarget" class="FooImpl"/>
聽聽聽 <bean id="myAdvice" class="PrintBeforeAdvice"/>
聽聽 聽<bean id="foo" class="org.springframework.aop.framework.ProxyFactoryBean">
聽聽聽聽 <property name="proxyInterfaces">
聽聽聽聽聽聽 <value>FooInterface</value>
聽聽聽聽 </property>
聽聽聽聽聽<property name="target">
聽聽聽聽聽聽 <ref local="fooTarget"/>
聽聽聽聽 </property>
聽聽聽聽 <property name="interceptorNames">
聽聽聽聽聽聽 <list>
聽聽聽聽聽聽聽聽 <value>myAdvice</value>
聽聽聽聽聽聽 </list>
聽聽聽聽 </property>
聽聽聽 </bean>
聽 </beans>

聽 褰撶劧錛宮ain涓殑浠g爜涔熻榪涜鐩稿簲鐨勪慨鏀癸細
聽聽聽聽
聽 public static void main(String[] args) {
聽聽聽 ClassPathXmlApplicationContext context = new聽
聽聽聽聽聽聽聽聽聽聽聽聽聽ClassPathXmlApplicationContext("applicationContext.xml");
聽聽聽 FooInterface foo = (FooInterface)context.getBean("foo");
聽聽聽 foo.printFoo();
聽聽聽 foo.dummyFoo();
聽 }


聽 鐜板湪榪愯涓涓嬶紝緇撴灉灝嗗拰涓婇潰鐨勮繍琛岀粨鏋滃畬鍏ㄤ竴鏍鳳紝榪欐牱鏄笉鏄洿浼橀泤錛熷綋闇瑕佹洿鏀瑰疄鐜版椂錛屽彧闇瑕佷慨鏀歸厤緗枃浠跺氨鍙互浜嗭紝紼嬪簭涓殑浠g爜涓嶉渶浠諱綍鏀瑰姩銆?br />聽
聽 浣嗘槸錛岃繖鏃跺欎細鍙戠幇琚玴roxy鐨刼bject涓殑鎵鏈夋柟娉曡皟鐢ㄦ椂閮藉皢榪愯advice涓殑before錛岃繖鏄劇劧涓嶈兘婊¤凍緇濆ぇ澶氭暟鎯呭喌涓嬬殑闇瑕侊紝姝ゆ椂錛屽彧 闇鍊熺敤Advisor灝卞彲浠ヤ簡錛屽綋鐒惰鍦ˋdvisor涓埄鐢╬attern璁劇疆濂藉摢浜涙柟娉曢渶瑕乤dvice錛屾洿鏀筧pplicationContext 濡備笅錛?br />聽
聽 <?xml version="1.0" encoding="UTF-8"?>
聽 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
聽聽聽 "
http://www.springframework.org/dtd/spring-beans.dtd">

聽 <beans>
聽聽聽 <description>The springeva application context</description>
聽聽 聽<bean id="fooTarget" class="FooImpl"/>
聽聽聽 <bean id="printBeforeAdvice" class="PrintBeforeAdvice"/>
聽聽聽 <bean id="myAdvisor"
聽聽聽聽聽聽聽聽聽 class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
聽聽聽聽聽 <property name="advice">
聽聽聽聽聽聽聽 <ref local="printBeforeAdvice"/>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="pattern">
聽聽聽聽聽聽聽 <value>.*print.*</value>
聽聽聽聽聽 </property>
聽聽聽 </bean>
聽聽聽 <bean id="foo" class="org.springframework.aop.framework.ProxyFactoryBean">
聽聽聽聽聽 <property name="proxyInterfaces">
聽聽聽聽聽聽聽聽<value>FooInterface</value>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="target">
聽聽聽聽聽聽聽 <ref local="fooTarget"/>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="interceptorNames">
聽聽聽聽聽聽聽 <list>
聽聽聽聽聽聽聽聽聽 <value>myAdvisor</value>
聽聽聽聽聽聽聽 </list>
聽聽聽聽聽聽</property>
聽聽聽 </bean>
聽 </beans>

聽 涓葷▼搴忎笉闇榪涜浠諱綍淇敼錛岃繍琛岀粨鏋滃凡緇忓彉鏍蜂簡錛?/p>

聽 In PrintBeforeAdvice
聽 In FooImpl.printFoo
聽 In FooImpl.dummyFoo


聽 鑷蟲錛屽簲璇ュ凡緇忕悊瑙d簡Spring涓瑼OP鐨勪嬌鐢ㄦ柟娉曪紝褰撶劧Spring涓瑼OP鏈閲嶈鐨勫簲鐢ㄦ槸Transaction Manager錛屼婦涓繖鏂歸潰鐨刟pplicationContext渚嬪瓙鐪嬬湅錛?br />聽
聽 <?xml version="1.0" encoding="UTF-8"?>
聽 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd">

聽 <beans>
聽聽聽 <bean id="propertyConfigurer"聽聽聽
聽聽聽聽聽聽聽聽 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
聽聽聽聽聽 <property name="location">
聽聽聽聽聽聽聽 <value>/WEB-INF/jdbc.properties</value>
聽聽聽聽聽聽</property>
聽聽 聽</bean>
聽聽聽 <bean id="dataSource"
聽聽聽聽聽聽聽聽聽 class="org.springframework.jdbc.datasource.DriverManagerDataSource">
聽聽聽聽聽 <property name="driverClassName">
聽聽聽聽聽聽聽 <value>${jdbc.driverClassName}</value>
聽聽聽聽聽 </property>
聽聽聽聽聽聽<property name="url">
聽聽聽聽聽聽聽 <value>${jdbc.url}</value>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="username">
聽聽聽聽聽聽聽 <value>${jdbc.username}</value>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="password">
聽聽聽聽聽聽聽 <value>${jdbc.password}</value>
聽聽聽聽聽 </property>
聽聽聽 </bean>
聽聽 聽<bean id="sessionFactory"
聽聽聽聽聽聽聽聽聽 class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
聽聽聽聽聽 <property name="dataSource">
聽聽聽聽聽聽聽 <ref local="dataSource"/>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="mappingResources">
聽聽聽聽聽聽聽 <value>smartmenu.hbm.xml</value>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="hibernateProperties">
聽聽聽聽聽聽聽 <props>
聽聽聽聽聽聽聽聽聽 <prop key="hibernate.dialect">${hibernate.dialect}</prop>
聽聽聽聽聽聽聽 </props>
聽聽聽聽聽 </property>
聽聽聽 </bean>

聽聽聽 <bean id="transactionManager"聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽 class="org.springframework.orm.hibernate.HibernateTransactionManager">
聽聽聽聽聽 <property name="sessionFactory">
聽聽聽聽聽聽聽 <ref local="sessionFactory"/>
聽聽聽聽聽 </property>
聽聽聽 </bean>
聽聽聽 <bean id="smartmenuTarget" class="SmartMenuHibernate">
聽聽聽聽聽 <property name="sessionFactory">
聽聽聽聽聽聽聽 <ref local="sessionFactory"/>
聽聽聽聽聽 </property>
聽聽聽 </bean>
聽聽 聽<bean id="smartMenu"
聽聽聽聽聽聽聽 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
聽聽聽聽聽 <property name="transactionManager">
聽聽聽聽聽聽聽 <ref local="transactionManager"/>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="target">
聽聽聽聽聽聽聽 <ref local="smartmenuTarget"/>
聽聽聽聽聽 </property>
聽聽聽聽聽 <property name="transactionAttributes">
聽聽聽聽聽聽聽 <props>
聽聽聽聽聽聽聽聽聽 <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
聽聽聽聽聽聽聽聽聽 <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
聽聽聽聽聽聽聽 </props>
聽聽聽聽聽 </property>
聽聽聽 </bean>
聽 </beans>


聽 瑕佹兂褰誨簳鐞嗚ВSpring鐨凙OP錛屾渶濂借繕鏄鐪嬬湅婧愮爜錛屽紑婧愬氨鏄ソ鍟婏紒



]]>
Hibernate+Spring 瀵笵AO鐨勫鐞嗗疄鍒?http://m.tkk7.com/zhanglijun33/archive/2006/07/25/goodacticle.html鏅鴻呮棤鐤?/dc:creator>鏅鴻呮棤鐤?/author>Tue, 25 Jul 2006 03:23:00 GMThttp://m.tkk7.com/zhanglijun33/archive/2006/07/25/goodacticle.htmlhttp://m.tkk7.com/zhanglijun33/comments/59954.htmlhttp://m.tkk7.com/zhanglijun33/archive/2006/07/25/goodacticle.html#Feedback0http://m.tkk7.com/zhanglijun33/comments/commentRss/59954.htmlhttp://m.tkk7.com/zhanglijun33/services/trackbacks/59954.html
寮曠敤"Spring"鎵嬪唽涓婄殑璇濊: Hibernate+Spring鏄劇劧鏄ぉ鐢熺殑緇撳悎.

涓嬮潰鏄垜鐢╯pring澶勭悊鐨勪竴涓狧ibernateDAO瀹炰緥,鍙互鐪嬪埌,浠g爜閲忓ぇ澶у噺灝戜簡.

java浠g爜:聽


package infoweb.dao;

import java.util.List;
import java.util.Iterator;

import infoweb.pojo.Info;


import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;

import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;


/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 孌墊椽鏉?br />* @version 1.0
*/


publicclass InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
/**
聽 聽* 鏋勯犲嚱鏁?br />聽 聽*/

public InfoDAOImpl(){
聽聽聽 super();
}


/**
聽 聽* 澧炲姞璁板綍
聽 聽* @param info Info
聽 聽*/

publicvoid setInfo(Info info)throwsException{
聽聽聽 getHibernateTemplate().save(info);
}


/**
聽 聽* 閫氳繃ID鍙栧緱璁板綍
聽 聽* @param id String
聽 聽* @return Info
聽 聽*/

public Info getInfoById(String id)throwsException{
聽聽聽 Info info = (Info) getHibernateTemplate().load(Info.class, id);
聽聽聽 return info;
}


/**
聽 聽* 淇敼璁板綍
聽 聽* @param Info info
聽 聽*/

publicvoid modifyInfo(Info info)throwsException{
聽聽聽 getHibernateTemplate().update(info);
}


/**
聽 聽* 鍒犻櫎璁板綍
聽 聽* @param Info info
聽 聽*/

publicvoid removeInfo(Info info)throwsException{
聽聽聽 getHibernateTemplate().delete(info);
}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
/////浠ヤ笅閮ㄤ喚涓嶅甫瀹℃牳鍔熻兘聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
////////////////////////////////////////////////////////

/**
聽 聽* 鍙栬褰曟繪暟
聽 聽* @return int
聽 聽*/

publicint getInfosCount()throwsException{
聽聽聽 int count = 0;
聽聽聽 String queryString = "select count(*) from Info";
聽聽聽 count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
聽聽聽聽聽聽聽聽聽聽聽 intValue();
聽聽聽 return count;
}


/**
聽 聽* 鍙栨墍鏈夎褰曢泦鍚?br />聽 聽* @return Iterator
聽 聽*/

publicIterator getAllInfos()throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info order by info.id desc";
聽聽聽 List list = getHibernateTemplate().find(queryString);
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 鍙栬褰曢泦鍚?br />聽 聽* @return Iterator
聽 聽* @param int position, int length
聽 聽*/

publicIterator getInfos(int position, int length)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info order by info.id desc";
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 鍙栫涓鏉¤褰?br />聽 聽* @throws Exception
聽 聽* @return Station
聽 聽*/

public Info getFirstInfo()throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 Info info = null;
聽聽聽 String queryString = "select info from Info as info order by info.id desc";
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 if(iterator.hasNext()){
聽聽聽聽聽 info = (Info) iterator.next();
聽聽聽 }
聽聽聽 return info;
}


/**
聽 聽* 鍙栨渶鍚庝竴鏉¤褰?br />聽 聽* @throws Exception
聽 聽* @return Station
聽 聽*/

public Info getLastInfo()throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 Info info = null;
聽聽聽 String queryString = "select info from Info as info order by info.id asc";
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 if(iterator.hasNext()){
聽聽聽聽聽 info = (Info) iterator.next();
聽聽聽 }
聽聽聽 return info;

}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
///// 浠ヤ笅閮ㄤ喚琛ㄤ腑瑕佹湁鐗瑰畾瀛楁鎵嶈兘脮類卞惄璇佃ⅹ 鐗抽媹鎾曟帹絎犵 聽 聽///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
////////////////////////////////////////////////////////

/**
聽 聽* 鍙栫鍚堟潯浠惰褰曟繪暟, [琛ㄤ腑瑕佹湁 isperson 瀛楁]
聽 聽* @return int
聽 聽* @param int isPerson
聽 聽*/


publicint getInfosCountByIsperson(int isPerson)throwsException{
聽聽聽 int count = 0;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 "select count(*) from Info as info where info.isperson =" + isPerson;
聽聽聽 count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
聽聽聽聽聽聽聽聽聽聽聽 intValue();
聽聽聽 return count;
}


/**
聽 聽* 鍙栨墍鏈夌鍚堟潯浠惰褰曢泦鍚? 妯$硦鏌ヨ鏉′歡.[琛ㄤ腑瑕佹湁 isperson 瀛楁]
聽 聽* @return Iterator
聽 聽* @param int isPerson
聽 聽*/


publicIterator getAllInfosByIsperson(int isPerson)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info where info.isperson =" +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽isPerson + " order by info.id desc";
聽聽聽 List list = getHibernateTemplate().find(queryString);
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 鍙栫鍚堟潯浠惰褰曢泦鍚? 妯$硦鏌ヨ鏉′歡.[琛ㄤ腑瑕佹湁 isperson 瀛楁]
聽 聽* @return Iterator
聽 聽* @param int isPerson,int position, int length
聽 聽*/


publicIterator getInfosByIsperson(int isPerson, int position, int length)throws
聽聽聽聽聽 Exception{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info where info.isperson =" +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽isPerson + " order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
///// 浠ヤ笅閮ㄤ喚琛ㄤ腑瑕佹湁鐗瑰畾瀛楁鎵嶈兘脮類卞惄璇佃ⅹ 聽鏌ヨ閮ㄤ喚聽聽聽聽聽 ///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
///////////////////////////////////////////////////////
/**
聽 聽* 鍙栫鍚堟潯浠惰褰曟繪暟, 妯$硦鏌ヨ鏉′歡.[琛ㄤ腑瑕佹湁 title 瀛楁]
聽 聽* @return int
聽 聽* @param String text
聽 聽*/

publicint getInfosCount(String text)throwsException{
聽聽聽 int count = 0;
聽聽聽 count = ((Integer) getHibernateTemplate().iterate(
聽聽聽聽聽聽聽 "select count(*) from Info as info where info.title like '%" + text +
聽聽聽聽聽聽聽 "%'
").next()).intValue();
聽聽聽 return count;
}


/**
聽 聽* 鍙栨墍鏈夌鍚堟潯浠惰褰曢泦鍚? 妯$硦鏌ヨ鏉′歡.[琛ㄤ腑瑕佹湁 title 瀛楁]
聽 聽* @return Iterator
聽 聽* @param String text
聽 聽*/


publicIterator getAllInfos(String text)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 " select info from Info as info where info.title like '%" + text +
聽聽聽聽聽聽聽 "%'
order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 鍙栫鍚堟潯浠惰褰曢泦鍚? 妯$硦鏌ヨ鏉′歡.[琛ㄤ腑瑕佹湁 title 瀛楁]
聽 聽* @return Iterator
聽 聽* @param String text,int position, int length
聽 聽*/

publicIterator getInfos(String text, int position, int length)throws
聽聽聽聽聽 Exception{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 " select info from Info as info where info.title like '%" + text +
聽聽聽聽聽聽聽 "%'
order by info.id desc";

聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
///// 浠ヤ笅閮ㄤ喚琛ㄤ腑瑕佹湁鐗瑰畾瀛楁鎵嶈兘脮類卞惄璇佃ⅹ 鐘犫拤宓枡璨?聽聽聽 ///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
////////////////////////////////////////////////////////

/**
聽 聽* 鍙栫鍚堟潯浠惰褰曟繪暟.[ 琛ㄤ腑瑕佹湁 registername 瀛楁]
聽 聽* @return int
聽 聽* @param String text
聽 聽*/

publicint getInfosCountByRegisterName(String registerName)throwsException{
聽聽聽 int count = 0;
聽聽聽 count = ((Integer) getHibernateTemplate().iterate(
聽聽聽聽聽聽聽 "select count(*) from Info as info where info.registername = '" +
聽聽聽聽聽聽聽 registerName + "'
").next()).intValue();
聽聽聽 return count;
}


/**
聽 聽* 閫氳繃娉ㄥ唽鍚嶅彇寰椾竴鏉¤褰?濡傛湁澶氭潯,鍙彇絎竴鏉?[琛ㄤ腑瑕佹湁 registername瀛楁]
聽 聽* @param registername String
聽 聽* @return Info
聽 聽*/

public Info getInfoByRegisterName(String registerName)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 Info info = null;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 " select info from Info as info where info.registername='" +
聽聽聽聽聽聽聽 registerName + "'
order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 if(iterator.hasNext()){
聽聽聽聽聽 info = (Info) iterator.next();
聽聽聽 }
聽聽聽 return info;
}


/**
聽 聽* 閫氳繃娉ㄥ唽鍚嶅彇寰楁墍鏈夎褰曢泦鍚?[琛ㄤ腑瑕佹湁 registername瀛楁]
聽 聽* @param registername String
聽 聽* @return Iterator
聽 聽*/

publicIterator getAllInfosByRegisterName(String registerName)throws
聽聽聽聽聽 Exception{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 " select info from Info as info where info.registername='" +
聽聽聽聽聽聽聽 registerName + "'
order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 閫氳繃娉ㄥ唽鍚嶅彇寰楄褰曞垪琛?[琛ㄤ腑瑕佹湁 registername瀛楁]
聽 聽* @param registername String
聽 聽* @return Iterator
聽 聽*/

publicIterator getInfosByRegisterName(String registerName, int position,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽int length)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString =
聽聽聽聽聽聽聽 " select info from Info as info where info.registername='" +
聽聽聽聽聽聽聽 registerName + "'
order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
///// 浠ヤ笅閮ㄤ喚琛ㄤ腑瑕佹湁鐗瑰畾瀛楁鎵嶈兘脮類卞惄璇佃ⅹ 聽 鐘戦妗跺┑闂?聽 聽///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
////////////////////////////////////////////////////////

/**
聽 聽* 鍙栬褰曟繪暟.[ 琛ㄤ腑瑕佹湁 board_id 瀛楁]
聽 聽* @return int
聽 聽* @param String boardId
聽 聽*/

publicint getInfosCountByBoard(String boardId)throwsException{
聽聽聽 int count = 0;

聽聽聽 count = ((Integer) getHibernateTemplate().iterate(
聽聽聽聽聽聽聽 "select count(*) from Info as info where info.boardId = '" + boardId +
聽聽聽聽聽聽聽 "'
").next()).intValue();

聽聽聽 return count;
}


/**
聽 聽* 閫氳繃鐗堝潡鍚嶅彇寰楁墍鏈夎褰曢泦鍚?[琛ㄤ腑瑕佹湁 board_id瀛楁]
聽 聽* @param BoardId String
聽 聽* @return Iterator
聽 聽*/

publicIterator getAllInfosByBoard(String boardId)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info where info.boardId='" +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽boardId + "'
order by info.id desc";
聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;
}


/**
聽 聽* 閫氳繃鐗堝潡鍚嶅彇寰楄褰曞垪琛?[琛ㄤ腑瑕佹湁 board_id瀛楁]
聽 聽* @param BoardId String
聽 聽* @return Iterator
聽 聽*/

publicIterator getInfosByBoard(String boardId, int position, int length)throws
聽聽聽聽聽 Exception{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info where info.boardId='" +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽boardId + "'
order by info.id desc";

聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();

聽聽聽 return iterator;

}


/**
聽 聽* 鍙栫鍚堟潯浠惰褰曟繪暟.[ 琛ㄤ腑瑕佹湁 board_id 瀛楁,title]聽 妯$硦鏌ヨtitle
聽 聽* @return int
聽 聽* @param String boardId ,String text
聽 聽*/

publicint getInfosCountByBoard(String boardId, String text)throwsException{
聽聽聽 int count = 0;

聽聽聽 count = ((Integer) getHibernateTemplate().iterate(
聽聽聽聽聽聽聽 "select count(*) from Info as info where info.boardId='" + boardId +
聽聽聽聽聽聽聽 "'
and info.title like '%" + text + "%'").next()).intValue();

聽聽聽 return count;

}


/**
聽 聽* 閫氳繃鐗堝潡鍚嶅彇寰楄褰曞垪琛?[琛ㄤ腑瑕佹湁 board_id瀛楁]聽 妯$硦鏌ヨtitle
聽 聽* @param String boardID,int position, int length
聽 聽* @return Iterator
聽 聽*/

publicIterator getInfosByBoard(String boardId, int position, int length,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String text)throwsException{
聽聽聽 Iterator iterator = null;
聽聽聽 String queryString = " select info from Info as info where info.boardId='" +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽boardId + "'
and info.title like '%" + text +
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽"%'
order by info.id desc";

聽聽聽 //鍒涘緩鏌ヨ
聽聽聽 Query query = getHibernateTemplate().createQuery(getSession(), queryString);
聽聽聽 //璁劇疆娓告爣鐨勮搗濮嬬偣
聽聽聽 query.setFirstResult(position);
聽聽聽 //璁劇疆娓告爣鐨勯暱搴?/span>
聽聽聽 query.setMaxResults(length);
聽聽聽 //璁板綍鐢熸垚
聽聽聽 List list = query.list();
聽聽聽 //鎶婃煡璇㈠埌鐨勭粨鏋滄斁鍏ヨ凱浠e櫒
聽聽聽 iterator = list.iterator();
聽聽聽 return iterator;

}


////////////////////////////////////////////////////////
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
/////浠ヤ笅閮ㄤ喚甯︽湁瀹℃牳鍔熻兘聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
/////聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ///
////////////////////////////////////////////////////////

/**
聽 聽* 鍙栬褰曟繪暟
聽 聽* @return int
聽 聽* @param int isAuditing
聽 聽*/

publicint getInfosCount(int isAuditing)throwsException{
聽聽聽


]]>
spring,hibernate,struts搴旂敤涓殑閿欒鍙婃洿姝?錛?錛?/title><link>http://m.tkk7.com/zhanglijun33/archive/2006/07/11/STRUTS3.html</link><dc:creator>鏅鴻呮棤鐤?/dc:creator><author>鏅鴻呮棤鐤?/author><pubDate>Tue, 11 Jul 2006 07:10:00 GMT</pubDate><guid>http://m.tkk7.com/zhanglijun33/archive/2006/07/11/STRUTS3.html</guid><wfw:comment>http://m.tkk7.com/zhanglijun33/comments/57650.html</wfw:comment><comments>http://m.tkk7.com/zhanglijun33/archive/2006/07/11/STRUTS3.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/zhanglijun33/comments/commentRss/57650.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhanglijun33/services/trackbacks/57650.html</trackback:ping><description><![CDATA[榪欎袱澶╁叕鍙鎬換鍔′笉绱э紝榪欐牱灝辯粰鎴戜笉灝戝仛璇曢獙鐨勬満浼氬拰鏃墮棿銆備粖澶╃殑璇曢獙鏄湪action閲岄潰鍐欏涓笉鍚岀殑鏂規硶錛屽茍涓旇寰?鍒頒笟鍔″眰鐨勫璞′互渚胯繘涓姝ュ鐞嗘暟鎹?br />棣栧厛鎴戠殑action瑕佺戶鎵緿ispatchAction.榪欐牱鎵嶈兘瀹炵幇澶氫釜涓嶅悓鐨勬柟娉曟斁鍦ㄤ竴涓猘ction閲屻?br />2.鍦ㄩ噷闈㈠啓鍏ュ浐瀹氱殑鏂規硶錛?br />public void setServlet(ActionServlet actionServlet){<br />聽聽 super.setServlet(actionServlet);<br />聽聽 ServletContext聽 servletContext =actionServlet.getServletContext();<br />聽 WebApplicationContext wac =聽 WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);<br />//鐒跺悗灝卞彲浠ュ緱鍒頒笟鍔″眰鐨勫璞′簡銆傚儚鎴戞槰澶╄寰楅偅鏍峰仛灝辮銆傦紙娉細鍦ㄨ繖涓柟娉曢噷闈㈠彲浠ュ緱鍒板涓笉鍚屽璞★紝宸茬粡璇曢獙閫氳繃錛?br />鐒跺悗鍐嶄竴涓緱鍒皊ervice瀵硅薄鐨勬柟娉曪紝浠ヤ緵鍚庨潰鐨勬柟娉曚嬌鐢ㄣ?br />3.澶氫釜jsp欏甸潰鍙互瀵瑰簲涓涓猘ction鍚楋紵鍙互錛屽凡緇忚瘯楠岄氳繃銆傚茍涓斿湪struts_config.xml閲岄潰鏃犻』鍋氫換浣曟敼鍔ㄣ?br />4.myAction?method=addXX鍚庨潰鍙互璺熷叾浠栧弬鏁板悧錛熷彲浠ワ紝宸茬粡璇曢獙閫氳繃銆?br />5錛宩sp鍚慳ction鍙戝嚭璇鋒眰鐨勬椂鍊欙紝涓轟粈涔堟湁鏃跺欏嚭鐜扮┖鐧藉紓甯革紵榪欐椂鍊欎綘搴旇浠庝袱涓柟闈㈣繘琛屾鏌?br />聽 1錛屾鏌ヤ綘鐨剆truts_config.xml forwordname<br />聽聽 2浠ヤ笂緇忛獙鏄垜鑻︽兂浜嗕竴澶╂墠寰楀埌鐨勩?img src ="http://m.tkk7.com/zhanglijun33/aggbug/57650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhanglijun33/" target="_blank">鏅鴻呮棤鐤?/a> 2006-07-11 15:10 <a href="http://m.tkk7.com/zhanglijun33/archive/2006/07/11/STRUTS3.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>struts,hibernate,spring搴旂敤榪囩▼涓殑閿欒鍙婃洿姝o紙姣忔棩鏇存柊錛?/title><link>http://m.tkk7.com/zhanglijun33/archive/2006/07/10/zongjie.html</link><dc:creator>鏅鴻呮棤鐤?/dc:creator><author>鏅鴻呮棤鐤?/author><pubDate>Mon, 10 Jul 2006 08:22:00 GMT</pubDate><guid>http://m.tkk7.com/zhanglijun33/archive/2006/07/10/zongjie.html</guid><wfw:comment>http://m.tkk7.com/zhanglijun33/comments/57522.html</wfw:comment><comments>http://m.tkk7.com/zhanglijun33/archive/2006/07/10/zongjie.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.tkk7.com/zhanglijun33/comments/commentRss/57522.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhanglijun33/services/trackbacks/57522.html</trackback:ping><description><![CDATA[涓婃帴鈥渏sp欏甸潰寰楀埌涓氬姟灞傜殑瀵硅薄鈥?br />1.鎴戠幇鍦ㄦ兂鐢╫rg.springframework.orm.hibernate.HibernateTransactionManager鏉ョ粰涓氬姟瀵硅薄緇囧叆浜嬪姟綆$悊鏂規硶銆備絾鍦ㄨ皟璇曠殑鏃跺欏嵈鍙戠敓浜嗗紓甯?Error registering bean with name 'myTransactionManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml],緋葷粺鍦ㄧ粰myTransactionManager Bean娉ㄥ唽鐨勬椂鍊欏嵈鎵句笉鍒板畠鐨勭被銆傜殑紜槸寰堝鎬殑闂錛孒ibernateTransactionManager鏄庢槑灝卞湪榪欏効鎽嗙潃鍢涳紝鎬庝箞緋葷粺灝辨槸鎵句笉鍒板憿銆傜粡榪囧嚑涓皬鏃剁殑鏌ユ壘浠g爜妗f錛屽彂鐜板師鏉ユ垜鐢ㄧ殑鏄疕ibernate3鐗堟湰銆傜浉搴旂殑org.springframework.orm.hibernate.HibernateTransactionManager涔熷簲璇ユ敼鎴愶細org.springframework.orm.hibernate3.HibernateTransactionManager.姹楋紒java紼嬪簭鍛樼湡绱?br />2.閿欒2錛屽綋鎴戞兂鍦ㄩ〉闈笂寰楀埌緇囧叆浜嬪姟綆$悊鐨剆ervice瀵硅薄鏃訛紝鍙堟湁涓涓敊璇潵浜嗭細<br />org.apache.jasper.JasperException: $Proxy2<br />org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)<br />鏅曞惂錛屼唬鐞嗕漢鐨勫緟閬囨病闂浜嗭紝鍙槸瀹冨氨鏄笉緇欎綘鍋氫唬鐞嗐傜粡榪囧湪jsp欏甸潰涓婄殑鎺掑療錛氱粓浜庢壘鍒拌繖涓鍙ワ細<br />聽聽 RealnewsService newsservice=(RealnewsService)wac.getBean("newsService");<br />瀹冩湁浠涔堥棶棰樺悧錛熷垵瀛﹁呯湅涓嶅嚭浠涔堥敊璇潵錛屽洜涓鴻娉曚笂涓鐐歸敊涔熸病鏈夛紝鍚庢潵緇忛珮鎵嬫寚鐐規墠濡傛ⅵ鍒濋啋錛?br />瀹冪殑澹版槑綾誨瀷搴旇鏄浉搴旂殑鎺ュ彛銆傝繖鏄痵pring涓璐殑椋庢牸錛岋紙浣嗚繖鑷充簬璁╂垜鍑洪敊鍚楋紵閮侀椃錛夛紝濂姐傚埌浠婂ぉ涓哄潃錛屾垜鍜屽叧娉ㄦ垜鐨勫崥瀹㈢殑鍚屽搴旇瀵箂pring搴旂敤紼嬪簭鐨勬牳蹇冮厤緗枃浠舵湁浜嗕竴瀹氱殑鐞嗚В浜嗐?br />鎬葷粨涓鍙ヨ瘽錛氳В鍐抽棶棰樼殑鏂規硶鏄細鏉ヤ簡闂涓嶈鎬曪紝鐢ㄦ湸绱犵殑鐞嗗康鍜屾墽钁楃殑鎬佸害鍘繪垬鑳渂ug聽 ;-)<img src ="http://m.tkk7.com/zhanglijun33/aggbug/57522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhanglijun33/" target="_blank">鏅鴻呮棤鐤?/a> 2006-07-10 16:22 <a href="http://m.tkk7.com/zhanglijun33/archive/2006/07/10/zongjie.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring 搴旂敤紼嬪簭閰嶇疆鏂囦歡鐨勬牳蹇冪悊瑙?/title><link>http://m.tkk7.com/zhanglijun33/archive/2006/07/06/spring.html</link><dc:creator>鏅鴻呮棤鐤?/dc:creator><author>鏅鴻呮棤鐤?/author><pubDate>Thu, 06 Jul 2006 03:29:00 GMT</pubDate><guid>http://m.tkk7.com/zhanglijun33/archive/2006/07/06/spring.html</guid><wfw:comment>http://m.tkk7.com/zhanglijun33/comments/56923.html</wfw:comment><comments>http://m.tkk7.com/zhanglijun33/archive/2006/07/06/spring.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/zhanglijun33/comments/commentRss/56923.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhanglijun33/services/trackbacks/56923.html</trackback:ping><description><![CDATA[鏈枃鐨勭悊瑙f潵鑷疄闄呭簲鐢ㄧ▼搴忋傛枃浠跺悕鏄細applicationContext-hibernate1.xml<br />鐔熸倝spring-hibernate鏋舵瀯鐨勪漢瀵瑰畠鑲畾涓嶉檶鐢熴傚畠鏄敱鏀寔spring鐨勭粍浠跺湪緙栫▼寮濮嬭嚜鍔ㄧ敓鎴愮殑錛屼絾鎴戜滑涓嶈兘鎬繪槸鍋滅暀鍦ㄤ笉綆′笉闂殑鐘舵併傚惁鍒欏紼嬪簭鏋勯犲氨娌℃湁鏇存繁涓姝ョ殑鐞嗚В銆?br />濡傛灉鐞嗘竻applicationContext-hibernate1.xml鐨勫ご緇垨鑰呮墜宸ュ啓瀹冿紝瀵逛簬涓誨姩鏀硅繘紼嬪簭鑲畾鏄湁鐩婄殑銆?br />鎴戞葷粨鍑烘潵鐨勯『搴忔槸錛?br />1.寤簃yDataSource<br />(org.apache.commons.dbcp.BasicDataSource).灞炴у寘鎷珼BDriver,URL,UserName,Password.<br />2.mySessionFactory:<br />(org.springframework.orm.hibernate.LocalSessionFactoryBean)灞炴у寘鎷細mappingResources(hbm.xml鐨勯泦鍚?錛孒ibernateProperties,myDataSource(娉ㄥ叆1).<br />3.myTransactionManager<br />(org.springframework.orm.hibernate.HibernateTransactionManager)mySessionFactory(娉ㄥ叆2)<br />浠ヤ笂涓夋鏄悗闈㈠悇欏歸厤緗殑鍩虹銆備粠鍚庨潰寮濮嬫垜浠氨寮濮嬬湡姝g殑閰嶇疆鎴戜滑鐨凚eans浜嗐?br />4.boDAO<br />(com.realnews.yourProject.service.dao.hibernate.boDAOs)娉ㄥ叆mySessionFactory.<br />5.boTarget<br />(com.realnews.yourProject.service.spring.boServices)聽娉ㄥ叆boDAO<br />6.boService<br />錛坥rg.springframework.transaction.interceptor.TransactionProxyFactoryBean錛夋敞鍏yTransactionManager鍙奲oTarget<br />錛屽茍鐢╰ransactionAttributes璁劇疆鏁版嵁搴撳茍鍙戞帶鍒剁駭鍒備緥濡?br /><property name="transactionAttributes"><br />聽聽聽<props><br />聽聽聽聽<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop><br />聽聽聽聽<prop key="save*">PROPAGATION_REQUIRED</prop><br />聽聽聽</props><br />7.寰幆絎?鍒扮6姝ュ嵆鍙厤緗墍鏈夐渶瑕侀厤緗殑bean.<br />鏈枃涓嶆槸鎽樻妱錛屽鏋滄兂杞憳錛岃娉ㄦ槑鍑哄錛?a href="/zhanglijun33">m.tkk7.com/zhanglijun33</a><br />濡傛灉鎯寵鏇磋緇嗙殑璧勬枡鍙互緇欐垜鐣欒█銆?br /><img src ="http://m.tkk7.com/zhanglijun33/aggbug/56923.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhanglijun33/" target="_blank">鏅鴻呮棤鐤?/a> 2006-07-06 11:29 <a href="http://m.tkk7.com/zhanglijun33/archive/2006/07/06/spring.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring Framework涔嬫渶浣沖疄璺典簩 http://m.tkk7.com/zhanglijun33/archive/2006/07/05/lijun.html鏅鴻呮棤鐤?/dc:creator>鏅鴻呮棤鐤?/author>Wed, 05 Jul 2006 08:38:00 GMThttp://m.tkk7.com/zhanglijun33/archive/2006/07/05/lijun.htmlhttp://m.tkk7.com/zhanglijun33/comments/56805.htmlhttp://m.tkk7.com/zhanglijun33/archive/2006/07/05/lijun.html#Feedback2http://m.tkk7.com/zhanglijun33/comments/commentRss/56805.htmlhttp://m.tkk7.com/zhanglijun33/services/trackbacks/56805.html

Spring Framework鏈寰椾互鍑哄悕鐨勬槸涓嶩ibernate鐨勬棤緙濋摼鎺ワ紝鍩烘湰涓婄敤Spring錛屽氨浼氱敤Hibernate銆傚彲鎯滅殑鏄疭pring鎻愪緵鐨凥ibernateTemplate鍔熻兘鏄懼緱涓嶅錛屼嬌鐢ㄨ搗鏉ヤ篃涓嶆槸寰堟柟渚褲傛垜浠紪紼嬪簭鏃訛紝涓鑸厛鍐橞usinessService錛岀敱BusinessService璋僁AO鏉ユ墽琛屽瓨鍌紝鍦ㄨ繖鏂歸潰Spring娌℃湁寰堝ソ鐨勪緥瀛愶紝閫犳垚鐪熸鎯崇敤濂藉畠錛屽茍涓嶅鏄撱?/font>

鎴戜滑鐨勬濊礬鏄厛鍐欎竴涓狟aseDao錛屼豢鐓ibernateTemplate錛屽皢鍩烘湰鍔熻兘鍏ㄩ儴瀹炵幇錛?/font>

public class BaseDao extends HibernateDaoSupport{

聽聽聽 private Log log = LogFactory.getLog(getClass());

聽聽聽 public Session openSession() {
聽聽聽聽聽聽聽 return SessionFactoryUtils.getSession(getSessionFactory(), false);
聽聽聽 }

聽聽聽 public Object get(Class entityClass, Serializable id) throws DataAccessException {
聽聽聽聽聽聽聽 Session session = openSession();
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 return session.get(entityClass, id);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch (HibernateException ex) {
聽聽聽聽聽聽聽聽聽聽聽 throw SessionFactoryUtils.convertHibernateAccessException(ex);
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽 public Serializable create(Object entity) throws DataAccessException {
聽聽聽聽聽聽聽 Session session = openSession();
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 return session.save(entity);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch (HibernateException ex) {
聽聽聽聽聽聽聽聽聽聽聽 throw SessionFactoryUtils.convertHibernateAccessException(ex);
聽聽聽聽聽聽聽 }
聽聽聽 }

...

鍏跺畠鐨凞AO錛屼粠BaseDao緇ф壙鍑烘潵錛岃繖鏍峰啓鍏朵粬鐨凞AO錛屼唬鐮佸氨浼氬緢灝戙?/font>

浠嶣aseDao緇ф壙鍑烘潵EntityDao錛屼笓闂ㄨ礋璐d竴鑸疄浣撶殑鍩烘湰鎿嶄綔錛屼細鏇存柟渚褲?/font>

public interface EntityDao {

聽聽聽 public Object get(Class entityClass, Serializable id) throws DataAccessException;

聽聽聽 public Object load(Class entityClass, Serializable id) throws DataAccessException;

聽聽聽 public Serializable create(Object entity) throws DataAccessException;
...}

/**
聽* Base class for Hibernate DAOs.聽 This class defines common CRUD methods for
聽* child classes to inherit. User Sping AOP Inteceptor
聽*/
public class EntityDaoImpl extends BaseDao implements EntityDao{

}

涓轟簡Transaction鐨勬帶鍒訛紝閲囩敤AOP鐨勬柟寮忥細

public interface EntityManager {

聽聽聽 public Object get(Class entityClass, Serializable id);

聽聽聽 public Object load(Class entityClass, Serializable id);

聽聽聽 public Serializable create(Object entity);
...

}

/**
聽* Base class for Entity Service. User Sping AOP Inteceptor
聽*/
public class EntityManagerImpl implements EntityManager {

聽聽聽 private EntityDao entityDao;

聽聽聽 public void setEntityDao(EntityDao entityDao) {
聽聽聽聽聽聽聽 this.entityDao = entityDao;
聽聽聽 }

聽聽聽 public Object get(Class entityClass, Serializable id) {
聽聽聽聽聽聽聽 return entityDao.get(entityClass, id);
聽聽聽 }

聽聽聽 public Object load(Class entityClass, Serializable id) {
聽聽聽聽聽聽聽 return entityDao.load(entityClass, id);
聽聽聽 }
...

}

榪欐牱鎴戜滑灝辨湁浜嗕竴涓氱敤鐨凥ibernate瀹炰綋寮曟搸錛屽彲浠ュ浠諱綍Hibernate瀹炰綋瀹炵幇鍩烘湰鐨勫鍔犮佷慨鏀廣佸垹闄ゃ佹煡璇㈢瓑銆?/font>

鍏跺畠鐨凚usinessService灝卞彲浠ョ戶鎵縀ntityManager錛屽揩閫熷疄鐜頒笟鍔¢昏緫銆?/font>

鍏蜂綋XML閰嶇疆濡備笅錛?/font>

聽<!-- Oracle JNDI DataSource for J2EE environments -->
聽<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
聽聽<property name="jndiName"><value>java:comp/env/jdbc/testPool</value></property>
聽</bean>

聽<!-- Hibernate SessionFactory for Oracle -->
聽<!-- Choose the dialect that matches your "dataSource" definition -->
聽<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
聽聽<property name="dataSource"><ref local="dataSource"/></property>
聽聽<property name="mappingResources">
聽聽聽<value>user-hbm.xml</value>
聽聽</property>
聽聽<property name="hibernateProperties">
聽聽聽<props>
聽聽聽聽<prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
聽聽聽聽<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.Provider</prop>
聽聽聽聽<prop key="hibernate.cache.use_query_cache">true</prop>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <prop key="hibernate.show_sql">false</prop>
聽聽聽</props>
聽聽</property>
聽</bean>

聽<!-- AOP DAO Intecepter -->
聽聽聽聽聽聽聽 <bean id="hibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor">
聽聽聽聽聽聽聽聽聽 <property name="sessionFactory">
聽聽聽聽聽聽聽聽聽聽聽 <ref bean="sessionFactory"/>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽 </bean>

聽聽聽聽聽聽聽 <bean id="entityDaoTarget" class="com.gpower.services.entity.dao.EntityDaoImpl">
聽聽聽聽聽聽聽聽聽 <property name="sessionFactory">
聽聽聽聽聽聽聽聽聽聽聽 <ref bean="sessionFactory"/>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽 </bean>

聽聽聽聽聽聽聽 <bean id="entityDao" class="org.springframework.aop.framework.ProxyFactoryBean">
聽聽聽聽聽聽聽聽聽 <property name="proxyInterfaces">
聽聽聽聽聽聽聽聽聽聽聽 <value>com.gpower.services.entity.dao.EntityDao</value>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽聽聽 <property name="interceptorNames">
聽聽聽聽聽聽聽聽聽聽聽 <list>
聽聽聽聽聽聽聽聽聽聽聽聽聽 <value>hibernateInterceptor</value>
聽聽聽聽聽聽聽聽聽聽聽聽聽 <value>entityDaoTarget</value>
聽聽聽聽聽聽聽聽聽聽聽 </list>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽 </bean>

聽<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
聽<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
聽聽<property name="sessionFactory"><ref local="sessionFactory"/></property>
聽</bean>

聽<!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource) -->
聽<!--
聽<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
聽-->

聽<!-- Transactional proxy for the Application primary business object -->
聽聽聽聽聽聽聽 <bean id="entityManagerTarget" class="com.gpower.services.entity.EntityManagerImpl">
聽聽聽聽聽聽聽聽聽 <property name="entityDao">
聽聽聽聽聽聽聽聽聽聽聽 <ref bean="entityDao"/>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽 </bean>

聽聽聽聽聽聽聽 <bean id="entityManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
聽聽聽聽聽聽聽聽聽 <property name="transactionManager">
聽聽聽聽聽聽聽聽聽聽聽 <ref bean="transactionManager"/>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽聽聽 <property name="target">
聽聽聽聽聽聽聽聽聽聽聽 <ref bean="entityManagerTarget"/>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽聽聽 <property name="transactionAttributes">
聽聽聽聽 <props>
聽聽聽聽聽聽 <prop key="get*">PROPAGATION_SUPPORTS</prop>
聽聽聽聽聽聽 <prop key="*">PROPAGATION_REQUIRED</prop>
聽聽聽聽 </props>
聽聽聽聽聽聽聽聽聽 </property>
聽聽聽聽聽聽聽 </bean>


Spring Framework涔嬫渶浣沖疄璺典簩


]]>
主站蜘蛛池模板: 久久久高清日本道免费观看| 怡红院亚洲红怡院在线观看| 久久久久久夜精品精品免费啦| 久久亚洲中文字幕精品一区四 | 中文字幕亚洲精品| 国产啪精品视频网站免费尤物 | 亚洲精品无码精品mV在线观看| 男女一边桶一边摸一边脱视频免费| gogo全球高清大胆亚洲| 牛牛在线精品观看免费正| 亚洲国产成人久久一区久久| 青青久久精品国产免费看| 亚洲欧洲日本在线| 精品97国产免费人成视频| 久久精品国产亚洲沈樵| 中文字幕免费视频| 亚洲日本人成中文字幕| 国产男女猛烈无遮档免费视频网站| 国产亚洲精品成人久久网站 | 亚洲精品乱码久久久久久久久久久久| 免费精品99久久国产综合精品| 亚洲电影一区二区| 国内精品乱码卡1卡2卡3免费| 亚洲熟妇丰满xxxxx| 亚洲精品黄色视频在线观看免费资源| jizz免费在线影视观看网站| 久久久久亚洲AV片无码| 亚欧色视频在线观看免费| 亚洲综合色婷婷在线观看| 亚洲精品久久久www | 日本亚洲色大成网站www久久| 国产一级一片免费播放i| 三上悠亚在线观看免费| 亚洲日本乱码一区二区在线二产线| 免费精品人在线二线三线区别| 免费无码又爽又黄又刺激网站 | 亚洲jizzjizz在线播放久| 免费jjzz在线播放国产| 日韩精品极品视频在线观看免费| 日本亚洲免费无线码| 亚洲男人的天堂一区二区|