SlideShare a Scribd company logo
1 of 7
Code Sample
Dependency Injection (1) package au.com.sgb.example.t1.service; … public class TradeServiceImpl implements TradeService { TradeDAO dao; public TradeServiceImpl(TradeDAO dao) { this.dao = dao; } @Transactional public Trade newTrade(Equity e, String s, Double qty) { Trade t = new Trade(e, s, qty); return save(t); } … public Trade save(Trade data) { return dao.save(data); }
Dependency Injection (2) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;> <beans <bean id=&quot; tradeDAO &quot; class=&quot;au.com.sgb.example.t1.dao.hibernate.TradeDAOImpl&quot; > <property name=&quot;sessionFactory&quot; ref=&quot;sessionFactory&quot;/> </bean> <bean id=&quot; tradeService &quot; class=&quot; au.com.sgb.example.t1.service.TradeServiceImpl &quot;> <constructor-arg ref=&quot; tradeDAO &quot; />  </bean …
DAO Implemenation Using Hibernate (1) package au.com.sgb.example.t1.dao.hibernate; … public class EquityDAOImpl extends HibernateDaoSupport implements EquityDAO { @Override public List<Equity> findByName(String name) { return getHibernateTemplate().find(&quot;from Equity e where e.name like ?&quot;, &quot;%&quot; + name + &quot;%&quot;); } @Override public List<Equity> findAll() { return getHibernateTemplate().find(&quot;from Equity e&quot;); }
DAO Implemenation Using Hibernate (2) @Override public Equity findById(int id) { List equities = getHibernateTemplate().find(&quot;from Equity e where e.equity_id = ?&quot;, id); if (equities == null || equities.size() == 0) { return null; } else { return (Equity) equities.get(0); } } @Override public Equity save(Equity data) { getHibernateTemplate().saveOrUpdate(data); return data; } }
Web Tier (1) <bean name=&quot; urlMapper &quot; class=&quot;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&quot; > <property name=&quot;mappings&quot;> <props> <prop key=&quot; /listequity.htm &quot;>listEquityController</prop> <prop key=&quot;/doequity.htm&quot;>doEquityController</prop> <prop key=&quot;/listtrade.htm&quot;>listTradeController</prop> <prop key=&quot;/dotrade.htm&quot;>doTradeController</prop> </props> </property> </bean> … <bean id=&quot; viewResolver &quot; class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;> <property name=&quot;viewClass&quot;><value>org.springframework.web.servlet.view.JstlView</value></property> <property name=&quot;prefix&quot;><value>/WEB-INF/jsp/</value></property> <property name=&quot;suffix&quot;><value>.jsp</value></property> </bean>
Web Tier (2) public class TradeListController extends AbstractController { TradeService tradeService; TradeListController(TradeService service) { this.tradeService = service; } @Override protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { List<Trade> ts = tradeService.findAll(); Map<String, Object> vals = new HashMap<String, Object>(); vals.put(&quot;trades&quot;, ts); return new ModelAndView(&quot;listtrade&quot;, vals); } }

More Related Content

What's hot

UISearchController par Stéphane sudre
UISearchController par Stéphane sudreUISearchController par Stéphane sudre
UISearchController par Stéphane sudreCocoaHeads France
 
Создание новых объектов
Создание новых объектовСоздание новых объектов
Создание новых объектовConstantin Kichinsky
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11翀 周
 
Perhitungan Dua Bilangan dengan Java NetBeans
Perhitungan Dua Bilangan dengan Java NetBeansPerhitungan Dua Bilangan dengan Java NetBeans
Perhitungan Dua Bilangan dengan Java NetBeansAldila Putri
 
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30Chris Ohk
 
Функциональное реактивное программирование
Функциональное реактивное программированиеФункциональное реактивное программирование
Функциональное реактивное программированиеDmitriy Kiriyenko
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
JQuery应用开发
JQuery应用开发JQuery应用开发
JQuery应用开发chevionlu
 
Effective java 摘選條目分享 2 - 泛型
Effective java   摘選條目分享 2 - 泛型Effective java   摘選條目分享 2 - 泛型
Effective java 摘選條目分享 2 - 泛型Kane Shih
 

What's hot (16)

Programa
ProgramaPrograma
Programa
 
UISearchController par Stéphane sudre
UISearchController par Stéphane sudreUISearchController par Stéphane sudre
UISearchController par Stéphane sudre
 
Создание новых объектов
Создание новых объектовСоздание новых объектов
Создание новых объектов
 
Boost study#4
Boost study#4Boost study#4
Boost study#4
 
Suma de n numeros
Suma de n numerosSuma de n numeros
Suma de n numeros
 
JQuery
JQueryJQuery
JQuery
 
es6.concurrency()
es6.concurrency()es6.concurrency()
es6.concurrency()
 
Grouping object1
Grouping object1Grouping object1
Grouping object1
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11
 
Perhitungan Dua Bilangan dengan Java NetBeans
Perhitungan Dua Bilangan dengan Java NetBeansPerhitungan Dua Bilangan dengan Java NetBeans
Perhitungan Dua Bilangan dengan Java NetBeans
 
1- Sourcecode Array
1- Sourcecode Array1- Sourcecode Array
1- Sourcecode Array
 
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
 
Функциональное реактивное программирование
Функциональное реактивное программированиеФункциональное реактивное программирование
Функциональное реактивное программирование
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
JQuery应用开发
JQuery应用开发JQuery应用开发
JQuery应用开发
 
Effective java 摘選條目分享 2 - 泛型
Effective java   摘選條目分享 2 - 泛型Effective java   摘選條目分享 2 - 泛型
Effective java 摘選條目分享 2 - 泛型
 

Viewers also liked

Radio Commercials
Radio  CommercialsRadio  Commercials
Radio CommercialsAiden Yeh
 
Alice Game
Alice GameAlice Game
Alice GameBarri
 
Una hermosa historia
Una hermosa historiaUna hermosa historia
Una hermosa historiamariama1525
 
The New Internet
The New InternetThe New Internet
The New Internetstorytb
 
Peliculas Censuradas
Peliculas CensuradasPeliculas Censuradas
Peliculas Censuradasivantaju
 
Hardtack To Hard Drives Book Blog Project
Hardtack To Hard Drives   Book Blog ProjectHardtack To Hard Drives   Book Blog Project
Hardtack To Hard Drives Book Blog ProjectEric Langhorst
 
Tham Van2
Tham Van2Tham Van2
Tham Van2foreman
 
Fases del guión
Fases del guiónFases del guión
Fases del guiónXar Li
 
Text Messaging Outcome
Text Messaging OutcomeText Messaging Outcome
Text Messaging OutcomeBellaMMV
 
7th Grade Chapter 4 Lesson 4
7th Grade Chapter 4 Lesson 47th Grade Chapter 4 Lesson 4
7th Grade Chapter 4 Lesson 4MRS.KDUNCAN
 
Flatstanleyprjct
FlatstanleyprjctFlatstanleyprjct
Flatstanleyprjctcarlynn
 
Lo Que Cada Uno Posee
Lo Que Cada Uno PoseeLo Que Cada Uno Posee
Lo Que Cada Uno Poseemariama1525
 

Viewers also liked (20)

G F R2005
G F R2005G F R2005
G F R2005
 
Radio Commercials
Radio  CommercialsRadio  Commercials
Radio Commercials
 
Una bella mujer
Una bella mujerUna bella mujer
Una bella mujer
 
Alice Game
Alice GameAlice Game
Alice Game
 
Una hermosa historia
Una hermosa historiaUna hermosa historia
Una hermosa historia
 
The New Internet
The New InternetThe New Internet
The New Internet
 
Peliculas Censuradas
Peliculas CensuradasPeliculas Censuradas
Peliculas Censuradas
 
Angelina
AngelinaAngelina
Angelina
 
Hardtack To Hard Drives Book Blog Project
Hardtack To Hard Drives   Book Blog ProjectHardtack To Hard Drives   Book Blog Project
Hardtack To Hard Drives Book Blog Project
 
Tham Van2
Tham Van2Tham Van2
Tham Van2
 
Businessslaw
BusinessslawBusinessslaw
Businessslaw
 
Debt Reduction Plan
Debt Reduction PlanDebt Reduction Plan
Debt Reduction Plan
 
Fases del guión
Fases del guiónFases del guión
Fases del guión
 
Una Pareja
Una ParejaUna Pareja
Una Pareja
 
Komanda 111
Komanda 111Komanda 111
Komanda 111
 
Text Messaging Outcome
Text Messaging OutcomeText Messaging Outcome
Text Messaging Outcome
 
1
11
1
 
7th Grade Chapter 4 Lesson 4
7th Grade Chapter 4 Lesson 47th Grade Chapter 4 Lesson 4
7th Grade Chapter 4 Lesson 4
 
Flatstanleyprjct
FlatstanleyprjctFlatstanleyprjct
Flatstanleyprjct
 
Lo Que Cada Uno Posee
Lo Que Cada Uno PoseeLo Que Cada Uno Posee
Lo Que Cada Uno Posee
 

Spring Framework Orm Di

  • 2. Dependency Injection (1) package au.com.sgb.example.t1.service; … public class TradeServiceImpl implements TradeService { TradeDAO dao; public TradeServiceImpl(TradeDAO dao) { this.dao = dao; } @Transactional public Trade newTrade(Equity e, String s, Double qty) { Trade t = new Trade(e, s, qty); return save(t); } … public Trade save(Trade data) { return dao.save(data); }
  • 3. Dependency Injection (2) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;http://www.springframework.org/dtd/spring-beans.dtd&quot;> <beans <bean id=&quot; tradeDAO &quot; class=&quot;au.com.sgb.example.t1.dao.hibernate.TradeDAOImpl&quot; > <property name=&quot;sessionFactory&quot; ref=&quot;sessionFactory&quot;/> </bean> <bean id=&quot; tradeService &quot; class=&quot; au.com.sgb.example.t1.service.TradeServiceImpl &quot;> <constructor-arg ref=&quot; tradeDAO &quot; /> </bean …
  • 4. DAO Implemenation Using Hibernate (1) package au.com.sgb.example.t1.dao.hibernate; … public class EquityDAOImpl extends HibernateDaoSupport implements EquityDAO { @Override public List<Equity> findByName(String name) { return getHibernateTemplate().find(&quot;from Equity e where e.name like ?&quot;, &quot;%&quot; + name + &quot;%&quot;); } @Override public List<Equity> findAll() { return getHibernateTemplate().find(&quot;from Equity e&quot;); }
  • 5. DAO Implemenation Using Hibernate (2) @Override public Equity findById(int id) { List equities = getHibernateTemplate().find(&quot;from Equity e where e.equity_id = ?&quot;, id); if (equities == null || equities.size() == 0) { return null; } else { return (Equity) equities.get(0); } } @Override public Equity save(Equity data) { getHibernateTemplate().saveOrUpdate(data); return data; } }
  • 6. Web Tier (1) <bean name=&quot; urlMapper &quot; class=&quot;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&quot; > <property name=&quot;mappings&quot;> <props> <prop key=&quot; /listequity.htm &quot;>listEquityController</prop> <prop key=&quot;/doequity.htm&quot;>doEquityController</prop> <prop key=&quot;/listtrade.htm&quot;>listTradeController</prop> <prop key=&quot;/dotrade.htm&quot;>doTradeController</prop> </props> </property> </bean> … <bean id=&quot; viewResolver &quot; class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;> <property name=&quot;viewClass&quot;><value>org.springframework.web.servlet.view.JstlView</value></property> <property name=&quot;prefix&quot;><value>/WEB-INF/jsp/</value></property> <property name=&quot;suffix&quot;><value>.jsp</value></property> </bean>
  • 7. Web Tier (2) public class TradeListController extends AbstractController { TradeService tradeService; TradeListController(TradeService service) { this.tradeService = service; } @Override protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { List<Trade> ts = tradeService.findAll(); Map<String, Object> vals = new HashMap<String, Object>(); vals.put(&quot;trades&quot;, ts); return new ModelAndView(&quot;listtrade&quot;, vals); } }