<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2263086889761718156</id><updated>2011-04-21T12:05:10.684-07:00</updated><title type='text'>Tecnologia - Tutoriais</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fusilli.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fusilli.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fabio Fusilli</name><uri>http://www.blogger.com/profile/12691476934652683970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2263086889761718156.post-7795559929734255006</id><published>2008-10-22T08:11:00.000-07:00</published><updated>2009-01-29T17:54:41.297-08:00</updated><title type='text'>CRUD com JSF e JPA - parte3/3</title><content type='html'>Ola pessoa!!!...&lt;br /&gt;Depois de muito tempo sem fazer nenhum post, aqui estou eu firme e forte para publicar a parte final deste tutorial!!!&lt;br /&gt;&lt;br /&gt;A aplicação deste tutorial se encontra disponível na integra no link abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.4shared.com/file/83185737/cf033bee/TUTORIAL_DAY_CRUD.html" target=_blank&gt;TUTORIAL_DAY_CRUD.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E vamos lá!!!...&lt;br /&gt;&lt;br /&gt;As paginas JSP devem ser criadas no diretório /WebContent da aplicação web.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Página formCity.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2gKUWor2qvw/SP-XKCNgeHI/AAAAAAAAAC0/b-PSuO-auQo/s1600-h/formCity.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260089088440039538" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://2.bp.blogspot.com/_2gKUWor2qvw/SP-XKCNgeHI/AAAAAAAAAC0/b-PSuO-auQo/s320/formCity.jpg" border="0" /&gt;&lt;/a&gt; Esta página contém o formulário de Cadastro de Cidades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Página formClient.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2gKUWor2qvw/SP-YmuK_DpI/AAAAAAAAAC8/RrO6NzHiFOE/s1600-h/formClient.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260090680788586130" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_2gKUWor2qvw/SP-YmuK_DpI/AAAAAAAAAC8/RrO6NzHiFOE/s320/formClient.jpg" border="0" /&gt;&lt;/a&gt;Esta página contém o formulário de Clientes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Página alterClient.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2gKUWor2qvw/SP-ZeR0z9NI/AAAAAAAAADE/Jf2HUKZmtSo/s1600-h/alterClient.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260091635252065490" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://2.bp.blogspot.com/_2gKUWor2qvw/SP-ZeR0z9NI/AAAAAAAAADE/Jf2HUKZmtSo/s320/alterClient.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Esta página contém o formulário de alteração de dados do cliente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Página listCity.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2gKUWor2qvw/SP-aAXLSWJI/AAAAAAAAADM/I_f0GEtfEuA/s1600-h/listCity.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260092220804061330" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_2gKUWor2qvw/SP-aAXLSWJI/AAAAAAAAADM/I_f0GEtfEuA/s320/listCity.jpg" border="0" /&gt;&lt;/a&gt;Esta página exibe uma lista de Cidades cadastradas tendo a opção de deletar as mesmas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Página listClient.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2gKUWor2qvw/SP-a0oSkk-I/AAAAAAAAADU/JLzAR0_A2W4/s1600-h/listClient.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260093118751216610" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_2gKUWor2qvw/SP-a0oSkk-I/AAAAAAAAADU/JLzAR0_A2W4/s320/listClient.jpg" border="0" /&gt;&lt;/a&gt;Esta página exibe uma lista de Clientes cadastrados e possibilita a alteração (chama outro formulário através do método do bean clientview) e/ou exclusão dos mesmos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;index.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2gKUWor2qvw/SP-b5cGWaVI/AAAAAAAAADc/1X-Zgx-n2EU/s1600-h/index.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260094300889704786" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_2gKUWor2qvw/SP-b5cGWaVI/AAAAAAAAADc/1X-Zgx-n2EU/s320/index.jpg" border="0" /&gt;&lt;/a&gt;Esta página contém a entrada principal da nossa aplicação, nela possui chamadas para os demais formulários.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero que tenham gostado deste tutorial simples...&lt;br /&gt;e qualder duvida é só deixar em comentários.&lt;br /&gt;&lt;br /&gt;Valeuwww... =P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2263086889761718156-7795559929734255006?l=fusilli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fusilli.blogspot.com/feeds/7795559929734255006/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2263086889761718156&amp;postID=7795559929734255006' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/7795559929734255006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/7795559929734255006'/><link rel='alternate' type='text/html' href='http://fusilli.blogspot.com/2008/10/crud-com-jsf-e-jpa-parte33.html' title='CRUD com JSF e JPA - parte3/3'/><author><name>Fabio Fusilli</name><uri>http://www.blogger.com/profile/12691476934652683970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_2gKUWor2qvw/SP-XKCNgeHI/AAAAAAAAAC0/b-PSuO-auQo/s72-c/formCity.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2263086889761718156.post-5772281211438996143</id><published>2008-02-18T20:20:00.001-08:00</published><updated>2008-02-18T20:20:32.171-08:00</updated><title type='text'>CRUD com JSF e JPA - parte2/3</title><content type='html'>&lt;p&gt;Agora iremos criar a classe ClientController no pacote &lt;font color="#ff0000"&gt;com.tutorialday.controller&lt;/font&gt; , a mesma ser&amp;#225; o nosso FacesBean.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000a0"&gt;CLASSE ClientController&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;package&lt;/b&gt; com.tutorialday.controller;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; java.util.List;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; javax.faces.model.DataModel;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; javax.faces.model.ListDataModel;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; javax.faces.model.SelectItem;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; com.tutorialday.dao.BaseDao;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; com.tutorialday.model.City;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;import&lt;/b&gt; com.tutorialday.model.Client;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; &lt;b&gt;class&lt;/b&gt; ClientController {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;private&lt;/b&gt; Client client;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;private&lt;/b&gt; City city;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;private&lt;/b&gt; DataModel model;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;private&lt;/b&gt; String ccity;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String getCcity() {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; ccity;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; &lt;b&gt;void&lt;/b&gt; setCcity(String ccity) {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;this&lt;/b&gt;.ccity = ccity;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; City getCity() {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; city;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; &lt;b&gt;void&lt;/b&gt; setCity(City city) {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;this&lt;/b&gt;.city = city;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; Client getClient() {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; client;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; &lt;b&gt;void&lt;/b&gt; setClient(Client client) {&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;this&lt;/b&gt;.client = client;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE CRIA UM OBJETO CLIENT&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String newClient(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;this&lt;/b&gt;.client = &lt;b&gt;new&lt;/b&gt; Client();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;newClient&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A PERSIST&amp;#202;NCIA DO OBJETO CLIENT&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String create(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; cdao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;City city = cdao.findCityByName(ccity); &lt;font color="#00ff00"&gt;// FAZENDO CONSULTA&lt;/font&gt; PELO NOME DA CIDADE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;setCity(city); &lt;/font&gt;&lt;font color="#00ff00"&gt;// &amp;quot;SETANDO&amp;quot; A CIDADE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;Client&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;Client&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;client.setCity(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;dao.create(client);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_creCli&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A EXCLUS&amp;#195;O DO OBJETO CLIENT&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String delete(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;Client&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;Client&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;Client client = (Client) model.getRowData();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;dao.delete(client);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_delCli&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE CATA O OBJETO CLIENT DA DATATABLE (PAGINA)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String edit(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;Client client = (Client) model.getRowData();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;setClient(client);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;editCli&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A ALTERA&amp;#199;&amp;#195;O DO OBJETO CLIENT&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String update(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; cdao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;City city = cdao.findCityByName(ccity);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;setCity(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;Client&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;Client&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;client.setCity(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;dao.update(client);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_upd&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE CRIA UM OBJETO CITY&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String newCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;this&lt;/b&gt;.city = &lt;b&gt;new&lt;/b&gt; City();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;newCity&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A PERSIST&amp;#202;NCIA DO OBJETO CITY&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String createCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; cdao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;cdao.create(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_creCity&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A EXCLUS&amp;#195;O DO OBJETO CITY&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String deleteCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;City city = (City) model.getRowData();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;dao.delete(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_delCity&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE CATA O OBJETO CITY DA DATATABLE (PAGINA)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String editCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;City city = (City) model.getRowData();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;setCity(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;editCity&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE MANIPULA A ALTERA&amp;#199;&amp;#195;O DO OBJETO CITY&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; String updateCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;dao.update(city);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; &amp;quot;success_upd&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE RETORNA UMA LISTA DE CLIENT PARA O&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// DATATABLE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; DataModel getAllClient(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;Client&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;Client&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;model = &lt;b&gt;new&lt;/b&gt; ListDataModel(dao.allClient());&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; model;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE RETORNA UMA LISTA DE CITY PARA O DATATABLE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; DataModel getAllCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;City&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;City&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;model = &lt;b&gt;new&lt;/b&gt; ListDataModel(dao.allCity());&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; model;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;// METODO QUE RETORNA UMA LISTA COM OS NOMES DAS CITYS &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;//PARA O SELECTITEMS (PAGINA)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;public&lt;/b&gt; List getListNameCity(){&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;BaseDao&amp;lt;SelectItem&amp;gt; dao = &lt;b&gt;new&lt;/b&gt; BaseDao&amp;lt;SelectItem&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;b&gt;return&lt;/b&gt; dao.listCity();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Devemos agora criar um o arquivo &lt;font color="#ff0000"&gt;persistence.xml&lt;/font&gt; no diret&amp;#243;rio META-INF que criamos, este arquivo mapear&amp;#225; nossas classes models e o banco de dados.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000a0"&gt;ARQUIVO persistence.xml&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;persistence xmlns=&amp;quot;http://java.sun.com/xml/ns/persistence&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/persistence persistence_1_0.xsd&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;persistence-unit name=&amp;quot;tutorial&amp;quot; transaction-type=&amp;quot;RESOURCE_LOCAL&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;provider&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;oracle.toplink.essentials.PersistenceProvider&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/provider&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;class&amp;gt;com.tutorialday.model.Client&amp;lt;/class&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;class&amp;gt;com.tutorialday.model.City&amp;lt;/class&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;properties&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;property name=&amp;quot;toplink.logging.level&amp;quot; value=&amp;quot;FINE&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.driver&amp;quot; value=&amp;quot;com.ibm.db2.jcc.DB2Driver&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.url&amp;quot; value=&amp;quot;jdbc:db2://localhost:50000/TUTORIAL&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.password&amp;quot; value=&amp;quot;&lt;font color="#ff0000"&gt;SENHA AQUI&lt;/font&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.user&amp;quot; value=&amp;quot;&lt;font color="#ff0000"&gt;USUARIO AQUI&lt;/font&gt;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/properties&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;!-- MySQL DataBase&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;properties&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;property name=&amp;quot;toplink.logging.level&amp;quot; value=&amp;quot;FINE&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.driver&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;value=&amp;quot;com.mysql.jdbc.Driver&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.url&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;value=&amp;quot;jdbc:mysql://localhost:3306/TUTORIAL&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.password&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;property name=&amp;quot;toplink.jdbc.user&amp;quot; value=&amp;quot;root&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;/properties&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;--&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/persistence-unit&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/persistence&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Devemos observar que temos em coment&amp;#225;rio neste XML a configura&amp;#231;&amp;#227;o para o banco de dados MySQL(em fonte verde), n&amp;#227;o esque&amp;#231;a de colocar o usu&amp;#225;rio e a senha corretamente do seu banco de dados. &lt;/p&gt;  &lt;p&gt;Para finalizarmos esta segunda etapa deste tutorial agora iremos mapear o nosso FacesBean e fazer a regra de navega&amp;#231;&amp;#227;o no arquivo &lt;font color="#ff0000"&gt;faces-config.xml&lt;/font&gt; que se encontra dentro de ../WebContent/WEB-INF/ . Entre as tags &lt;font color="#ff0000"&gt;&amp;lt;faces-config&amp;gt; &amp;lt;/faces-config&amp;gt;&lt;/font&gt;&amp;#160; , devemos adicionar as tags abaixo:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#00ff00"&gt;&amp;lt;!-- Bean ClientController --&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;managed-bean&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;managed-bean-name&amp;gt;clientView&amp;lt;/managed-bean-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;managed-bean-class&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;com.tutorialday.controller.ClientController&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/managed-bean-class&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;managed-bean-scope&amp;gt;session&amp;lt;/managed-bean-scope&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/managed-bean&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;newCity&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/index.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;newCity&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/formCity.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;newClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/index.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;newClient&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/formClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;listCity&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/index.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;ListCity&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listCity.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;listClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/index.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;ListClient&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;successCreCity&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/formCity.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;success_creCity&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listCity.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;successDelCity&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/listCity.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;success_delCity&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listCity.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;successCreClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/formClient.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;success_creCli&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;successDelClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/listClient.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;success_delCli&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;editClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/listClient.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;editCli&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/alterClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;display-name&amp;gt;successUpdClient&amp;lt;/display-name&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-view-id&amp;gt;/alterClient.jsp&amp;lt;/from-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;from-outcome&amp;gt;success_upd&amp;lt;/from-outcome&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;to-view-id&amp;gt;/listClient.jsp&amp;lt;/to-view-id&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-case&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff8000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Pronto! Temos nosso projeto configurado, n&amp;#227;o podemos esquecer de colocar as seguintes JARS dentro do diret&amp;#243;rio ../WebContent/WEB-INF/lib/ :&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; Db2jcc.jar&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; Db2jcc_license_cu.jar&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; Ejb3-persistence.jar&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; Mysql-connector-java-5.0.X-bin.jar (Caso use o MySQL)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; Toplink-essentials.jar&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;#183; JARS para o JSF&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Obs: As JARS do &lt;i&gt;framework&lt;/i&gt; JSF geralmente s&amp;#227;o adicionados automaticamente pela IDE, no caso da IDE Eclipse-Rational Software Architect &amp;#233; adicionado apenas a JAR jsf-ibm.jar .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;No proximo post iremos finalizar este tutorial com a cria&amp;#231;&amp;#227;o das p&amp;#225;ginas JSPs(View).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At&amp;#233; maissss............... &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2263086889761718156-5772281211438996143?l=fusilli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fusilli.blogspot.com/feeds/5772281211438996143/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2263086889761718156&amp;postID=5772281211438996143' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/5772281211438996143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/5772281211438996143'/><link rel='alternate' type='text/html' href='http://fusilli.blogspot.com/2008/02/crud-com-jsf-e-jpa-parte23.html' title='CRUD com JSF e JPA - parte2/3'/><author><name>Fabio Fusilli</name><uri>http://www.blogger.com/profile/12691476934652683970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2263086889761718156.post-5217929514148596265</id><published>2008-01-20T09:12:00.000-08:00</published><updated>2008-01-20T11:43:32.092-08:00</updated><title type='text'>CRUD com JSF e JPA - parte1/3</title><content type='html'>Neste Tutorial irei mostrar como fazer um CRUD (Create, Read, Update, Delete) utilizando os frameworks JSF(JavaServer Faces) e JPA(Java Persistence API).&lt;br /&gt;&lt;br /&gt;Recursos necessários:&lt;br /&gt;IDE de desenvolvimento Java (Netbeans ou Eclipse).&lt;br /&gt;Banco de dados DB2 ou MySQL.&lt;br /&gt;Oracle TopLink Essential (funcionalidades para o JPA), pode ser obtido em : &lt;a href="http://www.oracle.com/technology/jpa"&gt;www.oracle.com/technology/jpa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Primeiramente vamos criar o Banco de Dados, abaixo temos uma figura do modelo do banco TUTORIAL e suas SQLs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5157608961624756610" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_2gKUWor2qvw/R5OCBkAD0YI/AAAAAAAAAAs/y2ov132_yCQ/s320/tutorialjsd_jpa.JPG" border="0" /&gt;&lt;br /&gt;Figura 1: TUTORIAL DATABASE&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;br /&gt;CREATE DATABASE TUTORIAL;&lt;br /&gt;USE TUTORIAL;&lt;br /&gt;CREATE TABLE CITY(&lt;br /&gt;ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,&lt;br /&gt;CITY VARCHAR(30));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE TABLE CLIENT(&lt;br /&gt;ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,&lt;br /&gt;NAME VARCHAR(50),&lt;br /&gt;ADDRESS VARCHAR(100),&lt;br /&gt;ID_CITY INT,&lt;br /&gt;CONSTRAINT CLI_CITY_FK FOREIGN KEY(ID_CITY) REFERENCES CITY(ID)&lt;br /&gt;); &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;br /&gt;Agora Utilizando sua IDE preferida devemos criar um novo projeto Web utilizando o framework JSF.&lt;br /&gt;Com o projeto iniciado devemos criar três pacotes e um diretório como mostra a figura 2:&lt;br /&gt;· Pacote – com.tutorialday.controller&lt;br /&gt;· Pacote – com.tutorialday.dao&lt;br /&gt;· Pacote – com.tutorialday.model&lt;br /&gt;· Diretório – META-INF &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5157609747603771794" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_2gKUWor2qvw/R5OCvUAD0ZI/AAAAAAAAAA0/Gd8NCiEk9Qw/s320/tutorialjsd_jpa2.JPG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Figura 2: Estrutura do Projeto&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;Criaremos agora as classes Entitys (City, Client) no pacote &lt;span style="color:#ff0000;"&gt;com.tutorialday.model&lt;/span&gt;, abaixo segue o source das mesmas. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;CLASSE City&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;package com.tutorialday.model;&lt;br /&gt;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;&lt;br /&gt;import javax.persistence.CascadeType;&lt;br /&gt;import javax.persistence.Column;&lt;br /&gt;import javax.persistence.Entity;&lt;br /&gt;import javax.persistence.GeneratedValue;&lt;br /&gt;import javax.persistence.GenerationType;&lt;br /&gt;import javax.persistence.Id;&lt;br /&gt;import javax.persistence.OneToMany;&lt;br /&gt;import javax.persistence.Table;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Entity&lt;br /&gt;@Table(name="city")&lt;br /&gt;public class City {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Id&lt;br /&gt;@Column(name="id")&lt;br /&gt;@GeneratedValue(strategy=GenerationType.IDENTITY)&lt;br /&gt;private Integer id;&lt;br /&gt;&lt;br /&gt;@Column(name="city")&lt;br /&gt;private String city;&lt;br /&gt;&lt;br /&gt;@OneToMany(cascade=CascadeType.ALL, mappedBy="city")&lt;br /&gt;private Collection&lt;client&gt; client;&lt;br /&gt;&lt;br /&gt;public String getCity() {&lt;br /&gt;return city;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setCity(String city) {&lt;br /&gt;this.city = city;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Collection&lt;client&gt; getClient() {&lt;br /&gt;return client;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setClient(Collection&lt;client&gt; client) {&lt;br /&gt;this.client = client;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getId() {&lt;br /&gt;return id;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setId(Integer id) {&lt;br /&gt;this.id = id;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;CLASSE Client&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;package com.tutorialday.model;&lt;br /&gt;&lt;br /&gt;import javax.persistence.Column;&lt;br /&gt;import javax.persistence.Entity;&lt;br /&gt;import javax.persistence.GeneratedValue;&lt;br /&gt;import javax.persistence.GenerationType;&lt;br /&gt;import javax.persistence.Id;&lt;br /&gt;import javax.persistence.JoinColumn;&lt;br /&gt;import javax.persistence.ManyToOne;&lt;br /&gt;import javax.persistence.Table;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Entity&lt;br /&gt;@Table(name="client")&lt;br /&gt;public class Client {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Id&lt;br /&gt;@Column(name="id")&lt;br /&gt;@GeneratedValue(strategy=GenerationType.IDENTITY)&lt;br /&gt;private Integer id;&lt;br /&gt;&lt;br /&gt;@Column(name="name")&lt;br /&gt;private String name;&lt;br /&gt;&lt;br /&gt;@Column(name="address")&lt;br /&gt;private String address;&lt;br /&gt;&lt;br /&gt;@ManyToOne&lt;br /&gt;@JoinColumn(name="id_city", nullable = false)&lt;br /&gt;private City city;&lt;br /&gt;&lt;br /&gt;public String getAddress() {&lt;br /&gt;return address;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setAddress(String address) {&lt;br /&gt;this.address = address;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public City getCity() {&lt;br /&gt;return city;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setCity(City city) {&lt;br /&gt;this.city = city;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getId() {&lt;br /&gt;return id;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setId(Integer id) {&lt;br /&gt;this.id = id;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getName() {&lt;br /&gt;return name;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setName(String name) {&lt;br /&gt;this.name = name;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;Com nossas Classes Entitys pronta, vamos criar agora a classe &lt;span style="color:#ff0000;"&gt;BaseDao&lt;/span&gt; no pacote &lt;span style="color:#ff0000;"&gt;com.tutorialday.dao&lt;/span&gt; , a mesma é uma classe genérica que contém métodos genéricos e métodos específicos para persistência e manipulação dos nossos “objetos”.&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;CLASSE BaseDao&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;package com.tutorialday.dao;&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.faces.model.SelectItem;&lt;br /&gt;import javax.persistence.EntityManager;&lt;br /&gt;import javax.persistence.EntityManagerFactory;&lt;br /&gt;import javax.persistence.Persistence;&lt;br /&gt;import javax.persistence.Query;&lt;br /&gt;&lt;br /&gt;import com.tutorialday.model.City;&lt;br /&gt;&lt;br /&gt;public class BaseDao&lt;t&gt; {&lt;br /&gt;private static EntityManagerFactory emf;&lt;br /&gt;&lt;br /&gt;private EntityManager getEntityManager(){&lt;br /&gt;return emf.createEntityManager();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public BaseDao(){&lt;br /&gt;emf =&lt;br /&gt;Persistence.createEntityManagerFactory("tutorial");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#33ff33;"&gt;// METODO PARA PERSISTIR&lt;/span&gt;&lt;br /&gt;public boolean create(T obj){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;em.getTransaction().begin();&lt;br /&gt;em.persist(obj);&lt;br /&gt;em.getTransaction().commit();&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;catch (Exception ex){&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;em.getTransaction().rollback();&lt;br /&gt;return false;&lt;br /&gt;} finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#33ff33;"&gt;// METODO PARA ATUALIZAR&lt;/span&gt;&lt;br /&gt;public boolean update(T obj){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;em.getTransaction().begin();&lt;br /&gt;em.merge(obj);&lt;br /&gt;em.getTransaction().commit();&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;catch (Exception ex){&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;em.getTransaction().rollback();&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#33ff33;"&gt;// METODO PARA EXCLUIR&lt;/span&gt;&lt;br /&gt;public boolean delete(T obj){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;em.getTransaction().begin();&lt;br /&gt;obj = em.merge(obj);&lt;br /&gt;em.remove(obj);&lt;br /&gt;em.getTransaction().commit();&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;catch (Exception ex){&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;em.getTransaction().rollback();&lt;br /&gt;return false;&lt;br /&gt;} finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;span style="color:#33ff33;"&gt;// METODO QUE RETORNA UMA LISTA DE CLIENT&lt;/span&gt;&lt;br /&gt;public List allClient(){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;Query usu = em.createQuery("select object(c) from Client as c");&lt;br /&gt;return usu.getResultList();&lt;br /&gt;}catch(Exception e){&lt;br /&gt;return null;&lt;br /&gt;}finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;span style="color:#33ff33;"&gt;// METODO QUE RETORNA UMA LISTA DE CITY&lt;/span&gt;&lt;br /&gt;public List allCity(){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;Query cty = em.createQuery("select object(ct) from City as ct");&lt;br /&gt;return cty.getResultList();&lt;br /&gt;}catch(Exception e){&lt;br /&gt;return null;&lt;br /&gt;}finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;span style="color:#33ff33;"&gt;// METODO QUE RETORNA UMA LISTA DE NOMES DE CIDADES&lt;/span&gt;&lt;br /&gt;@SuppressWarnings("unchecked")&lt;br /&gt;public List&lt;selectitem&gt; listCity(){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;Query city = em.createQuery("select ct.city from City as ct");&lt;br /&gt;List&lt;city&gt; list0 = city.getResultList();&lt;br /&gt;List &lt;selectitem&gt;list = new ArrayList&lt;selectitem&gt;();&lt;br /&gt;int i;&lt;br /&gt;for (i=0; i &lt;&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ff6600;"&gt;&lt;span style="color:#33ff33;"&gt;// METODO QUE RETORNA UM OBJETO CITY PEGANDO COMO PARAMETO O NOME DA CIDADE&lt;/span&gt;&lt;br /&gt;@SuppressWarnings("unchecked")&lt;br /&gt;public T findCityByName(String cty){&lt;br /&gt;EntityManager em = getEntityManager();&lt;br /&gt;try{&lt;br /&gt;Query city = em.createQuery("select object(ct) from City as ct where ct.city&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;span style="color:#ff6600;"&gt;like ?1" ).setParameter(1,cty+"%");&lt;br /&gt;return (T) city.getSingleResult();&lt;br /&gt;}catch(Exception e){&lt;br /&gt;return null;&lt;br /&gt;}finally {&lt;br /&gt;em.close();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#ffffff;"&gt;Na segunda parte iremos dar continuidade deste tutorial com a criação do FacesBean, mapeamento das classes Entitys e fazer a regra de navegação no arquivo faces-config.xml.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="color:#000099;"&gt;=) ...&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2263086889761718156-5217929514148596265?l=fusilli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fusilli.blogspot.com/feeds/5217929514148596265/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2263086889761718156&amp;postID=5217929514148596265' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/5217929514148596265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2263086889761718156/posts/default/5217929514148596265'/><link rel='alternate' type='text/html' href='http://fusilli.blogspot.com/2008/01/crud-com-jsf-e-jpa-parte13.html' title='CRUD com JSF e JPA - parte1/3'/><author><name>Fabio Fusilli</name><uri>http://www.blogger.com/profile/12691476934652683970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_2gKUWor2qvw/R5OCBkAD0YI/AAAAAAAAAAs/y2ov132_yCQ/s72-c/tutorialjsd_jpa.JPG' height='72' width='72'/><thr:total>4</thr:total></entry></feed>
