<?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:blogger='http://schemas.google.com/blogger/2008' 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-7734915230263166891</id><updated>2026-10-04T22:27:51.889+01:00</updated><category term="Java"/><category term="Net Beans"/><category term="ORM Tools"/><category term=".Net Framework"/><category term="Access to the database"/><category term="C#"/><category term="Entity Framework"/><category term="Java Swing"/><category term="EMF"/><category term="Eclipse"/><category term="PHP"/><category term="Database"/><category term="Hibernate"/><category term="JSP"/><category term="Joomla"/><category term="Mobile"/><category term="Oracle"/><category term="Windows Forms"/><category term="Windows Phone"/><category term="Desktop Application"/><category term="Java EE"/><category term="PHP-Nuke"/><title type='text'>Practical Software</title><subtitle type='html'>Practics of software engineering and development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-2082343539268707161</id><published>2015-06-15T10:08:00.005+01:00</published><updated>2015-06-15T10:08:48.073+01:00</updated><title type='text'>Wanna study in Portugal?</title><content type='html'>Everything you need to know to apply for higher education studies in Portugal, may be found in the following links:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.studyinportugal.edu.pt/&quot; target=&quot;_blank&quot;&gt;http://www.studyinportugal.edu.pt&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.studyinportugal.edu.pt/images/guide.pdf&quot;&gt;http://www.studyinportugal.edu.pt/images/guide.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/2082343539268707161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2015/06/wanna-study-in-portugal.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2082343539268707161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2082343539268707161'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2015/06/wanna-study-in-portugal.html' title='Wanna study in Portugal?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-658484454141837501</id><published>2013-12-09T22:53:00.001+00:00</published><updated>2013-12-10T10:58:31.340+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java EE"/><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>JSP - Enhance the first JSP example with Java Beans</title><content type='html'>In the &lt;a href=&quot;http://practicalsw.blogspot.pt/2013/12/first-jsp-example.html&quot; target=&quot;_blank&quot;&gt;previous article&lt;/a&gt;, we saw a first example of using JSP, where Java was embedded into the HTML to perform the dynamic part.&lt;br /&gt;
In this article, we are going to enhance the structure of the previous example, by making use of a &lt;b&gt;Java Bean&lt;/b&gt;.&lt;br /&gt;
This structure enhances readability, and separates the code of the user interface from the code to perform computations.&lt;br /&gt;
&lt;br /&gt;
In the case of more complex applications, the structure of the &lt;a href=&quot;http://practicalsw.blogspot.pt/2013/12/first-jsp-example.html&quot; target=&quot;_blank&quot;&gt;first example&lt;/a&gt; would lead to a solution difficult to understand and maintain. The structure of the solution presented in this article is more flexible, readable and so more easy to maintain and evolve.&lt;br /&gt;
&lt;br /&gt;
So, we shall create a Net Beans project, just like in the first example, and make the same modifications to &lt;b&gt;index.jsp&lt;/b&gt;. Then, we create the new JSP file&amp;nbsp;(&lt;b&gt;newjsp.jsp&lt;/b&gt;):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxkeWWBmX1r4m1FqMK046zdRvpPzAWugrjuzllF_ruRP4tkWIUR-XpzBdRMLw7crHyjIALxun8BqYCU3GzFF_bLGMk-RWGg-7q9tntENPWPc4k-OC1GepfecCqolpIQMIlPZEYu2GNKwL/s1600/bean03.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxkeWWBmX1r4m1FqMK046zdRvpPzAWugrjuzllF_ruRP4tkWIUR-XpzBdRMLw7crHyjIALxun8BqYCU3GzFF_bLGMk-RWGg-7q9tntENPWPc4k-OC1GepfecCqolpIQMIlPZEYu2GNKwL/s640/bean03.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Contrary to what we saw in the &lt;a href=&quot;http://practicalsw.blogspot.pt/2013/12/first-jsp-example.html&quot; target=&quot;_blank&quot;&gt;First JSP Example&lt;/a&gt;, this file has not embedded the code to obtain the parameters or the calculation of the operation result. It has, instead, a &lt;i&gt;&lt;b&gt;JavaBean&lt;/b&gt;&lt;/i&gt; component that is no more than a class who are passed the parameters and performs the required calculations.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Tag&amp;nbsp;&lt;b&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;jsp:useBean&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;is an action element used&amp;nbsp;to instanciate a &lt;b&gt;&lt;i&gt;JavaBean&lt;/i&gt;&lt;/b&gt;&amp;nbsp;component. In this case, the component to instanciate is class &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Calculator&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; that is localized in the&amp;nbsp;&lt;/span&gt;package&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Beans&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;scope&lt;/b&gt;&amp;nbsp;of the&amp;nbsp;&lt;b&gt;useBean&amp;nbsp;&lt;/b&gt;is defined as &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;page&lt;/b&gt;&lt;/span&gt;, meaning that the instanced bean may be used anywhere in the current page.&lt;br /&gt;
Other possible &lt;b&gt;scopes&lt;/b&gt;&amp;nbsp;are:&lt;br /&gt;
-&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;request&lt;/span&gt;: &amp;nbsp;the bean may be used from any JSP that processes the same request.&lt;br /&gt;
-&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;session&lt;/span&gt;: &amp;nbsp;the bean may be used from any JSP in the same session of the JSP that created the bean.&lt;br /&gt;
-&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;application&lt;/span&gt;: the bean may be used from any&amp;nbsp;page in the same application of the JSP that created the bean.&lt;br /&gt;
&lt;br /&gt;
Tag&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&amp;lt;jsp:setProperty&amp;gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;is used to set the bean&#39;s parameter values. It is equivalent to invoking the setter of the identified class&#39; property, and assigning it the value of the identified parameter (obtained in the &lt;i&gt;request&lt;/i&gt;&amp;nbsp;via URL).&lt;br /&gt;
&lt;br /&gt;
Now, we only have to create our &lt;b&gt;&lt;i&gt;JavaBean&lt;/i&gt;&lt;/b&gt;:&lt;br /&gt;
- Create a&amp;nbsp;&lt;i&gt;package&amp;nbsp;&lt;/i&gt;&lt;b&gt;Beans&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd4IZOJ-ge72I1197Us7FVw-2_i5XHiel8_CfbH18IEvulqDvEcl2a-HLtO8uYek0Zzi-AZyVT-RpkQS1i_JahiD5C13rgJ8ob-Z5Q2Xveu7K0fF3oy1C4-IBe1_sX0vRlIEC6wdoTATO5/s1600/bean01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd4IZOJ-ge72I1197Us7FVw-2_i5XHiel8_CfbH18IEvulqDvEcl2a-HLtO8uYek0Zzi-AZyVT-RpkQS1i_JahiD5C13rgJ8ob-Z5Q2Xveu7K0fF3oy1C4-IBe1_sX0vRlIEC6wdoTATO5/s400/bean01.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
- Then create a new class (&lt;b&gt;Calculator&lt;/b&gt;) in that&amp;nbsp;&lt;i&gt;package&lt;/i&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_MbHYMpJQcsSQtBfODk1oetpXvthXFRyMfJnOIFw63sfTNrMBHUTbA3fFZs47FzyyVBJQksOi8RO0s4oRJzEDHlYBsSE0ev0hjG07xrSYJ4yJnhjcB_tZf8R9AWZ9Q3pFnwE9S0jl97Q/s1600/bean02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_MbHYMpJQcsSQtBfODk1oetpXvthXFRyMfJnOIFw63sfTNrMBHUTbA3fFZs47FzyyVBJQksOi8RO0s4oRJzEDHlYBsSE0ev0hjG07xrSYJ4yJnhjcB_tZf8R9AWZ9Q3pFnwE9S0jl97Q/s400/bean02.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The class&#39; code is:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;package&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;Beans;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;public class&lt;/span&gt;&amp;nbsp;Calculator {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;private int&lt;/span&gt;&amp;nbsp;lhs &amp;nbsp; = 0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;private int&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;rhs &amp;nbsp; = 0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;private int&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;result= 0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;private String&lt;/span&gt;&amp;nbsp;oper = &quot;&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;public int&lt;/span&gt;&amp;nbsp;getLhs() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;return&amp;nbsp;&lt;/span&gt;lhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; public void setLhs(&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lhs) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;this.&lt;/span&gt;lhs = lhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;public int&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;getRhs() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;return&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;public void&amp;nbsp;&lt;/span&gt;setRhs(&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;rhs) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;this.&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;rhs = rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;public String&amp;nbsp;&lt;/span&gt;getOper() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;return&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;oper;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;public void&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;setOper(&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;String&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;oper) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;this.&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;oper = oper;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;public int&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;getResult() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;if&lt;/span&gt;(oper.equals(&quot;add&quot;)){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = lhs + rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #3d85c6;&quot;&gt;else if&lt;/span&gt;(oper.equals(&quot;sub&quot;)){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = lhs - rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;else if&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;(oper.equals(&quot;mul&quot;)){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = lhs * rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;else if&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;(oper.equals(&quot;div&quot;)){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result = lhs / rhs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #3d85c6; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;return&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;result;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The result is exactly the same as the one obtained in the First JSP Example.&lt;br /&gt;
&lt;br /&gt;
See you next time!!!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Related articles:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://practicalsw.blogspot.pt/2013/12/first-jsp-example.html&quot; target=&quot;_blank&quot;&gt;First JSP Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/658484454141837501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2013/12/jsp-enhance-first-jsp-example-with-java.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/658484454141837501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/658484454141837501'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2013/12/jsp-enhance-first-jsp-example-with-java.html' title='JSP - Enhance the first JSP example with Java Beans'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxkeWWBmX1r4m1FqMK046zdRvpPzAWugrjuzllF_ruRP4tkWIUR-XpzBdRMLw7crHyjIALxun8BqYCU3GzFF_bLGMk-RWGg-7q9tntENPWPc4k-OC1GepfecCqolpIQMIlPZEYu2GNKwL/s72-c/bean03.PNG" height="72" width="72"/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-5772088912330642755</id><published>2013-12-09T21:43:00.000+00:00</published><updated>2013-12-10T10:57:30.885+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>First JSP example</title><content type='html'>Java Server Pages (JSP) is a Java technology that allows creating web pages with a mix of static HTML and dynamic HTML. The dynamic part is generated by using Java language scripts that are embbeded in the HTML code through special Tags, recognized by the application server.&lt;br /&gt;
&lt;br /&gt;
In this article we will see a small example that will serve to introduce some of the JSP tags and help in understanding how does Java work in the middle of all the rest.&lt;br /&gt;
&lt;br /&gt;
The example is made with NetBeans IDE 7.2.1, and it consists of a small calculator that will allow to perform the four arithmetic operations on two integer operands.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s start by creating a new project in NetBeans, of type &lt;b&gt;Web Application&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcF5p8fB40mdRrK5aGwJ5mgBzDrQCg1vcIPuBgxk2Dqa-RJ2peo4Oklid4TMx2U0pOJBVZ7K7JHYnQs51qchusomHiyIsZX7-_o5DigAG9Qn6HqroeuQR_wtAYjaFLrwZLbtAhaikObU_/s1600/jsp01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcF5p8fB40mdRrK5aGwJ5mgBzDrQCg1vcIPuBgxk2Dqa-RJ2peo4Oklid4TMx2U0pOJBVZ7K7JHYnQs51qchusomHiyIsZX7-_o5DigAG9Qn6HqroeuQR_wtAYjaFLrwZLbtAhaikObU_/s400/jsp01.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As applicational server we will use &lt;b&gt;GlassFish&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpDz95eDutIxmPLLT2C2ygjixfF1asy7NDBn7lujrT1aiJr8yNERAfJFvf2bX5YBcJoZkvhR7dZS6vIYEEdSvsOmdu1_jh_A-5vMHUhwSPhFApUaGzq1gQXVtmI959Y3ssW5myWkTQMFrL/s1600/jsp02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;273&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpDz95eDutIxmPLLT2C2ygjixfF1asy7NDBn7lujrT1aiJr8yNERAfJFvf2bX5YBcJoZkvhR7dZS6vIYEEdSvsOmdu1_jh_A-5vMHUhwSPhFApUaGzq1gQXVtmI959Y3ssW5myWkTQMFrL/s400/jsp02.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;(we don&#39;t select any &lt;i&gt;framework&lt;/i&gt;, in step 4 of creating a new project)&lt;br /&gt;
&lt;br /&gt;
NetBeans creates a project structure with a file &lt;b&gt;index.jsp&lt;/b&gt;, which will generate the initial page of the project:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtFrMIg-GdoWCRkBNuo-xCq738Qx4tcMOLfvQISf3UaWL1hesklF96RiruZYbgj_vT6_Kdstd3r9gQCzBMN65ri_xD3osP562comP5t8juj2rTqD5XaIQ3XdzlNtPYMLdv3osF47qnFX0X/s1600/jsp03.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;195&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtFrMIg-GdoWCRkBNuo-xCq738Qx4tcMOLfvQISf3UaWL1hesklF96RiruZYbgj_vT6_Kdstd3r9gQCzBMN65ri_xD3osP562comP5t8juj2rTqD5XaIQ3XdzlNtPYMLdv3osF47qnFX0X/s320/jsp03.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial contents of file &lt;b&gt;index.jsp&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRBeNuOOXIcAbZs6PzkzG_PIeQXcGED6ixFaXp_tUJkHbzljaCQiE1zXeiA5xDnkaSd5lzZKTH3S92NBsl-SZncoPxqQzIQO2SUeOlJ5VbBpH_mrSQFIVhtI2jMyxrXISgDTOZR3JznZaC/s1600/jsp04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRBeNuOOXIcAbZs6PzkzG_PIeQXcGED6ixFaXp_tUJkHbzljaCQiE1zXeiA5xDnkaSd5lzZKTH3S92NBsl-SZncoPxqQzIQO2SUeOlJ5VbBpH_mrSQFIVhtI2jMyxrXISgDTOZR3JznZaC/s400/jsp04.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Let&#39;s now modify the contents of file &lt;b&gt;index.jsp&lt;/b&gt;&amp;nbsp;so that it contains a form with our calculator:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZGiZ2j_fFiUOrDz7GJVq8iKL49lsNdDyWkz8OGQkCtQU9dTjO7hZaExrglsXhhPaCNUyEsOl-sMIe_FsWlkpEdSF3pnnRdqmyu1eGqGGfB28Zjhnaoj4B_SRY5dh6BVdDZKLNiIlRpk3x/s1600/zjsp00.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;478&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZGiZ2j_fFiUOrDz7GJVq8iKL49lsNdDyWkz8OGQkCtQU9dTjO7hZaExrglsXhhPaCNUyEsOl-sMIe_FsWlkpEdSF3pnnRdqmyu1eGqGGfB28Zjhnaoj4B_SRY5dh6BVdDZKLNiIlRpk3x/s640/zjsp00.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
When submitting this form, another &lt;b&gt;jsp&lt;/b&gt; file will be &lt;i&gt;called&lt;/i&gt;&amp;nbsp;and the form data will be passed to it. We named this new file&amp;nbsp;&lt;b&gt;newjsp.jsp&lt;/b&gt;.&lt;br /&gt;
To create this new file we select File --&amp;gt; New File --&amp;gt; category=Web / File Type = JSP, in the menu bar, or New --&amp;gt; JSP, in the contextual menu that shows up when clicking the mouse&#39;s right button on our project&#39;s name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3BoPnyze_3qoe6tUP5Z2W1RXsvWpCxZi1Oyqq9tKhGtOfIEfma0Q9Ae7g4RiGnxVdegeWvLMYrIHftKJyEWjGCW-cqCC6RzC19BRwr9l3gPTJnZw35htMLTfY8pR8uhQJ-727wHKRXVWC/s1600/jsp05.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3BoPnyze_3qoe6tUP5Z2W1RXsvWpCxZi1Oyqq9tKhGtOfIEfma0Q9Ae7g4RiGnxVdegeWvLMYrIHftKJyEWjGCW-cqCC6RzC19BRwr9l3gPTJnZw35htMLTfY8pR8uhQJ-727wHKRXVWC/s400/jsp05.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBXRFe8ABIKekIfd2mJvWmvhengm_p6O1WbQG9K8MUyQzbX0TZomYxQRX-QmNeNnWTXOgfTj_wsu1Hh0A1jy8l5SicXwN1h2JBWzXZiQmIErgZJ5rxDSmjsAkRwofpS0QxzVc4N7UAVH7Q/s1600/jsp06.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBXRFe8ABIKekIfd2mJvWmvhengm_p6O1WbQG9K8MUyQzbX0TZomYxQRX-QmNeNnWTXOgfTj_wsu1Hh0A1jy8l5SicXwN1h2JBWzXZiQmIErgZJ5rxDSmjsAkRwofpS0QxzVc4N7UAVH7Q/s400/jsp06.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial contents of file &lt;b&gt;newjsp.jsp&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy725v5WtbAQ8farZ7RJlaJjLYOKuuPiztEt115w4h3GOuIqE7-hSxhy9Zj9s0nnr4tviPpj0iA1ms531LvAVjW0qvT2GNTujBeChGXp2qpSB2nZTKGupHG4a_twD4FjsgR_U5jiRiy2vC/s1600/jsp07.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;305&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy725v5WtbAQ8farZ7RJlaJjLYOKuuPiztEt115w4h3GOuIqE7-hSxhy9Zj9s0nnr4tviPpj0iA1ms531LvAVjW0qvT2GNTujBeChGXp2qpSB2nZTKGupHG4a_twD4FjsgR_U5jiRiy2vC/s640/jsp07.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Then, we modify the generated contents as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgECZIfMnXKOz2mpXcv6iKV7f2_evmkMXGIweT3MkUGjxBR_H9hLL1_JfM9ThjuDoexXWCTmsK1t_j1sXvsaQSLndEqT3xbtwpgcpgdO-5keH01yTe-mutER2jKnkUNEoqg6sLziL0MIdy9/s1600/jsp09-newjsp.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;409&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgECZIfMnXKOz2mpXcv6iKV7f2_evmkMXGIweT3MkUGjxBR_H9hLL1_JfM9ThjuDoexXWCTmsK1t_j1sXvsaQSLndEqT3xbtwpgcpgdO-5keH01yTe-mutER2jKnkUNEoqg6sLziL0MIdy9/s640/jsp09-newjsp.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The tag &amp;nbsp;&lt;b&gt;&amp;lt;% ... %&amp;gt;&lt;/b&gt;&amp;nbsp; allows to embed java code in the HTML code existing inside a JSP file.&lt;br /&gt;
&lt;br /&gt;
What the code above is doing is receiving (GET) the parameters sent to the server when submitting the&amp;nbsp;&lt;b&gt;form&lt;/b&gt;, in&amp;nbsp;&lt;b&gt;index.jsp&lt;/b&gt;, through parameters sent via the URL (&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;request.getParameter(...)&lt;/span&gt;); convert the values that we need into numeric integer values (&lt;b&gt;int)&lt;/b&gt;, (&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Integer.valueOf(...).intValue()&lt;/span&gt;); and, then, make the computations, depending on the previously selected operator, which is passed to &lt;b&gt;newjsp.jsp&lt;/b&gt;&amp;nbsp;with the key &quot;oper&quot;.&lt;br /&gt;
&lt;br /&gt;
Our example, when executing, looks like this:&lt;br /&gt;
- File index.jsp generates the following HTML contents:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcfqDCAeWwqbs4OuDT1E5TwQrXSaUUqrJP3l73_DlotN2v7IuzlsOiRtckPuyxBjmAO6RoBdoTeFOJCvo2lQOZP7UZEkZ0gZP524yj1PlGdlthDscoeOJGk4mozGeYUEjWhMgGAXXjZha1/s1600/zjsp01.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcfqDCAeWwqbs4OuDT1E5TwQrXSaUUqrJP3l73_DlotN2v7IuzlsOiRtckPuyxBjmAO6RoBdoTeFOJCvo2lQOZP7UZEkZ0gZP524yj1PlGdlthDscoeOJGk4mozGeYUEjWhMgGAXXjZha1/s320/zjsp01.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
- When submiting the form, the file newjsp.jsp generates the following:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWXEfj9IzyqqRgZzjjeHfP4B6asz52jJbCQ4tOM-9zeum9CKVdLECFxMSxhmbPstfSqcS33jbJ_HLOYc4lI5iU7Us2-95zq2Lm-soszoFMXDLuUZYWAQAvkRMNKM0et9gx0T1ciuiMI-c/s1600/zjsp02.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWXEfj9IzyqqRgZzjjeHfP4B6asz52jJbCQ4tOM-9zeum9CKVdLECFxMSxhmbPstfSqcS33jbJ_HLOYc4lI5iU7Us2-95zq2Lm-soszoFMXDLuUZYWAQAvkRMNKM0et9gx0T1ciuiMI-c/s320/zjsp02.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
(Note, in the previous figure, the URL with the parameters passed to &lt;b&gt;newjsp.jsp&lt;/b&gt;&amp;nbsp;appearing in the URL field, in the browser).&lt;br /&gt;
&lt;br /&gt;
If, when executing the project in NetBeans, a message appears stating that the URL doesn&#39;t exist in the server, then we must access the Glassfish&#39;s administration page, and start/launch the project from there.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizegopmAFXuFxTpT1veFaVBhgYImunYXCbIcBFOaGpjL5z6qzcWg7pkrhlAgea6jUUrwVM1mxOxD6FK-S6ycwOFTM6PFIcYOAfbaIO1liYf45pU2cB5NvFlphNKT4S6IbulmmP5WAVZK8M/s1600/jsp12.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;324&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizegopmAFXuFxTpT1veFaVBhgYImunYXCbIcBFOaGpjL5z6qzcWg7pkrhlAgea6jUUrwVM1mxOxD6FK-S6ycwOFTM6PFIcYOAfbaIO1liYf45pU2cB5NvFlphNKT4S6IbulmmP5WAVZK8M/s640/jsp12.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The port where GlassFish has its administration page may be found in Glassfish&#39;s startup log, which appears in NetBeans when making Build or Deploy of the project:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;INFO: WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:8080]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;INFO: WEB0169: Created HTTP listener [http-listener-2] on host/port [0.0.0.0:8181]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;INFO: WEB0169: Created HTTP listener [admin-listener] on host/port [0.0.0.0:4848]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See you next time!!!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;Related articles:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://practicalsw.blogspot.pt/2013/12/jsp-enhance-first-jsp-example-with-java.html&quot; target=&quot;_blank&quot;&gt;JSP - Enhance the first JSP example with Java Beans&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/5772088912330642755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2013/12/first-jsp-example.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/5772088912330642755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/5772088912330642755'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2013/12/first-jsp-example.html' title='First JSP example'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcF5p8fB40mdRrK5aGwJ5mgBzDrQCg1vcIPuBgxk2Dqa-RJ2peo4Oklid4TMx2U0pOJBVZ7K7JHYnQs51qchusomHiyIsZX7-_o5DigAG9Qn6HqroeuQR_wtAYjaFLrwZLbtAhaikObU_/s72-c/jsp01.PNG" height="72" width="72"/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-8942140859930173496</id><published>2012-08-17T15:40:00.001+01:00</published><updated>2015-01-18T18:14:41.898+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone"/><title type='text'>Mobile Computing - evolution and current status</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;When people talk about mobile devices, what immediately comes up to memory is the mobile phone. The mobile phone appeared after a sequence of about 100 years of inventions, which aim was to be able to &lt;b&gt;communicate from a long distance&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The first successfull telephone transmission was accomplished by Alexander Graham Bell in 1876. He and Thomas Edisson competed in the race that lead to the invention of the first telephone.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Immediately in 1877 the first commercial telephone line entered into operation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The mobile phone only appeared nearly 100 years after the first phone, adding &lt;b&gt;mobility&lt;/b&gt; to the initial goal of speaking at a long distance.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The first (analog)&amp;nbsp;mobile phone appeared in 1960. It was too big to be transported personally, so it had to be installed in vehicles.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;In 1973 appeared the first handheld mobile phone (analog).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Only in 1977 appeared the first digital cellular networks.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Currently, mobile devices, including most mobile phones have processing power, having added the goal of &lt;b&gt;mobile computing&lt;/b&gt; to the previous goals of distance communication and mobility.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;Atualmente, numa confluência de diversas linhas e diferentes objetivos de investigação, temos telefones IP (VoIP), redes celulares de comutação de pacotes (3G, 4G), dispositivos móveis de diversos tamanhos, fabricantes, e com diferentes sistemas operativos, incorporando sensores, GPS&quot;&gt;Today, in a confluence of different lines and different research goals, we have IP phones (VoIP), cellular packet switching&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot;&gt;networks&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;Atualmente, numa confluência de diversas linhas e diferentes objetivos de investigação, temos telefones IP (VoIP), redes celulares de comutação de pacotes (3G, 4G), dispositivos móveis de diversos tamanhos, fabricantes, e com diferentes sistemas operativos, incorporando sensores, GPS&quot;&gt;(3G, 4G), mobile devices of various sizes, manufacturers, and with different operating systems, incorporating sensors, GPS&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;, bússolas eletrónicas, acelerómetro, etc.&quot;&gt;, electronic compass, accelerometer, etc..&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;, bússolas eletrónicas, acelerómetro, etc.&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;O número de subscrições de redes móveis passou de pouco mais de 1000 milhões em 2002, para quase 5000 milhões em 2008.&quot;&gt;The number of mobile subscriptions rose from just over 1 billion in 2002 to almost 5 billion in 2008.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;Temos atualmente 6,8 mil milhões de pessoas no mundo, e mais de 5 mil milhões de assinaturas de redes móveis, 50% dos quais pré-pagos.&quot;&gt;We currently have 6.8 billion people worldwide, and more than 5 billion mobile subscriptions, of which 50% are prepaid.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white;&quot; title=&quot;Só no 2º trimestre de 2010, o número de smartphones (telemóveis com capacidade de computação) vendidos no mundo foi de 61,7 milhões.&quot;&gt;Only in the second quarter of 2010, the number of smartphones (mobile phones with computing capacity) sold worldwide was 61.7 million.&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot; title=&quot;Um estudo da IDC (International Data Corp) prevê que em 2015 o número de acessos à Internet através de redes móveis deverá ser superior ao número de acessos artavés de cabo ou redes locais, nos EUA.&quot;&gt;A study by IDC (International Data Corp.) predicts that by 2015 the number of Internet access via mobile networks will exceed the number of accesses through cable or local networks in the U.S..&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot; title=&quot;O cenário na Europa ocidental e no Japão deverá ser semelhante.&quot;&gt;The scenery in Western Europe and Japan should be similar.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;Globaly,&amp;nbsp;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;Globalmente, a publicidade online deverá duplicar entre 2010 e 2015.&quot;&gt;online advertising is expected to double between 2010 and 2015. The share&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;A &amp;quot;fatia&amp;quot; de publicidade online relativamente a todos os media passará de 12% para 18% no mesmo período.&quot;&gt;of online advertising within all media will increase from 12% to 18% over the same period.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot; title=&quot;A &amp;quot;fatia&amp;quot; de publicidade online relativamente a todos os media passará de 12% para 18% no mesmo período.&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot;&gt;The following figure shows the distribution of mobile devices in the world.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MOBILE DEVICES IN THE WORLD&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMgDKHsGQzdi4vr76vT19Gv7zaO-LFzapbCLnWiGEuQfnYOPI0q6tQEEU82ImrgCApMjdcPm4Hmt0xQWroauRcfJMz5L43TysPmx5n8nJtSOuUQBHeBM0IkDlnwTcrbSy8qV-d1YFVGdFJ/s1600/mobile01.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMgDKHsGQzdi4vr76vT19Gv7zaO-LFzapbCLnWiGEuQfnYOPI0q6tQEEU82ImrgCApMjdcPm4Hmt0xQWroauRcfJMz5L43TysPmx5n8nJtSOuUQBHeBM0IkDlnwTcrbSy8qV-d1YFVGdFJ/s320/mobile01.JPG&quot; height=&quot;251&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The most popular operating systems for mobile devices with computing capacity (smartphones, PDAs or tablets) are:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Android&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;iOS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Windows Phone 7 / Windows 8&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Blackberry OS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Symbian / Meego / Tizen&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The programming languages ​​most used in these operating systems (OS) are:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Android (Java)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;iOS (objective-C)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Windows Phone... /XAML/Silverlight, C#, VB.Net)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Blackberry OS (Java, C/C++, HTML5, ...)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Symbian (C/C++)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;and, in any OS, Java ME&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;When developing software for mobile devices, it is necessary to &quot;think small&quot; in the sense that we do not have the screen space of a desktop system, nor its processing power or&amp;nbsp;information&amp;nbsp;storage. In mobile devices there are less features, less processing speed and less memory than on desktop computers or laptops. Communication is also typically more expensive because it tends to be done through mobile networks.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The mobile web currently reaches 3.4 billion people (about half the world population).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The &quot;mobile&quot;&amp;nbsp;market&amp;nbsp;is more than the sale of apps. Only in 2010, the market for mobile advertising earned 11.5 billion dollars (about 8.7 billion euros).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The features of the mobile devices, such as GPS, associated with the processing capability, allow new types of applications.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;For example, location-based services (LBS, Location Based Services).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;This type of service (LBS) can be &quot;pulled&quot; by the client - the client is actively seeking and using the service - or can be &quot;pushed&quot; by the vendor - the vendor is offering information...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;As with personal computers, servers, or other larger machines, also for mobile devices we consider different levels of software:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;applications level&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;middleware or communications software level&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;low-level software (operating system kernel, device drivers, etc.)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The following table shows a set of characteristics of mobile applications by application type:&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHbLiqO8beHn-p774VgxbproAdXonFX57uh39GHINlFWMT6VhUXT6vKRWE0uiZQBDrYLCbtrFT3TTN8jGikxV5sOhPh5TIjBWmrWotwt1k1agkaaZN-PEJZbHLONkq3nqFPdkjvHRBYst/s1600/mobile02.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHbLiqO8beHn-p774VgxbproAdXonFX57uh39GHINlFWMT6VhUXT6vKRWE0uiZQBDrYLCbtrFT3TTN8jGikxV5sOhPh5TIjBWmrWotwt1k1agkaaZN-PEJZbHLONkq3nqFPdkjvHRBYst/s640/mobile02.JPG&quot; height=&quot;136&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;span style=&quot;font-family: Calibri;&quot;&gt;Brian Fling, Mobile Design and Development. O&#39;Reilly Media, Inc., August 2009.&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;(for ex.: native apps for the device have all device support, are typically complex, have excellent usability, can be developed in different programming languages​​, depending on the operating system, and, if well done, they offer offline support (ie, can be used even when there is no connection to the Internet))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Programming for mobile devices have some drawbacks:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;smaller screen&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;lower memory capacity&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;lower processing speed&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;lower &quot;disk&quot; capacity&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;But it also has some advantages:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;allows one to take advantage of a touch screen&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;take advantage of GPS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;take advantage of accelerometer&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;allows access anywhere&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;...&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;light sensor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;proximity sensor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;dígital compass&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;Simple examples of programming for mobile devices:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.pt/2012/05/first-windows-phone-app.html&quot; target=&quot;_blank&quot;&gt;First Windows Phone App&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/8942140859930173496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/08/mobile-computing-evolution-and-current.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8942140859930173496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8942140859930173496'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/08/mobile-computing-evolution-and-current.html' title='Mobile Computing - evolution and current status'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMgDKHsGQzdi4vr76vT19Gv7zaO-LFzapbCLnWiGEuQfnYOPI0q6tQEEU82ImrgCApMjdcPm4Hmt0xQWroauRcfJMz5L43TysPmx5n8nJtSOuUQBHeBM0IkDlnwTcrbSy8qV-d1YFVGdFJ/s72-c/mobile01.JPG" height="72" width="72"/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-3237525334078733036</id><published>2012-05-07T19:34:00.001+01:00</published><updated>2013-12-10T10:54:34.855+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone"/><title type='text'>First Windows Phone App</title><content type='html'>&lt;br /&gt;
In this article we make a first approach to software development for Windows Phone.&lt;br /&gt;
&lt;br /&gt;
To start, we need to install the &lt;b&gt;Windows Phone SDK 7.1&lt;/b&gt;, wich comes with a free IDE (Visual Studio Express) and with a Windows Phone Emulator, which allows you to test your apps before deploying them to a Windows Phone-based mobile device.&lt;br /&gt;
&lt;br /&gt;
In this example app, the &lt;b&gt;Visual Studio 2010&lt;/b&gt; has been used, but, of-course, Windows Phone SDK 7.1 must allways be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


Windows Phone execution model&lt;/h3&gt;
Before starting the development of our first app, just some words about the Windows Phone execution model: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Just one App may run in foreground at a given moment in time;&lt;/li&gt;
&lt;li&gt;Other Apps in execution are put into a dormant state;&lt;/li&gt;
&lt;li&gt;When the device&#39;s memory isn&#39;t enough, the operating system (OS) starts terminating Apps in the dormant state.&lt;/li&gt;
&lt;li&gt;Through their programming framework, Apps can manage their state when they are activated or deactivated. This can be used to give the user the impression that an app has always been running, even when it is stopped and later reactivated.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3&gt;


Create the Windows Phone Project &lt;/h3&gt;
&amp;nbsp;In Visual Studio (or Visual Studio Express), create a new project with the template for &quot;&lt;b&gt;Silverlight for Windows Phone&lt;/b&gt;&quot;, and type &lt;b&gt;Windows Phone Application&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGBeLoP6wvF8pjR3b-cSO2VpUP2lxDhdNp8hyphenhyphenTQTqypEqf2F3E6hcqOFn8DoseoXsQGKsrJIlsmC_0a8O7NaGYcoNBpa5hpj7-P4V6EHxdtz2P5P0Rvt494xEYhCf2f4zxoWWhCykI688/s1600/winPhoneApp001.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGBeLoP6wvF8pjR3b-cSO2VpUP2lxDhdNp8hyphenhyphenTQTqypEqf2F3E6hcqOFn8DoseoXsQGKsrJIlsmC_0a8O7NaGYcoNBpa5hpj7-P4V6EHxdtz2P5P0Rvt494xEYhCf2f4zxoWWhCykI688/s400/winPhoneApp001.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Then, select the OS version:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMc1LoPyKG-hTPF0cyMLnH8uDdQJxMpL2uWLFB_q4KBarmaSG3sbdhEYN8wd6oqvK-0k69368BcyNlF49_nG27knxokRGVBcWg8GpPbNgyAz0RsnXJvuIPsidsIbPLrVEkJgezLCrsq4nv/s1600/winPhoneApp002.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMc1LoPyKG-hTPF0cyMLnH8uDdQJxMpL2uWLFB_q4KBarmaSG3sbdhEYN8wd6oqvK-0k69368BcyNlF49_nG27knxokRGVBcWg8GpPbNgyAz0RsnXJvuIPsidsIbPLrVEkJgezLCrsq4nv/s400/winPhoneApp002.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visual studio creates the architecture of the application, which consists of only one page:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj56yEbYIM8Mvc_c_Qhm2RyuZmFCYE6Z0M5z_yZgVRzfMZPBLaYI-pXta8bwuB5ixxKj_lxlk_nQvFpG7cW_uV1Eacu5k3gkQ2GP0_xoNOl9ZDCNJpzlMQMPdH4YTkKxqODwNgiflfQH0rZ/s1600/winPhoneApp004.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj56yEbYIM8Mvc_c_Qhm2RyuZmFCYE6Z0M5z_yZgVRzfMZPBLaYI-pXta8bwuB5ixxKj_lxlk_nQvFpG7cW_uV1Eacu5k3gkQ2GP0_xoNOl9ZDCNJpzlMQMPdH4YTkKxqODwNgiflfQH0rZ/s400/winPhoneApp004.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Windows Phone applications are made of Silverlight UI page descriptions (Silverlight is a subset of XAML, a XML-based User Interface description language created by Microsoft), and code behind files in C# (although VB.Net may also be used).&lt;br /&gt;
&lt;br /&gt;
At the center of the image above, you can see two views of the MainPage.XAML, which is the description of the user interface for our application. The two views are, in the left, a graphical view of the page, and in the righ, the XAML description. You can modify the page in any of these two views, and those modifications are automatically reflected in the other view.&lt;br /&gt;
&lt;br /&gt;
By dragging and droping controls from the toolbox to the graphical view of the XAML page, you can start composing the App UI:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjucoTAwV4jwiDsnyL3KfZ3g0c8JTpMioOC_3W6DCiB34wyNg9cPq1czSVIyXGs22YrAwal-124ch7rQF4K3S5GKRq_534z2Bo1b3sn_mqE-4LPb1r71e_fQ9ZaIymIWLWbiSoglN0uG-Y/s1600/winPhoneApp003.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjucoTAwV4jwiDsnyL3KfZ3g0c8JTpMioOC_3W6DCiB34wyNg9cPq1czSVIyXGs22YrAwal-124ch7rQF4K3S5GKRq_534z2Bo1b3sn_mqE-4LPb1r71e_fQ9ZaIymIWLWbiSoglN0uG-Y/s400/winPhoneApp003.JPG&quot; width=&quot;236&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;We are building an app for converting Farenheith degrees into Celsius degrees, so we drag a few TextBlocks, a TextBox and a Button:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGbwOWDxp-l_z7DbB3GhDzvLqZIeENGID_2Ccrk3-h4zLOTQVopOezjVAr-PdC6T059KIG-_9MOUN_0cdtnlUoqZhh01illpViUdhFfmJR6qRrlGkvxI8B7Y9qinUkgvGvmwi4EGaYedpR/s1600/winPhoneApp005.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGbwOWDxp-l_z7DbB3GhDzvLqZIeENGID_2Ccrk3-h4zLOTQVopOezjVAr-PdC6T059KIG-_9MOUN_0cdtnlUoqZhh01illpViUdhFfmJR6qRrlGkvxI8B7Y9qinUkgvGvmwi4EGaYedpR/s400/winPhoneApp005.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;The XAML equivalent is:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;phone:PhoneApplicationPage &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x:Class=&quot;MinhaPhoneApp.MainPage&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:phone=&quot;clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:shell=&quot;clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mc:Ignorable=&quot;d&quot; d:DesignWidth=&quot;480&quot; d:DesignHeight=&quot;768&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FontFamily=&quot;{StaticResource PhoneFontFamilyNormal}&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FontSize=&quot;{StaticResource PhoneFontSizeNormal}&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Foreground=&quot;{StaticResource PhoneForegroundBrush}&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SupportedOrientations=&quot;PortraitOrLandscape&quot;&amp;nbsp; Orientation=&quot;Portrait&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; shell:SystemTray.IsVisible=&quot;True&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--LayoutRoot is the root grid where all page content is placed--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name=&quot;LayoutRoot&quot; Background=&quot;Transparent&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height=&quot;Auto&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height=&quot;*&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--TitlePanel contains the name of the application and page title--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Orientation=&quot;Vertical&quot; x:Name=&quot;TitlePanel&quot; Margin=&quot;12,17,0,28&quot; Grid.ColumnSpan=&quot;7&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock x:Name=&quot;ApplicationTitle&quot; Text=&quot;Minha Phone App&quot; Style=&quot;{StaticResource PhoneTextNormalStyle}&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock x:Name=&quot;PageTitle&quot; Text=&quot;ºF --&amp;gt; ºC&quot; TextAlignment=&quot;Center&quot; Margin=&quot;9,-7,0,0&quot; Style=&quot;{StaticResource PhoneTextTitle1Style}&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--ContentPanel - place additional content here--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name=&quot;ContentPanel&quot; Grid.Row=&quot;1&quot; Margin=&quot;12,0&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Height=&quot;50&quot; HorizontalAlignment=&quot;Left&quot; Margin=&quot;17,37,0,0&quot; Name=&quot;textBlock1&quot; Text=&quot;Temperatura ºF : &quot; VerticalAlignment=&quot;Top&quot; Style=&quot;{StaticResource PhoneTextLargeStyle}&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox Height=&quot;72&quot; HorizontalAlignment=&quot;Left&quot; Margin=&quot;236,25,0,0&quot; Name=&quot;textBox1&quot; Text=&quot;&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;220&quot; TextChanged=&quot;textBox1_TextChanged&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Content=&quot;Converter temperatura&quot; Height=&quot;72&quot; HorizontalAlignment=&quot;Left&quot; Margin=&quot;57,117,0,0&quot; Name=&quot;button1&quot; Click=&quot;button1_Click&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;344&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Height=&quot;173&quot; HorizontalAlignment=&quot;Left&quot; Margin=&quot;57,209,0,0&quot; Name=&quot;textBlock2&quot; Text=&quot;TextBlock&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;344&quot; Style=&quot;{StaticResource PhoneTextTitle1Style}&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/phone:PhoneApplicationPage&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note the XAML code for the button:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;Button
 Content=&quot;Converter temperatura&quot; Height=&quot;72&quot; HorizontalAlignment=&quot;Left&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Margin=&quot;57,117,0,0&quot; Name=&quot;button1&quot; Click=&quot;button1_Click&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VerticalAlignment=&quot;Top&quot; Width=&quot;344&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The event handler that shall run when the button is clicked is &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;button1_Click.&lt;/span&gt;&lt;br /&gt;
Now we need to provide the code for the event handler:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSasilmwK6qYTYWCLtdMYKG4EMNwYDDp4P2vs1-fjItYb0YQe3Qn3EKATG8wxczROzPo0nB6-auICFXgDlC06SlBeoSM9_600Y9Li1Hgj-_QJrc__vPv9x8tNRmPrbvecHYHiwdcJm9sqi/s1600/winPhoneApp006.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSasilmwK6qYTYWCLtdMYKG4EMNwYDDp4P2vs1-fjItYb0YQe3Qn3EKATG8wxczROzPo0nB6-auICFXgDlC06SlBeoSM9_600Y9Li1Hgj-_QJrc__vPv9x8tNRmPrbvecHYHiwdcJm9sqi/s400/winPhoneApp006.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1e4rU8RjUR1QfP7EHta7AKJRDQ_SjWmizvx4BnEhdeH1SC9xqmcbU1NhzblOiG8gwr5xWTJvN7mIWqrP1nIwSwcwuXgfEUSWP4PeEoHyUUYw1MPja8J1ks5PZtbzKBWal5guapH3hIQEk/s1600/winPhoneApp007.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;283&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1e4rU8RjUR1QfP7EHta7AKJRDQ_SjWmizvx4BnEhdeH1SC9xqmcbU1NhzblOiG8gwr5xWTJvN7mIWqrP1nIwSwcwuXgfEUSWP4PeEoHyUUYw1MPja8J1ks5PZtbzKBWal5guapH3hIQEk/s400/winPhoneApp007.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is all the code behind for &lt;b&gt;MainPage.XAML.cs&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;using System.Windows.Shapes;&lt;br /&gt;using Microsoft.Phone.Controls;&lt;br /&gt;&lt;br /&gt;namespace MinhaPhoneApp&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class MainPage : PhoneApplicationPage&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MainPage()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private void button1_Click(object sender, RoutedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fahrenheit = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Int32.TryParse(textBox1.Text, out fahrenheit))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // C = 5 * ((F-32)/9)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decimal celsius = 5 * (((decimal)fahrenheit - 32) / 9);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textBlock2.TextAlignment = TextAlignment.Center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textBlock2.Text = Decimal.Round(celsius, 0).ToString() + &quot;º C&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Show message &quot;Invalid Data&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textBlock2.Text = &quot;Dados inválidos!!!&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void textBox1_TextChanged(object sender, TextChangedEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Then, we may run or new App on the Windows Phone device emulator:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCl66vo3DZyejPO2f5j5etL0R_G2F-G69707luwzlvXBFohBFfsNKvRcADeMk6JCenq5oGwnGy-sK1O7LmoEWtMj11dcAWUgUgandjvcSPvnKiKYzJjoYzpRxLeR5L4UrjU4af84eQAC9/s1600/winPhoneApp009.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCl66vo3DZyejPO2f5j5etL0R_G2F-G69707luwzlvXBFohBFfsNKvRcADeMk6JCenq5oGwnGy-sK1O7LmoEWtMj11dcAWUgUgandjvcSPvnKiKYzJjoYzpRxLeR5L4UrjU4af84eQAC9/s400/winPhoneApp009.JPG&quot; width=&quot;212&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/3237525334078733036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/05/first-windows-phone-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3237525334078733036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3237525334078733036'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/05/first-windows-phone-app.html' title='First Windows Phone App'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGBeLoP6wvF8pjR3b-cSO2VpUP2lxDhdNp8hyphenhyphenTQTqypEqf2F3E6hcqOFn8DoseoXsQGKsrJIlsmC_0a8O7NaGYcoNBpa5hpj7-P4V6EHxdtz2P5P0Rvt494xEYhCf2f4zxoWWhCykI688/s72-c/winPhoneApp001.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-2866166808716192754</id><published>2012-04-17T16:02:00.001+01:00</published><updated>2012-04-17T16:03:12.791+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><title type='text'>Using Hibernate for Java - 2</title><content type='html'>&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In the &lt;a href=&quot;http://practicalsw.blogspot.pt/2012/04/using-hibernate-for-java-1.html#more&quot; target=&quot;_blank&quot;&gt;previous article&lt;/a&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;we saw&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;how to use&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Hibernate&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;as a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;middleware layer&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;between the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class structure&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of our&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Java program&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and the representation&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;instances of these&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;classes&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in a database&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;The previous article&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;illustrated the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;mapping between&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Java class and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt;&lt;span class=&quot;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;,&lt;/span&gt; namelly &lt;span class=&quot;hps&quot;&gt;the &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;b&gt;Book&lt;/b&gt; &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;and the table with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the same name&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Let us now see how to map the class relationships, of type 1-to-N and N-to-N, to the database.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s start by adding to our model, which only had one class, two new classes:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 - &lt;b&gt;BookCopy&lt;/b&gt; (A Book contains the information of a book, and is related to several BookCopy, which correspond to the book copies a library has of that book) --&amp;gt; 1-N relationship.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;b&gt;Author&lt;/b&gt; (A Book has several Author and vice-versa) --&amp;gt; relação N-N relationship.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRb83uyb8JtB5dEb4yTpO6s9ep6eJYokkrIo-5DhBOygTWrCXV4faLln_8SXYYtBdxle28e2e-l71n28XA-R1IBCL8-3IMCOtrl9YWs2cU4wWVskWOz6rhUfjcHucek-GAwbF_cNfCX_ja/s1600/hib-2-01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRb83uyb8JtB5dEb4yTpO6s9ep6eJYokkrIo-5DhBOygTWrCXV4faLln_8SXYYtBdxle28e2e-l71n28XA-R1IBCL8-3IMCOtrl9YWs2cU4wWVskWOz6rhUfjcHucek-GAwbF_cNfCX_ja/s320/hib-2-01.JPG&quot; width=&quot;286&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In the Java project, developed in the previous post, let&#39;s start by adding class &lt;b&gt;BookCopy&lt;/b&gt; and the respective Hibernate mapping file &lt;b&gt;BookCopy.hbm.xml&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivci881TNSLBlEwtQzShKiGmzz7GY0DZOMzhbCswLvtd_ouKNb6nArPAyegEVMVJZemMA3B0CXi52aApCZv-osOhUqILed_s4mNU0rYAcNBH4ulfUrf040xkvslWHRXTP-ReXT9D7W55Pe/s1600/hib-2-02.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivci881TNSLBlEwtQzShKiGmzz7GY0DZOMzhbCswLvtd_ouKNb6nArPAyegEVMVJZemMA3B0CXi52aApCZv-osOhUqILed_s4mNU0rYAcNBH4ulfUrf040xkvslWHRXTP-ReXT9D7W55Pe/s1600/hib-2-02.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Class &lt;b&gt;BookCopy&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiafqpoc5MXBXduaxN98hgvzv4ShzV4__-kRry1KWKIDGCtkvCg3tuQJdIxBMQuJpIJziqsypfQM2zWvd9mNzqVeHx_HmqNQxf44avh3T3ybTt1kBujWYI25lCEw28kppM5RziQFbcCpjWq/s1600/hib-2-03.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiafqpoc5MXBXduaxN98hgvzv4ShzV4__-kRry1KWKIDGCtkvCg3tuQJdIxBMQuJpIJziqsypfQM2zWvd9mNzqVeHx_HmqNQxf44avh3T3ybTt1kBujWYI25lCEw28kppM5RziQFbcCpjWq/s320/hib-2-03.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Note that, in BookCopy, we must declare an instance of Book, which corresponds to the attribute, with cardinality 1, imported by the relation between Book and BookCopy. &lt;br /&gt;
&lt;br /&gt;
File &lt;b&gt;BookCopy.hbm.xml&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhtNe-d0VE9j1xbSfxHa0ccn0LYpQ8mfqehssSvPuxHNG65kHYcvZ6MHqxfKORKrQlRmOOt4iKIBBLuH3ZhcBCVkqakekp7wX69nrE33CZxRS0jJ9g0YyxK127CkPnY46vRfcttIEPax0/s1600/hib-2-04.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;142&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhtNe-d0VE9j1xbSfxHa0ccn0LYpQ8mfqehssSvPuxHNG65kHYcvZ6MHqxfKORKrQlRmOOt4iKIBBLuH3ZhcBCVkqakekp7wX69nrE33CZxRS0jJ9g0YyxK127CkPnY46vRfcttIEPax0/s320/hib-2-04.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In class &lt;b&gt;Book&lt;/b&gt;, we need to add an instance of &lt;b&gt;Set&amp;lt;BookCopy&amp;gt;&lt;/b&gt;, corresponding to the attribute, of cardinality 0..*, imported by Book from the relation between Book and BookCopy:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPxikCfoOH9zT71PTvaPduIcE4NYKix-lDg3OUlXjfr9Qu6O6HtDk8qM72vnZ7QnTenMxNyTStS_q158kv1mPdc9u6lVuaLjIWiLgartd6GlWmSjvNWTPTTtL-wgtKYQSyJwKuGcrrGqTN/s1600/hib-2-05.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPxikCfoOH9zT71PTvaPduIcE4NYKix-lDg3OUlXjfr9Qu6O6HtDk8qM72vnZ7QnTenMxNyTStS_q158kv1mPdc9u6lVuaLjIWiLgartd6GlWmSjvNWTPTTtL-wgtKYQSyJwKuGcrrGqTN/s320/hib-2-05.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
File &lt;b&gt;Book.hbm.xml&lt;/b&gt; after modification:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHxOVu1I7DbbqrvDK80efAE8rVIpUQdWN8ZsXR39bH2X-P1KHwg7NMwB4rW9CEzmAUFDuVL3S1C3hMA5RX5sCSg6E9RhJs7B5ZkGW4juA5qC5KZbsbPWLcLDss70FeDfhvbwhGFLSNUJde/s1600/hib-2-06.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHxOVu1I7DbbqrvDK80efAE8rVIpUQdWN8ZsXR39bH2X-P1KHwg7NMwB4rW9CEzmAUFDuVL3S1C3hMA5RX5sCSg6E9RhJs7B5ZkGW4juA5qC5KZbsbPWLcLDss70FeDfhvbwhGFLSNUJde/s320/hib-2-06.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Note that, in the Book&#39;s mapping file, we added:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;set name=&quot;bookcopies&quot; table=&quot;BOOKCOPY&quot; inverse=&quot;true&quot; lazy=&quot;true&quot; fetch=&quot;select&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key column=&quot;BOOKID&quot; not-null=&quot;true&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;one-to-many class=&quot;javahibernateexample.beans.BookCopy&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/set&amp;gt; &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
corresponding to the bookcopies associated to a given Book.&lt;br /&gt;
&lt;br /&gt;
And, in BookCopy&#39;s mapping file, we put: &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;many-to-one name=&quot;book&quot; class=&quot;javahibernateexample.beans.Book&quot; fetch=&quot;select&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;column name=&quot;BOOKID&quot; not-null=&quot;true&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/many-to-one&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
corresponding to the book associated to a given BookCopy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------------------- &lt;br /&gt;
&lt;br /&gt;
Let us now add the information relative to the authors.&lt;br /&gt;
For that, let&#39;s create class &lt;b&gt;Author&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeYK5aHbRcU2aJDvSKZrJb4DjOrwXTLqP7Oe881FG040gI0GctV8Y5Ld29E6uwTBOOf9jZM4drbll1ey5-bhKNdX5mIxj7ORo7jKzZNhUy8swzBiulUhsULUMQCwNVOwLeUoMXPCQ69VeY/s1600/hib-2-07.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeYK5aHbRcU2aJDvSKZrJb4DjOrwXTLqP7Oe881FG040gI0GctV8Y5Ld29E6uwTBOOf9jZM4drbll1ey5-bhKNdX5mIxj7ORo7jKzZNhUy8swzBiulUhsULUMQCwNVOwLeUoMXPCQ69VeY/s320/hib-2-07.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And the respetive hibernate&#39;s mapping file &lt;b&gt;Author.hbm.xml&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iMGRRREBkgAhP57t0JMsHVbAVreKFE_VkHrWNglwMzTS3v0PfFg1asflg1z0S-TzELs4ZBacYeRyntoVfan2sxNqgnhPAgDg9yLBHKVw9Njn3hsuegNZhi7yv1kNFS6xL-mhGJe7Eoe_/s1600/hib-2-09.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;138&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iMGRRREBkgAhP57t0JMsHVbAVreKFE_VkHrWNglwMzTS3v0PfFg1asflg1z0S-TzELs4ZBacYeRyntoVfan2sxNqgnhPAgDg9yLBHKVw9Njn3hsuegNZhi7yv1kNFS6xL-mhGJe7Eoe_/s320/hib-2-09.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Class Book needs, now, to reference the book&#39;s authors, through an attribute of type &lt;b&gt;Set&amp;lt;Author&amp;gt;&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpyUdPcuoBjQbjkujaBTnlWh1W-p-gUtEKh_SM_P9UquFtEbaph8HjKxTvLeBK95vy7-5eRK34QRuWvlNLSoAtXuKsI3sXQwEgwOTl_wfKK-H0JIW_AxA5tUFa5Dyhoq79S7PSrtfmPbVD/s1600/hib-2-08.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;109&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpyUdPcuoBjQbjkujaBTnlWh1W-p-gUtEKh_SM_P9UquFtEbaph8HjKxTvLeBK95vy7-5eRK34QRuWvlNLSoAtXuKsI3sXQwEgwOTl_wfKK-H0JIW_AxA5tUFa5Dyhoq79S7PSrtfmPbVD/s320/hib-2-08.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
In the end, the file &lt;b&gt;Book.hbm.xml&lt;/b&gt; will look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBNIMsEB4Dz9NtwrajLwAt6bzcE-ypHbqFgYoC6LFN_k7WD_1NRx7t4xJi7GgAagvyrVyWK7Doga2ooszSLz3CVcEVOUu6HmqECGrwTt0JnYnV9gpynDVcTHfF9pNNNOTS-KNvqdOyvnA/s1600/hib-2-10.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBNIMsEB4Dz9NtwrajLwAt6bzcE-ypHbqFgYoC6LFN_k7WD_1NRx7t4xJi7GgAagvyrVyWK7Doga2ooszSLz3CVcEVOUu6HmqECGrwTt0JnYnV9gpynDVcTHfF9pNNNOTS-KNvqdOyvnA/s320/hib-2-10.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Note the attribute &lt;b&gt;authors&lt;/b&gt;, in &lt;b&gt;Book&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;set name=&quot;authors&quot; table=&quot;BOOKAUTHOR&quot; cascade=&quot;all&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key column=&quot;BOOKID&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;many-to-many column=&quot;AUTHORID&quot;&amp;nbsp; class=&quot;javahibernateexample.beans.Author&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/set&amp;gt; &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
and the corresponding attribute &lt;b&gt;books&lt;/b&gt; in &lt;b&gt;Author&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;set name=&quot;books&quot; table=&quot;BOOKAUTHOR&quot; cascade=&quot;all&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key column=&quot;AUTHORID&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;many-to-many column=&quot;BOOKID&quot;&amp;nbsp; class=&quot;javahibernateexample.beans.Book&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/set&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------------------- &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#39;s still missing the reference to the new resources in file &lt;b&gt;hibernate.cfg.xml&lt;/b&gt;, which we shall now add:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZPLHY7SP2x8rDGGo4-kmOq3oUch0aBcfBMKH2bJVfbwAm38rapnKn6ikQk3cS8-cavkh38ztUjvm6R6wZEl3LnUTihyphenhyphenYoHL4IcPiT-ugNIxqfaGM3Xh8u6saR5VD_o6U-BPHyYHr55Pz/s1600/hib-2-00a.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;43&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZPLHY7SP2x8rDGGo4-kmOq3oUch0aBcfBMKH2bJVfbwAm38rapnKn6ikQk3cS8-cavkh38ztUjvm6R6wZEl3LnUTihyphenhyphenYoHL4IcPiT-ugNIxqfaGM3Xh8u6saR5VD_o6U-BPHyYHr55Pz/s320/hib-2-00a.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We can now use the created infrastructure with some test cases:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOrA8mCGkOf8fmzJTLYZo8-_dM76n4b9U_yd6VNByK2lTBhuPFKCiA5gCPIMWcMGIxXS0oV4OnHNq9CKiNBBxOJNq3krozLuGK7xpfxJNDgKvzrndA_IBItBC461B5pNoRiKgHnQoYJNk1/s1600/hib-2-11.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOrA8mCGkOf8fmzJTLYZo8-_dM76n4b9U_yd6VNByK2lTBhuPFKCiA5gCPIMWcMGIxXS0oV4OnHNq9CKiNBBxOJNq3krozLuGK7xpfxJNDgKvzrndA_IBItBC461B5pNoRiKgHnQoYJNk1/s320/hib-2-11.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KGA7WoG0N8EoQIy-9xLlBcWfGYNxnhEwMy51mEDAbmC7Uxwhu473SOKtkEuGKI7108VZoW_3PmY28_VT61_B1Ro_0yYPYUnyoa6mXYO1omhy-Y1u0KhMByWVg0_CB61oX89DaWT5SAKK/s1600/hib-2-12.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;127&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KGA7WoG0N8EoQIy-9xLlBcWfGYNxnhEwMy51mEDAbmC7Uxwhu473SOKtkEuGKI7108VZoW_3PmY28_VT61_B1Ro_0yYPYUnyoa6mXYO1omhy-Y1u0KhMByWVg0_CB61oX89DaWT5SAKK/s320/hib-2-12.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmuUF9estvrusC4hBzUycYdG9AGGTvQ9mOItzKn7m-PRfD6XukPq_QFBGZXw3CPp5ohxifzbsK6453kyOs-uHoLs2Sq8Dsd4jkX3w9yqL9Ee6ESe3uGje-5gQ7fpdaE6fzm4nA63ltnF0k/s1600/hib-2-13.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmuUF9estvrusC4hBzUycYdG9AGGTvQ9mOItzKn7m-PRfD6XukPq_QFBGZXw3CPp5ohxifzbsK6453kyOs-uHoLs2Sq8Dsd4jkX3w9yqL9Ee6ESe3uGje-5gQ7fpdaE6fzm4nA63ltnF0k/s320/hib-2-13.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGsvrjOCS0p1M470P80h9LA_PsQI90lfM66HYn7IoKYQsJxWjla6Ty0bZawtBKnFSy6SGj9jPZmybWIs2kT4MCjET7pbZRlvNMxEa-C5kmXIqO8wdOakV7JVbKkST3fsoWNom6DBgof3n-/s1600/hib-2-14.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGsvrjOCS0p1M470P80h9LA_PsQI90lfM66HYn7IoKYQsJxWjla6Ty0bZawtBKnFSy6SGj9jPZmybWIs2kT4MCjET7pbZRlvNMxEa-C5kmXIqO8wdOakV7JVbKkST3fsoWNom6DBgof3n-/s320/hib-2-14.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Some test results:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1fngYnnDZ_88zO7CD0DudaZEpR84YcNyroOArrzhXzmG5v497sb7WS7A011nDR_DLHTvS54h_p4eLOJ7z-QIHHS1I2ot-_BorA_bZisUd9ndYXXdttatgBjzK-cnRrjQqn6sYj8r1K2Ux/s1600/hib-2-15.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1fngYnnDZ_88zO7CD0DudaZEpR84YcNyroOArrzhXzmG5v497sb7WS7A011nDR_DLHTvS54h_p4eLOJ7z-QIHHS1I2ot-_BorA_bZisUd9ndYXXdttatgBjzK-cnRrjQqn6sYj8r1K2Ux/s320/hib-2-15.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Finally, we may also modify, in the hibernate configuration file, property &lt;b&gt;hibernate.show_sql&lt;/b&gt; to &lt;b&gt;false&lt;/b&gt;, which will hide all the SQL output generated by the hibernate:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp5HNHaetSkUqto7UF0JXraUI1ecX3a8JqGhKNyrUAGtcvzabn17NodnatkG7j7ztPSBKugoSUg1Tlk7m2Uw6TUGtRTOhpoYCMhNDiGVCFOsGovZXpxO9lTk9ry2IYlz-TUFGqwJnD1pBI/s1600/hib-2-16.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp5HNHaetSkUqto7UF0JXraUI1ecX3a8JqGhKNyrUAGtcvzabn17NodnatkG7j7ztPSBKugoSUg1Tlk7m2Uw6TUGtRTOhpoYCMhNDiGVCFOsGovZXpxO9lTk9ry2IYlz-TUFGqwJnD1pBI/s320/hib-2-16.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Testes output with show_sql set to false:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhakHmiwfhy-HXdNJB7Ds3j2tNMFgKDgY80U4KKPs-BvN32F3orqVEjjJOwAeTN4R6k6g5vSZb7PoQCzClM8nIY-9Twes-DZejjdRC_LUoS-vzPCFjw-IhVP5gw2XvDD7Tg4yCWnhaF_JRI/s1600/hib-2-17.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhakHmiwfhy-HXdNJB7Ds3j2tNMFgKDgY80U4KKPs-BvN32F3orqVEjjJOwAeTN4R6k6g5vSZb7PoQCzClM8nIY-9Twes-DZejjdRC_LUoS-vzPCFjw-IhVP5gw2XvDD7Tg4yCWnhaF_JRI/s320/hib-2-17.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I hope you were able to follow this example and that you are ready to use hibernate in your future projects.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/2866166808716192754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/04/using-hibernate-for-java-2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2866166808716192754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2866166808716192754'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/04/using-hibernate-for-java-2.html' title='Using Hibernate for Java - 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRb83uyb8JtB5dEb4yTpO6s9ep6eJYokkrIo-5DhBOygTWrCXV4faLln_8SXYYtBdxle28e2e-l71n28XA-R1IBCL8-3IMCOtrl9YWs2cU4wWVskWOz6rhUfjcHucek-GAwbF_cNfCX_ja/s72-c/hib-2-01.JPG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-6225360455533210064</id><published>2012-04-15T12:14:00.000+01:00</published><updated>2012-04-16T16:35:10.666+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><title type='text'>Using Hibernate for Java - 1</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black; font-weight: bold;&quot;&gt;Hibernate&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; is a &lt;/span&gt;&lt;span style=&quot;color: black; font-style: italic;&quot;&gt;framework&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; for object-relational mapping with &lt;/span&gt;Java language. &lt;span style=&quot;color: black;&quot;&gt;It facilitates mapping &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;classes, attributes &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;and class relationships between an application class model and its implementation in a relational database&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;. For defining the mappings, XML files &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;or &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Java anotations &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;can be used&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Hibernate works as a &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;middleware&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt; layer between the Java objects and the relational database.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;In this article, and in the next one, we will use Hibernate version 3 to ilustrate, through a small example, the utilization of Hibernate in a Java program.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;As database system we will be using Oracle 10g.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;To start with, we need to crate the database tables. In the article &lt;a href=&quot;http://practicalsw.blogspot.pt/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;_blank&quot;&gt;Example of Java Swing Application with Oracle Database - 1&lt;/a&gt; this process is explained.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;In this article, we will only be mapping class BOOK.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAX1caik0UDaq1UPgMxxZvvxpAEF26MF7RI5LA9KDZo9vrlMacDf58AwRZqRuBo9WKrXhAnAfi6QSmBYFrnXlAr9RQIAucW4nxbXzVbWOrHTMzHMADDS8Sfeb_mkwl5aKgRKeCLsxbxmGF/s1600/hibernateExample01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAX1caik0UDaq1UPgMxxZvvxpAEF26MF7RI5LA9KDZo9vrlMacDf58AwRZqRuBo9WKrXhAnAfi6QSmBYFrnXlAr9RQIAucW4nxbXzVbWOrHTMzHMADDS8Sfeb_mkwl5aKgRKeCLsxbxmGF/s320/hibernateExample01.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&amp;nbsp;Using Netbeans, or other Java IDE, we create a new Java application: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCVelFZ47vXsQ4knHpnldymtW7H4tEVCQjoxJy4Q0NbFK5XgK4PjQ96HDVG4VEY6WaokVww4wvieKqqG6srnUo-IO9dNE3ma4bYsJjkFaFraGEUvh4OwR0dyIrzN8HJSYakgQpT7T6sY_G/s1600/hibernateExample02.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCVelFZ47vXsQ4knHpnldymtW7H4tEVCQjoxJy4Q0NbFK5XgK4PjQ96HDVG4VEY6WaokVww4wvieKqqG6srnUo-IO9dNE3ma4bYsJjkFaFraGEUvh4OwR0dyIrzN8HJSYakgQpT7T6sY_G/s320/hibernateExample02.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We create a package for the classes corresponding to database tables, and create class &lt;b&gt;Book&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_y5V_T9q-8E6TdI2kmPMvtr_lnUaVjUYBnF13IVNmMnJjLH6UVUZFmDpfy_NHjL-vp0jXPLBDLjzFvNmej1SJ-WYehr0B9jzwupvnpTrdKwXusm1WsqOlUrZbH_HKMxyUcReV-Slo5jVp/s1600/hibernateExample03.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_y5V_T9q-8E6TdI2kmPMvtr_lnUaVjUYBnF13IVNmMnJjLH6UVUZFmDpfy_NHjL-vp0jXPLBDLjzFvNmej1SJ-WYehr0B9jzwupvnpTrdKwXusm1WsqOlUrZbH_HKMxyUcReV-Slo5jVp/s320/hibernateExample03.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9GQRPqd7IkqoJo0e4DPsmxWtLvpKp9ZWSEVfTx36p_jEZdLZxe2vF1ChOp3fRhd5svKY7f7CT65YPbgRH0kyBMH0dJdbXTrFEvrJ1r_aAUZ9ZA_zdKJPEe6zMxC_ibB-H6TiYcZ8vnaZl/s1600/hibernateExample04.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9GQRPqd7IkqoJo0e4DPsmxWtLvpKp9ZWSEVfTx36p_jEZdLZxe2vF1ChOp3fRhd5svKY7f7CT65YPbgRH0kyBMH0dJdbXTrFEvrJ1r_aAUZ9ZA_zdKJPEe6zMxC_ibB-H6TiYcZ8vnaZl/s320/hibernateExample04.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
We &lt;b&gt;add the attributes to the class&lt;/b&gt; (the attributes&#39; names can be different from the ones used in the table&#39;s columns):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1we9clp7zNpGOIVcMjCF1wM7WFrSVc1UTbLSo5uGHTVgY1J_GbXksRKAKm06mSSQ1urdNYHFrTVW5Gif8QVT_a5dVANhqrVz-D_kFI4Xh5jkbvIMd0pcV0Pd4FwL94LWRerXSo3Crno5o/s1600/hibernateExample05.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1we9clp7zNpGOIVcMjCF1wM7WFrSVc1UTbLSo5uGHTVgY1J_GbXksRKAKm06mSSQ1urdNYHFrTVW5Gif8QVT_a5dVANhqrVz-D_kFI4Xh5jkbvIMd0pcV0Pd4FwL94LWRerXSo3Crno5o/s320/hibernateExample05.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And, we add &lt;b&gt;getters &lt;/b&gt;and &lt;b&gt;setters&lt;/b&gt; for each attribute: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSGgZuWihurP2ACoZgWYCLB8WHcl32GPBqgocmWcR4BOwHW879Cib2VLfIGDhDfZ4ZhZFkrPvce2SAo9mQuim2QAuISUxCnw2YpBX9GVz5UFK4q35UUqOlriY7kU9cEq56bwKbHY59WLP/s1600/hibernateExample06.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSGgZuWihurP2ACoZgWYCLB8WHcl32GPBqgocmWcR4BOwHW879Cib2VLfIGDhDfZ4ZhZFkrPvce2SAo9mQuim2QAuISUxCnw2YpBX9GVz5UFK4q35UUqOlriY7kU9cEq56bwKbHY59WLP/s320/hibernateExample06.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi_iRQ5tOYR2e7Pbq-65YquH2cVj7OhU0Q7VFho4DyYZFOlNphvI2aDgUlDgJlZyDKTEPwXIv0uhy6vAii7eKqluZjRZfJgHc9lgVcl3RGcurjuBhGsAHcpnsmkhqdmF3lM05r7lY0Wt87/s1600/hibernateExample07.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi_iRQ5tOYR2e7Pbq-65YquH2cVj7OhU0Q7VFho4DyYZFOlNphvI2aDgUlDgJlZyDKTEPwXIv0uhy6vAii7eKqluZjRZfJgHc9lgVcl3RGcurjuBhGsAHcpnsmkhqdmF3lM05r7lY0Wt87/s320/hibernateExample07.JPG&quot; width=&quot;320&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9D5FdhAu8r0xi35yqBPgJl5dYZNGcBPsGAICyIeh8OLivLTXzEL4U-gNyNJSyvH5c-jBooYFPnw73ekSxZPSCo5RldzWeiIY1QJVqwrLq4TjkNXqUt6jRenhdRRj0aIlGMms8VbGE8Tj/s1600/hibernateExample08.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9D5FdhAu8r0xi35yqBPgJl5dYZNGcBPsGAICyIeh8OLivLTXzEL4U-gNyNJSyvH5c-jBooYFPnw73ekSxZPSCo5RldzWeiIY1QJVqwrLq4TjkNXqUt6jRenhdRRj0aIlGMms8VbGE8Tj/s320/hibernateExample08.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As the value of column ID in table BOOK is automatically assigned by the database, we change the corresponding setter access mode to private:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNJ04h3HXYccii8UIOrO2rm2TAttQsdeUIp92kGlBIpEzMnWAhmz-Ch7y6893qA7uzd5lTQkbDVxeNhFmZUMdw-sCBXdOQNRYII1zqNvRLTLCa6Vi2oPLeQyviXGdtwObRoYZ-uQZhy2pD/s1600/hibernateExample10.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;194&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNJ04h3HXYccii8UIOrO2rm2TAttQsdeUIp92kGlBIpEzMnWAhmz-Ch7y6893qA7uzd5lTQkbDVxeNhFmZUMdw-sCBXdOQNRYII1zqNvRLTLCa6Vi2oPLeQyviXGdtwObRoYZ-uQZhy2pD/s320/hibernateExample10.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And, we create a constructor without parameters, for class Book:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hiXxHT0rylhi9EhAnJEFvBjAQ6GCZlPg4z78K_hjgTrFMLYxqe-ZA3ln93PpYsY94-iGrw8rG36YOI4A2AE1yYwvd1aoOXFYyv3IF4MTbzFstdqFUDg6ynM4A9QqdFqL86YAUGxjVAZ7/s1600/hibernateExample11.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7hiXxHT0rylhi9EhAnJEFvBjAQ6GCZlPg4z78K_hjgTrFMLYxqe-ZA3ln93PpYsY94-iGrw8rG36YOI4A2AE1yYwvd1aoOXFYyv3IF4MTbzFstdqFUDg6ynM4A9QqdFqL86YAUGxjVAZ7/s320/hibernateExample11.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now, we are going to create the mapping file between class Book and the database table BOOK. &lt;br /&gt;
In the same folder of class Book, we create a XML file, called &lt;b&gt;Book.hbm.xml&lt;/b&gt;, which will contain the mappings:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEDqG7ReGjiSq2ENKXAwZjyYJjFDYpqUoNW0RE3BDEo0M9cAOdEY4bnlJH7Hyx03zXjbXy88HHs27nmz_bNAiqUdJpfyTO7-ix7VNzY-EGzGxPYy2J-nVOesbdwl8DnYTk0vfTde-ATvOG/s1600/hibernateExample12.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEDqG7ReGjiSq2ENKXAwZjyYJjFDYpqUoNW0RE3BDEo0M9cAOdEY4bnlJH7Hyx03zXjbXy88HHs27nmz_bNAiqUdJpfyTO7-ix7VNzY-EGzGxPYy2J-nVOesbdwl8DnYTk0vfTde-ATvOG/s320/hibernateExample12.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The file will be constrained by a DTD, but we can add that information later: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr-hKsd0_SrE1v0jPRqpfLufW7VgB5yhHTJJvZiDJV2UK53gSoim1M8et8JWsoXTzV2XPatIg4lwtbk0rVIj1cuUgRugUD7cnjTChv9yojEOG4Qn-BUA75XExE7NhoKlSWD5BnFM4XhIE4/s1600/hibernateExample14.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr-hKsd0_SrE1v0jPRqpfLufW7VgB5yhHTJJvZiDJV2UK53gSoim1M8et8JWsoXTzV2XPatIg4lwtbk0rVIj1cuUgRugUD7cnjTChv9yojEOG4Qn-BUA75XExE7NhoKlSWD5BnFM4XhIE4/s320/hibernateExample14.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We add the following contents to the file:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlmot3BRqmLQsO_dK6IDtXker82_b_S0K_ULrpPV6OfKSjoSUYnzHbDhYrBgkCAC3sS7j1NsEfH89E8ZC-WbnR5oanVjJw8BR1BHQV6eDndGnIvjelV1POPZCRqjR8nMt3QUK1goWQEww8/s1600/hibernateExample15.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlmot3BRqmLQsO_dK6IDtXker82_b_S0K_ULrpPV6OfKSjoSUYnzHbDhYrBgkCAC3sS7j1NsEfH89E8ZC-WbnR5oanVjJw8BR1BHQV6eDndGnIvjelV1POPZCRqjR8nMt3QUK1goWQEww8/s320/hibernateExample15.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The syntax used in the file conforms to the DTD in http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd.&lt;br /&gt;
&lt;br /&gt;
Elemento &lt;b&gt;class&lt;/b&gt; defines the mapping between the Java class and the corresponding database table.&lt;br /&gt;
Elemento &lt;b&gt;id&lt;/b&gt; maps an attribute to the table primary key.&lt;br /&gt;
Elemento &lt;b&gt;property&lt;/b&gt; maps a non-key attribute.&lt;br /&gt;
&lt;br /&gt;
We, now, need to create a configuration file for Hibernate, which will contain the database conection data, the reference to all mapping files, and other configuration information.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilz0NMREAMbFLREBgk13vt7-Oyb-vexwAZeBNej-JbEOUfujJnWPbjJID4xLcvllY_TTp_ydt21FmDwouL_e_4ZxZzliufjLRmbafTgQ_OSIszKJA14mfAGn7QJ_Rib6SyX1MqOkv1FSeW/s1600/hibernateExample16.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;33&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilz0NMREAMbFLREBgk13vt7-Oyb-vexwAZeBNej-JbEOUfujJnWPbjJID4xLcvllY_TTp_ydt21FmDwouL_e_4ZxZzliufjLRmbafTgQ_OSIszKJA14mfAGn7QJ_Rib6SyX1MqOkv1FSeW/s320/hibernateExample16.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgonKaeeIa3A1MGo5F5qv48CcAYgq37CH4jU0IjuT9u9LLENP60zkfSZjH4Rsho9Uy6BDHhtlJY8lkh_e92zYMBtElIGt-0zBNqxNwVwvKjemThHEuObgXVI48vrs1vVcVHgHBexBEQF03u/s1600/hibernateExample17.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgonKaeeIa3A1MGo5F5qv48CcAYgq37CH4jU0IjuT9u9LLENP60zkfSZjH4Rsho9Uy6BDHhtlJY8lkh_e92zYMBtElIGt-0zBNqxNwVwvKjemThHEuObgXVI48vrs1vVcVHgHBexBEQF03u/s320/hibernateExample17.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This file will be used to configure the object &lt;b&gt;hibernate.connection&lt;/b&gt;, for database connection.&lt;br /&gt;
It contains, also, information about the mapping files.&lt;br /&gt;
All this information could be, in alternative, supplied through code.&lt;br /&gt;
&lt;br /&gt;
Now, we&#39;re going to create a class, &lt;b&gt;HibernateUtil&lt;/b&gt;, which will supply a &lt;b&gt;singleton&lt;/b&gt; instance of class &lt;b&gt;SessionFactory&lt;/b&gt;. This instance will be used to create a database session object everytime it is needed.&amp;nbsp; &lt;br /&gt;
We create a new package:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5cjusqIJLeb9c5R8NTK57CLynWVtOIWb8TQhwatC5dawkJTpwd9u6GM7dfVnCoUlxStNkh4lps6fhNsEoDClaWYP43dmwkZmPOVbXtctY9vtkuN2KWL3ul1dGaVfhcpRiWKUQGGM1VL6/s1600/hibernateExample18.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5cjusqIJLeb9c5R8NTK57CLynWVtOIWb8TQhwatC5dawkJTpwd9u6GM7dfVnCoUlxStNkh4lps6fhNsEoDClaWYP43dmwkZmPOVbXtctY9vtkuN2KWL3ul1dGaVfhcpRiWKUQGGM1VL6/s320/hibernateExample18.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiggYJhpB0d3Ja3dsMk_dQpml_vIey8dyIiyGB_pTaqH9s84pE1Pd9WkKvQMbFeLw5TcBNqXXfcUaW09tttO4_PDvZmUrp_tMes51HIUX712uRyhiZ2VhJ-g7TQ5_O7Haqypa765YTZPR8x/s1600/hibernateExample19.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiggYJhpB0d3Ja3dsMk_dQpml_vIey8dyIiyGB_pTaqH9s84pE1Pd9WkKvQMbFeLw5TcBNqXXfcUaW09tttO4_PDvZmUrp_tMes51HIUX712uRyhiZ2VhJ-g7TQ5_O7Haqypa765YTZPR8x/s320/hibernateExample19.JPG&quot; width=&quot;320&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs2NAm85jDbzKO5Sgg0Rhn5eiNMQl9_gprWHWD0OoGMHO7D2LywA9igN4_J5B74DXX0V0OxZWQI3-vt7ZV2ZiYqbVR5uAnVTI0mat6Im4HqlTvldmBcDgHghmevukccY8SJyOW0uzIwYsR/s1600/hibernateExample20.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs2NAm85jDbzKO5Sgg0Rhn5eiNMQl9_gprWHWD0OoGMHO7D2LywA9igN4_J5B74DXX0V0OxZWQI3-vt7ZV2ZiYqbVR5uAnVTI0mat6Im4HqlTvldmBcDgHghmevukccY8SJyOW0uzIwYsR/s320/hibernateExample20.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Import Hibernate&#39;s relevant classes:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs8rRLr150bjxHo0Njol2hx92IcRDpWCegKYJ-iaEA9dwaGwvOA_wijckEnj6x-v-lGc_oUuZAjqPYrfBTdzSqAnZbnUwvTHgSbqDRypIZY5wOkv2okZECM2eAeGFjsrX-4kLdmZojMNRX/s1600/hibernateExample21.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs8rRLr150bjxHo0Njol2hx92IcRDpWCegKYJ-iaEA9dwaGwvOA_wijckEnj6x-v-lGc_oUuZAjqPYrfBTdzSqAnZbnUwvTHgSbqDRypIZY5wOkv2okZECM2eAeGFjsrX-4kLdmZojMNRX/s320/hibernateExample21.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And, we declare, as static, the object sessionfactory instance of &lt;b&gt;SessionFactory&lt;/b&gt;, and also its initialization.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkEksd7p_0sq1MJSGfaGthUE5GBa-xkct51ROSuTw6wqynrxhs-WSvWPEiS2zEUc-p8YYsVszGK4EgTRxzeJjAIiDDF-rKVYLp9EyQh7YU9N_5LOoUzx3ViIXttXhyphenhyphenEvNpt4MCOuE0Qo_N/s1600/hibernateExample22.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkEksd7p_0sq1MJSGfaGthUE5GBa-xkct51ROSuTw6wqynrxhs-WSvWPEiS2zEUc-p8YYsVszGK4EgTRxzeJjAIiDDF-rKVYLp9EyQh7YU9N_5LOoUzx3ViIXttXhyphenhyphenEvNpt4MCOuE0Qo_N/s320/hibernateExample22.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The invocation of method &lt;b&gt;configure()&lt;/b&gt;, in the instance &lt;b&gt;new Configuration()&lt;/b&gt;, will trigger the reading of configuration file &lt;b&gt;hibernate.cfg.xml&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let us now test the database operations using Hibernate. In the file of the class containing the method &lt;b&gt;main()&lt;/b&gt;, we add some &lt;i&gt;imports&lt;/i&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSrM2KMhJw3V9oS4nArybEYtfZ7IBBSAxbvCvABb7QUxVRd1UwkDlYU4wQWSxxYvfq2mOAOMIHJg0IRJns4y-Y9cEcx6AHi5DDPw9UvHymFjjopHYr_Q6jy1I55a45hEXelQ5ed2rVkvIT/s1600/hibernateExample23.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSrM2KMhJw3V9oS4nArybEYtfZ7IBBSAxbvCvABb7QUxVRd1UwkDlYU4wQWSxxYvfq2mOAOMIHJg0IRJns4y-Y9cEcx6AHi5DDPw9UvHymFjjopHYr_Q6jy1I55a45hEXelQ5ed2rVkvIT/s320/hibernateExample23.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And, in method main(), we add code for, in a transaction aware mode, insert a book.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3qL-yt_5rYrUN-ueVWuZiqt9s36NV6Ajak_EpXUdSy63C_gdEXKWPnE7VvTgv7qAeTzdBlleVkcpRziHL8y0a2W5AEwfMBihsx1jbL0iHWovj1nGlckcLG1G6d4NxYFO04lHMFLqiCCJh/s1600/hibernateExample24.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3qL-yt_5rYrUN-ueVWuZiqt9s36NV6Ajak_EpXUdSy63C_gdEXKWPnE7VvTgv7qAeTzdBlleVkcpRziHL8y0a2W5AEwfMBihsx1jbL0iHWovj1nGlckcLG1G6d4NxYFO04lHMFLqiCCJh/s320/hibernateExample24.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And then, to list all books: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoc5ZxMKLG4mMNlg_iWgFRnBFme8ZPRZLJngYxm3r7S5dn4GMLck5-zI1CUb1GjalmeUAS2Om8Z8yKxPr-oVrKS2OX7k1Z9p2NLSK8_ekf0-ve76uJtRyEIGSV3er6JdYkPyMa-kT31Kye/s1600/hibernateExample25.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;120&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoc5ZxMKLG4mMNlg_iWgFRnBFme8ZPRZLJngYxm3r7S5dn4GMLck5-zI1CUb1GjalmeUAS2Om8Z8yKxPr-oVrKS2OX7k1Z9p2NLSK8_ekf0-ve76uJtRyEIGSV3er6JdYkPyMa-kT31Kye/s320/hibernateExample25.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;In the next article, we will see how to configure and use tables related by foreign key constraints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/6225360455533210064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/04/using-hibernate-for-java-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6225360455533210064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6225360455533210064'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/04/using-hibernate-for-java-1.html' title='Using Hibernate for Java - 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAX1caik0UDaq1UPgMxxZvvxpAEF26MF7RI5LA9KDZo9vrlMacDf58AwRZqRuBo9WKrXhAnAfi6QSmBYFrnXlAr9RQIAucW4nxbXzVbWOrHTMzHMADDS8Sfeb_mkwl5aKgRKeCLsxbxmGF/s72-c/hibernateExample01.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-8953728334263379747</id><published>2012-03-03T19:24:00.002+00:00</published><updated>2012-03-03T19:59:06.437+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Swing"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Example of Java Swing desktop application without the JSR - 2</title><content type='html'>In this article we are going to create a Java Swing-based GUI project to complement the ones we previously made, and whose developments are addressed in: &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 1&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database – 2&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database – 3&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
-&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/example-of-java-swing-desktop.html&quot;&gt;Example of Java Swing desktop application without the JSR - 1&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In NetBeans 7.1, we need to create a Java Application Project:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jL0Y505Z5yXobQuh0QVVSwqQOM3LWLATRAustkZ9eSDgpYSsyasnjzQ-j3i0BBqPzw-S9aEjiUscQtGwfjHX-V_yUvQ7PYiduq6w15sdqXfmGfZkay65tweG9uSGo3-HAK74Zpp6Z992/s1600/gui01.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jL0Y505Z5yXobQuh0QVVSwqQOM3LWLATRAustkZ9eSDgpYSsyasnjzQ-j3i0BBqPzw-S9aEjiUscQtGwfjHX-V_yUvQ7PYiduq6w15sdqXfmGfZkay65tweG9uSGo3-HAK74Zpp6Z992/s320/gui01.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzHtxZLWVvOZheeXN_RmBL0jdQxuH1g3rNkdUhuA05Dixi9IlUaDTiKcFmThEVjh8hBb1v3PhlIc3sbmfCY5pzFF2aDCG4FnOOPVrG2Dj-E0WEQFu5_FzgqheTYOKKIWX83EBicAtOxw_q/s1600/gui02.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzHtxZLWVvOZheeXN_RmBL0jdQxuH1g3rNkdUhuA05Dixi9IlUaDTiKcFmThEVjh8hBb1v3PhlIc3sbmfCY5pzFF2aDCG4FnOOPVrG2Dj-E0WEQFu5_FzgqheTYOKKIWX83EBicAtOxw_q/s320/gui02.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSf4jx7QC4qx8JGsLBKoVugERH-HHCgszBWKYbdONrKWHduEbScSmIVmhkP2xjpukz_jEt5K7Y7pFzDCBNuPJpAEzthA_umhga-VvbP39R2WtQSiqZ8AMt0EVzlW6ldo_hU3tnvYd5v-2B/s1600/gui03.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSf4jx7QC4qx8JGsLBKoVugERH-HHCgszBWKYbdONrKWHduEbScSmIVmhkP2xjpukz_jEt5K7Y7pFzDCBNuPJpAEzthA_umhga-VvbP39R2WtQSiqZ8AMt0EVzlW6ldo_hU3tnvYd5v-2B/s320/gui03.JPG&quot; width=&quot;199&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
A Java Application Project automatically creates a class with method main().&lt;br /&gt;
We really don&#39;t need that class, because we are going to create a JFrame, which automatically creates a main() method that launches it and makes the frame visible.&lt;br /&gt;
&lt;br /&gt;
Anyway, and before creating the JFrame, let&#39;s add the needed references to our new project. We need to add, in the project libraries, references to projects HelperDB and librarySystemBLL. References to &quot;ojdbc&quot; jars that come with Oracle XE also need to be added, just like we did before in the other two projects.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbxknBvR0eB42mOYpF9U0P0aCkOV3SH7jdWVLYassAqo_16hCmA4wkg20BEEOItt5QYzYTnG-Z-gFfbvzlFnStZPcXIVsrOBWWXbSar2WH-5FfZ5J3AnEKFbzAwx1mTuWsaO6zwID-8lLl/s1600/gui04.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbxknBvR0eB42mOYpF9U0P0aCkOV3SH7jdWVLYassAqo_16hCmA4wkg20BEEOItt5QYzYTnG-Z-gFfbvzlFnStZPcXIVsrOBWWXbSar2WH-5FfZ5J3AnEKFbzAwx1mTuWsaO6zwID-8lLl/s320/gui04.JPG&quot; width=&quot;201&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now, let&#39;s create the JFrame, that will be the application&#39;s main window:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
- with the mouse cursor over the package name (librarysystemgui), right click and select New --&amp;gt; JFrame Form...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxD0u8Uwx9UvWHWFiEeBhvRSI1QR0PO30BWcf9Z2zu7_C7gV1xOBL1GYdJ4QzB-EHSyResXhrAw9T5qy4uJgNiySA8KUHZ0cuYkFjwGbHcFOQEO1lOZUkGkzLnUzOXdyao4wF2LTnAVSgL/s1600/gui05.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxD0u8Uwx9UvWHWFiEeBhvRSI1QR0PO30BWcf9Z2zu7_C7gV1xOBL1GYdJ4QzB-EHSyResXhrAw9T5qy4uJgNiySA8KUHZ0cuYkFjwGbHcFOQEO1lOZUkGkzLnUzOXdyao4wF2LTnAVSgL/s320/gui05.JPG&quot; width=&quot;275&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
- Give it a name (librarySystem):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU1EBQ6gkzsWtteNqrZ-27-IjvapiJcj1w5upo6Fo3jGKfL8UKHE0m165EuenOb8Mx03JAOJeSRwAu2_Eb1JWteWuXDrjMEfcTFvZ52qQfZNZqwsq0GaSU_HSmv4AfTlphRcFlGvAtoSIF/s1600/gui06.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU1EBQ6gkzsWtteNqrZ-27-IjvapiJcj1w5upo6Fo3jGKfL8UKHE0m165EuenOb8Mx03JAOJeSRwAu2_Eb1JWteWuXDrjMEfcTFvZ52qQfZNZqwsq0GaSU_HSmv4AfTlphRcFlGvAtoSIF/s320/gui06.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And it is created:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4RdbQuMJeXKFyIcOmxLSUxf_lTRc7npflWs4G6ddELp3WQSW0MW9Wt_oFFZXuBvpAXrdVj6amG8Bj9V5nHdnN9ITKp_7f9fnRmPfEtKIAcXlp4MDiR5orDbadAnJ8kOYhHEib-k7y4VoE/s1600/gui07.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4RdbQuMJeXKFyIcOmxLSUxf_lTRc7npflWs4G6ddELp3WQSW0MW9Wt_oFFZXuBvpAXrdVj6amG8Bj9V5nHdnN9ITKp_7f9fnRmPfEtKIAcXlp4MDiR5orDbadAnJ8kOYhHEib-k7y4VoE/s320/gui07.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
A JFrame, just like a JDialog and a JPanel, is a Swing class, and NetBeans allows to grafically compose Swing elements on it, by dragging them from the pallete and droping them on where we want them to be:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcLwqg3RN4Xm58tIwwkmaC5CgsieSb94GGF17-SBH9NBw10dgUjRpf6M0A61ntBT8BEZQe2TIwbOUpcwcDvDrAMwZRSeRL7qabRSqmm7_1a7xLjobzKSmcDlEE_MtjnnFrld0cMQ_-O3VP/s1600/gui08.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcLwqg3RN4Xm58tIwwkmaC5CgsieSb94GGF17-SBH9NBw10dgUjRpf6M0A61ntBT8BEZQe2TIwbOUpcwcDvDrAMwZRSeRL7qabRSqmm7_1a7xLjobzKSmcDlEE_MtjnnFrld0cMQ_-O3VP/s320/gui08.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Drag a menu bar from the pallete, onto the JFrame, then two menus (Book and Loans).&lt;br /&gt;
And, drag a menuItem into menu Books, and change its text to List Books:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIT9m6RKS3YywoIXGLzBXoXDVG91f-0cUegisJT_MzJ2vYzzM7XGA9VdQJ29pFGes21kSmQFSpAoeqY0B-x1JG7EsNMkRaININqgWqQxYr3C6U60FnDNZU_QJEQHmYKj_jqvEBgj8_BhIE/s1600/gui09.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIT9m6RKS3YywoIXGLzBXoXDVG91f-0cUegisJT_MzJ2vYzzM7XGA9VdQJ29pFGes21kSmQFSpAoeqY0B-x1JG7EsNMkRaININqgWqQxYr3C6U60FnDNZU_QJEQHmYKj_jqvEBgj8_BhIE/s320/gui09.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Then, you may delete the initial class with the main method that we don&#39;t need.&lt;br /&gt;
&lt;br /&gt;
Now, we want to have several panels laid out on the main frame central area. For that, we drag a panel to the JFrame&#39;s central area and name it &lt;b&gt;mainPanel&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWsPH0dG9zfrwVRQAIx9Bl4gNfgR29j-KM_cpqke-IE1GK_vDD6im-Fi8GDiaGY3cnJ5-ZjiqG6awQhtN6_Qpe_blheOnj_KKvQil3WohHz7vdNSSp8Xd1mfyIpRBXZbKw5lQMGvHev_B8/s1600/gui11.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;174&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWsPH0dG9zfrwVRQAIx9Bl4gNfgR29j-KM_cpqke-IE1GK_vDD6im-Fi8GDiaGY3cnJ5-ZjiqG6awQhtN6_Qpe_blheOnj_KKvQil3WohHz7vdNSSp8Xd1mfyIpRBXZbKw5lQMGvHev_B8/s320/gui11.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, we let the main panel empty, and create a new JPanel Form (&lt;b&gt;listBooksJPanel.java&lt;/b&gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWMcSJObMT8ne9RWMtSBKkSGDMRxcy5mqgnokWqNPUnIDcV745fsVgTZ-IrlvTWVwA8VvAQ01C-0ejOwCjZJ50YWCToWm77DJ30La4hQzPc8u4hSbIz9ckA111KIkTDQYu6GUkT0TSoOHt/s1600/gui10.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWMcSJObMT8ne9RWMtSBKkSGDMRxcy5mqgnokWqNPUnIDcV745fsVgTZ-IrlvTWVwA8VvAQ01C-0ejOwCjZJ50YWCToWm77DJ30La4hQzPc8u4hSbIz9ckA111KIkTDQYu6GUkT0TSoOHt/s320/gui10.JPG&quot; width=&quot;270&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Drag a JTable onto the new JPanel, and size it to occupy all available space.&lt;br /&gt;
Then, we need to configure the JTable, so that its columns have the name we want them to have. So right click on the JTable object and select &lt;b&gt;Costumize Code&lt;/b&gt;.&lt;br /&gt;
On the Code customizer window, change the &quot;default code&quot; to &quot;custom property&quot;, as in the figure below, and make the illustrated changes:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinPOnLBbixP0NUi9Im0NJyBFzKWC4aqllgIjQXAt2jv0XHjN-DtXZKdjtifc7OEPOZpyWRgUbx79taVf5ecUFu1kkXyFL6kc9UrlmdrQ5HqIgXf1VsoaTVmxHMjXBB9iLpeebRLUVDmJty/s1600/gui10a.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;276&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinPOnLBbixP0NUi9Im0NJyBFzKWC4aqllgIjQXAt2jv0XHjN-DtXZKdjtifc7OEPOZpyWRgUbx79taVf5ecUFu1kkXyFL6kc9UrlmdrQ5HqIgXf1VsoaTVmxHMjXBB9iLpeebRLUVDmJty/s320/gui10a.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now the columns are named Title, Author, Editor, Edition and Isbn.&lt;br /&gt;
&lt;br /&gt;
Now, click the &lt;b&gt;Source&lt;/b&gt; button (near the Design button), on NetBeans, when editing the ListBooksJPanel.java, so that you can see the code that has been generated.&lt;br /&gt;
&lt;br /&gt;
We need to populate the JTable, when the ListBooksJPanel is created in execution time.&lt;br /&gt;
For that, we are going to add some code in the generated class creator method, after the call to InitComponents().&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilyMFj0uTP4-mxlAG6TR2tAVD-xXI9_11suo9emuZoBmW8uYR4IQlAjQkHKbxygVGr797JPezUPCU3cwlsw0JQf_VzboIfhHBb63ivtxqbLD32WMCwnPuZArwQdIvWhMNJzFMVO0GMvviq/s1600/gui10b.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilyMFj0uTP4-mxlAG6TR2tAVD-xXI9_11suo9emuZoBmW8uYR4IQlAjQkHKbxygVGr797JPezUPCU3cwlsw0JQf_VzboIfhHBb63ivtxqbLD32WMCwnPuZArwQdIvWhMNJzFMVO0GMvviq/s320/gui10b.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Add the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;try {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; List&amp;lt;Book&amp;gt; lsBooks = Book.retrieveAllBooks(new DBAccessObj());&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; limparJTableBooks();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; if(!lsBooks.isEmpty()){&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; javax.swing.table.DefaultTableModel model1 = (javax.swing.table.DefaultTableModel)jTable1.getModel();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator&amp;lt;Book&amp;gt; iterBooks = lsBooks.iterator();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(iterBooks.hasNext()){&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Book book = iterBooks.next();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int id = book.getID();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String title = book.getTitle();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String authors = &quot;&quot;;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator&amp;lt;Author&amp;gt; bookAuthors = book.getAuthors().iterator();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(bookAuthors.hasNext()){&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Author au = bookAuthors.next();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; authors += au.getSurname() + &quot;, &quot; + au.getName() + &quot;; &quot;;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String editor = book.getEditor();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String edition = &quot;&quot;;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edition = book.getEdition();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String isbn = book.getISBN();&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model1.addRow(new Object[]{title, authors, editor, edition, isbn});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;} catch (SQLException ex) {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(ex);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Remember that you need to reference the previously developed projects in this project&#39;s libraries.&lt;br /&gt;
&lt;br /&gt;
Now, getting back to the JFrame, we want to make the listBooksJPanel visible, when the user chooses the ListBooks menu item. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7BWO5pPryOVfSFE7dOeMi-g6Z3tC6NIbaqDz4lxBiF7-UX4-hWn7HSQB08V0MWSc9o4XOBn7gMIardd6Pf4PlLiHHggc8g2fcph_GNPlahUJmqwPdRnJBv1DkeSwYyIGUe9wNa4yjS7hk/s1600/gui12.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7BWO5pPryOVfSFE7dOeMi-g6Z3tC6NIbaqDz4lxBiF7-UX4-hWn7HSQB08V0MWSc9o4XOBn7gMIardd6Pf4PlLiHHggc8g2fcph_GNPlahUJmqwPdRnJBv1DkeSwYyIGUe9wNa4yjS7hk/s320/gui12.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Double click the ListBooks menu item, so that a handler method is created. Add to it the code in the following figure:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvhBH4VZgBiy19l5tE0tyWSMsw423cRcqx90Ei6X0SXcG4ynpk64f_QAttGRGQZM2KteErGAQlG17Fexm8gxVetuz-VTdyrTfYHri2x_O_WrDcuWBZLVAjarX2Rtw4NxN-CEncygCjVqO1/s1600/gui13.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvhBH4VZgBiy19l5tE0tyWSMsw423cRcqx90Ei6X0SXcG4ynpk64f_QAttGRGQZM2KteErGAQlG17Fexm8gxVetuz-VTdyrTfYHri2x_O_WrDcuWBZLVAjarX2Rtw4NxN-CEncygCjVqO1/s320/gui13.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now let&#39;s run the example... (of course you need to add data in the database).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR7MAo5VgpBKL4f0NRTgA1mx2tTUtjsAtg1Cj3_n3z4HDtV4MnesJVjmfsCPHF57iJu5WVhlzMncKqV-a1GRHTi_iA2A1wQi0ZwZ16zbCniRq5G62BYIHQ27d8b_jIaZum7cqS_l7O-JwJ/s1600/gui14.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR7MAo5VgpBKL4f0NRTgA1mx2tTUtjsAtg1Cj3_n3z4HDtV4MnesJVjmfsCPHF57iJu5WVhlzMncKqV-a1GRHTi_iA2A1wQi0ZwZ16zbCniRq5G62BYIHQ27d8b_jIaZum7cqS_l7O-JwJ/s320/gui14.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As usual, you may add comments to this article with questions about unclear issues...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/8953728334263379747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/03/example-of-java-swing-desktop.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8953728334263379747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8953728334263379747'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/03/example-of-java-swing-desktop.html' title='Example of Java Swing desktop application without the JSR - 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jL0Y505Z5yXobQuh0QVVSwqQOM3LWLATRAustkZ9eSDgpYSsyasnjzQ-j3i0BBqPzw-S9aEjiUscQtGwfjHX-V_yUvQ7PYiduq6w15sdqXfmGfZkay65tweG9uSGo3-HAK74Zpp6Z992/s72-c/gui01.JPG" height="72" width="72"/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-3652421942745816337</id><published>2012-02-24T15:35:00.000+00:00</published><updated>2012-02-24T15:37:07.673+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Virtual Developer Day - Java (free event)</title><content type='html'>&lt;a href=&quot;https://oracle.6connex.com/portal/Java/login&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/3652421942745816337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/virtual-developer-day-java-free-event.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3652421942745816337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3652421942745816337'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/virtual-developer-day-java-free-event.html' title='Virtual Developer Day - Java (free event)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-1304683141263068934</id><published>2012-02-24T12:50:00.002+00:00</published><updated>2012-02-24T12:51:35.465+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Swing"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Example of Java Swing desktop application without the JSR - 1</title><content type='html'>&lt;br /&gt;
From NetBeans 7.1, &lt;b&gt;Swing application framework&lt;/b&gt; (JSR) left being supported by NetBeans, and is no longer part of the official JDK (Java Development Kit).&lt;br /&gt;
&lt;br /&gt;
So, in this article, and the next one, we&#39;ll make a small application with Swing classes without using the Swing application framework.&lt;br /&gt;
&lt;br /&gt;
We will make use of the application layers previously developed in:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 1&lt;/a&gt; (database creation)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database – 2&lt;/a&gt; (HelperDB project for accessing the database)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database – 3&lt;/a&gt; (librarySystemBLL project / BLL classes) &lt;br /&gt;
&lt;br /&gt;
So, after creating the database, and having present projects &lt;b&gt;HelperDB&lt;/b&gt; and &lt;b&gt;
librarySystemBLL&lt;/b&gt;, we will create a new project (librarySystemGUI) for the user interface.&lt;br /&gt;
Firstly, we will see how to import a project to NetBeans, having only the java sources developed in any IDE. &lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: large;&quot;&gt;Import previous projects to NetBeans 7.1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
To import, in NetBeans 7.1, project &lt;b&gt;HelperDB&lt;/b&gt;, we create a new project (with existing sources):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFPxES0ayZgGgKNIF693kK9iLwDkMHSRkM0f-Lqc6qAioksr8h9xNVKgvvPQt2V4dkO7JFnF1yIQ5wIDf1AbUq7ZGCfGeIBB-6i5Mj5p3SZhQ6Lx4_vhglxS9qYv9Bs6RdlF9hNEK_dhV8/s1600/existsources01.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFPxES0ayZgGgKNIF693kK9iLwDkMHSRkM0f-Lqc6qAioksr8h9xNVKgvvPQt2V4dkO7JFnF1yIQ5wIDf1AbUq7ZGCfGeIBB-6i5Mj5p3SZhQ6Lx4_vhglxS9qYv9Bs6RdlF9hNEK_dhV8/s320/existsources01.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8e7eazo8R00GLXpz9AmyL_yg_FeKJRgYcqmkgYU6m0GFvEQ0pjw0sEnZgEu9zgPggT-uHoSiaZ79VOG6wjneuQkcLMlfzk39XyJNwt-cE8QTACMPxWwcBjduTE1pwmTQbcM_SXRM7F9mH/s1600/existsources02.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8e7eazo8R00GLXpz9AmyL_yg_FeKJRgYcqmkgYU6m0GFvEQ0pjw0sEnZgEu9zgPggT-uHoSiaZ79VOG6wjneuQkcLMlfzk39XyJNwt-cE8QTACMPxWwcBjduTE1pwmTQbcM_SXRM7F9mH/s320/existsources02.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs3zGn9MmcjQyVfI-jZDJm1MY2mDlGwvPEHhhAIPvVl-FrNVZ9vAFvkGUItnxG1YKI0jAqKEpENO3Ppas36Xkeu8zZFx6CVqvc3Dyz1JMhYKsrMN5sWvMz_RNoXh_ZX1xVCp7nMa12QZEo/s1600/existsources03.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs3zGn9MmcjQyVfI-jZDJm1MY2mDlGwvPEHhhAIPvVl-FrNVZ9vAFvkGUItnxG1YKI0jAqKEpENO3Ppas36Xkeu8zZFx6CVqvc3Dyz1JMhYKsrMN5sWvMz_RNoXh_ZX1xVCp7nMa12QZEo/s320/existsources03.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Here, we identify the folder where the Java sources are:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHRfcsYhtR5xiZTMlsFIo2XKqd0EcLaFDQKt4QGwKKG68QqUvogR_Zr3LW3LLTSWH6gOFycbp89hGlAc59zPWntwr7AYprfc-huNdcAXPVoSW5rvJMIh0-HnXL2IvHUPKzvgROQVx6MM0n/s1600/existsources04.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHRfcsYhtR5xiZTMlsFIo2XKqd0EcLaFDQKt4QGwKKG68QqUvogR_Zr3LW3LLTSWH6gOFycbp89hGlAc59zPWntwr7AYprfc-huNdcAXPVoSW5rvJMIh0-HnXL2IvHUPKzvgROQVx6MM0n/s320/existsources04.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Confirm the included packages and source files:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4lRpSqsc6MU0DwW5PHu_NlsHWXRd1pX3M5d-gdQP52i3-UbUBcgdTaaPzoIC-G3xIeNGHwJvOBh5HMdsMmlOMYAULWHamHQxzhbpwpk_9J51qOyiFEaFs3nD2Eg2d-uWQT5gQ7Zk1WkB/s1600/existsources05.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4lRpSqsc6MU0DwW5PHu_NlsHWXRd1pX3M5d-gdQP52i3-UbUBcgdTaaPzoIC-G3xIeNGHwJvOBh5HMdsMmlOMYAULWHamHQxzhbpwpk_9J51qOyiFEaFs3nD2Eg2d-uWQT5gQ7Zk1WkB/s320/existsources05.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And the new NetBeans project is obtained:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUtEFFDRSpFXa1MQboJBpIuJyLTkxXtQn2drp4dwlSE9wWXLwATVBd8oC-EtHT6IBmkBAR4i2cd3FsbS0J3srjHgc6XOcm94FW7Kjb284mW60TtBbzsCq-kBHhju7-uM7trwzwBsxuHejg/s1600/existsources06.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUtEFFDRSpFXa1MQboJBpIuJyLTkxXtQn2drp4dwlSE9wWXLwATVBd8oC-EtHT6IBmkBAR4i2cd3FsbS0J3srjHgc6XOcm94FW7Kjb284mW60TtBbzsCq-kBHhju7-uM7trwzwBsxuHejg/s1600/existsources06.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For these particular project, it is still needed to include the JAR files from Oracle to access the database:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5jAUdWgeklP7lrB_b_siGd50r8qJeytUG92pFzHmW9isajqLCHOAYn4xdwJYN1LwNDR-E2PMIaqQm2jQzyfZT5lDqhg5uFcnJvPcLGP0o0y3dMGhSO26IeKgSULluYHT1UU7efnCV2-m/s1600/existsources07.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5jAUdWgeklP7lrB_b_siGd50r8qJeytUG92pFzHmW9isajqLCHOAYn4xdwJYN1LwNDR-E2PMIaqQm2jQzyfZT5lDqhg5uFcnJvPcLGP0o0y3dMGhSO26IeKgSULluYHT1UU7efnCV2-m/s320/existsources07.jpg&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5jfoMoZZSp4Iru4OHF2iRXaZdVQmQR550boMCtDzttSfpbkotyWYlFrof4Gdxnr6hTR8R2cTaVP4xBsmDk62E1vAEhVL106XAxt_zoCUKgXJF6t1O7pSE03FzXT_JU_YJ2OetJBQtX4fY/s1600/existsources08.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;174&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5jfoMoZZSp4Iru4OHF2iRXaZdVQmQR550boMCtDzttSfpbkotyWYlFrof4Gdxnr6hTR8R2cTaVP4xBsmDk62E1vAEhVL106XAxt_zoCUKgXJF6t1O7pSE03FzXT_JU_YJ2OetJBQtX4fY/s320/existsources08.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For the &lt;b&gt;librarySystemBLL&lt;/b&gt; project we proceed the same way. At the end, besides the JARs from ORACLE, it is also needed to include the &lt;b&gt;HelperDB&lt;/b&gt; project in the libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOZbPOPGSBCzwnc_GMLiSxu6pfNwegUUCrOdbSp37cb09v0gxMHf8C4wAqegmhVYH0DxkcZtudlETtP4fBEXasrxuh0vKVtUHpglM6NVlQd7hjIb5a2uBA6TUZ3TIUecJ5As1nGLAPdQbM/s1600/existsources09.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOZbPOPGSBCzwnc_GMLiSxu6pfNwegUUCrOdbSp37cb09v0gxMHf8C4wAqegmhVYH0DxkcZtudlETtP4fBEXasrxuh0vKVtUHpglM6NVlQd7hjIb5a2uBA6TUZ3TIUecJ5As1nGLAPdQbM/s320/existsources09.jpg&quot; width=&quot;236&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We are now in condition to create the graphical user interface (GUI) project, which will be treated in the next article.&lt;br /&gt;
&lt;br /&gt;
Related articles:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 1&lt;/a&gt; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database – 2&lt;/a&gt; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database – 3&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/1304683141263068934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/example-of-java-swing-desktop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1304683141263068934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1304683141263068934'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/example-of-java-swing-desktop.html' title='Example of Java Swing desktop application without the JSR - 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFPxES0ayZgGgKNIF693kK9iLwDkMHSRkM0f-Lqc6qAioksr8h9xNVKgvvPQt2V4dkO7JFnF1yIQ5wIDf1AbUq7ZGCfGeIBB-6i5Mj5p3SZhQ6Lx4_vhglxS9qYv9Bs6RdlF9hNEK_dhV8/s72-c/existsources01.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-1958022163084943073</id><published>2012-02-23T15:04:00.000+00:00</published><updated>2012-02-23T15:04:20.600+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Swing"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Swing-based desktop applications after NetBeans 7.1</title><content type='html'>In the articles&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database – 2&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database – 3&lt;/a&gt; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
we developed a small example application, for desktop, using Java/JavaSwing.&lt;br /&gt;
For that we used NetBeans IDE, and created a project of type &lt;b&gt;Java Desktop Application&lt;/b&gt; for the user interface.&lt;br /&gt;
&lt;br /&gt;
Since NetBeans 7.1, however, &lt;b&gt;Swing application framework&lt;/b&gt;
is no longer supported by NetBeans, and stopped being part of the official JDK 
(Java Development Kit). In fact, in NetBeans 7.0.1, the following message already appeared every time one created a &lt;b&gt;Java Desktop Application&lt;/b&gt; project:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKz8j3RgC_6b_tpt1Q9Ybu7kj-ALbDFxtC4gNmcwDuhBym34YpbRcQj-j4EohkmwmV95TmpBjUJb-jHduqampQtWAWLrC3BCzmBXhQ-Ixp8Fyz2aL8OseTzqu6s6-o8ObS7Cn8Qh8hI8Um/s1600/NBplatform01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;138&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKz8j3RgC_6b_tpt1Q9Ybu7kj-ALbDFxtC4gNmcwDuhBym34YpbRcQj-j4EohkmwmV95TmpBjUJb-jHduqampQtWAWLrC3BCzmBXhQ-Ixp8Fyz2aL8OseTzqu6s6-o8ObS7Cn8Qh8hI8Um/s400/NBplatform01.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In NetBeans 7.1 we have, at least, two alternatives:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;To create an application from scratch, or&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;To create a project of type &lt;b&gt;Netbeans Platform Application&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
In the next article we will address the first option, lefting the second alternative to a future article.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/1958022163084943073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/swing-based-desktop-applications-after.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1958022163084943073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1958022163084943073'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/swing-based-desktop-applications-after.html' title='Swing-based desktop applications after NetBeans 7.1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKz8j3RgC_6b_tpt1Q9Ybu7kj-ALbDFxtC4gNmcwDuhBym34YpbRcQj-j4EohkmwmV95TmpBjUJb-jHduqampQtWAWLrC3BCzmBXhQ-Ixp8Fyz2aL8OseTzqu6s6-o8ObS7Cn8Qh8hI8Um/s72-c/NBplatform01.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-538549883003734161</id><published>2012-02-17T23:11:00.002+00:00</published><updated>2012-02-17T23:11:53.383+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="EMF"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>First Eclipse Modeling Framework (EMF) example - 3</title><content type='html'>In the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_16.html&quot; target=&quot;_blank&quot;&gt;previous article&lt;/a&gt; we&#39;ve created a domain model for a Library Management System, and we&#39;ve generated a set of corresponding Java classes, by using Eclipse Modeling Framework (EMF).&lt;br /&gt;
&lt;br /&gt;
Now, we&#39;re going to test those classes through a new Eclipse project, which references the one with the generated classes.&lt;br /&gt;
&lt;br /&gt;
So, we now create a new plug-in project:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;File --&amp;gt; Create --&amp;gt; New --&amp;gt; Project... --&amp;gt; Plug-in Project&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, in folder &lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;src&lt;/b&gt;&lt;/span&gt;, we create a new class with a stub for method &lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;main&lt;/b&gt;&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot; height=&quot;345&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgYAAAG/CAIAAACscIjXAAAgAElEQVR4nO2dX2wbSZ7f+z1B7iVANg+5HIIAyWPoi/ggILf3cMH+u5c8ybPY9fQidzzkgDn4cND5YME4YEcjOrnLiJ7dW+2OZaz3dj1/zIy9Ho9ly/LIM/ZaHs9ItOyRZFktWRYlyxRFShRF0jKlGeWhq7vrXzebZHeTFL8fEHazurq6qtn8fbqrxC5lHwAAQN18/fX+V1/vf/XV/t5XX+uv3T3yKu99Xd4lr5e7X70sf7VjvF68/OrFy69KO1+Vdr4q7nxVfPFV4cXedmlvu7SXL+7li3tbxb1cgbw2t/c2tnc38rvZ/G52azeztZvZ2l3Plddz5XSunN4sr22W1zbKqY1yaqP8PFtezZZXMy+f6a/1lyvrL1fSL5fTL5Ppl8m1naW1naXUztPUztPnO4vPdxaf7zxZ3VEafRgBAKDl+Xqf+KBaJexACQAAcMAwbxFwlwAAAG3N119DCQAAAPb39+tRwsvmU8JZAAAA4OzZs2fP4i4BAAAAQckBAAAAuVwul4MSAAAAEKAEAAAABCgBAAAAAUoAAABAgBIAAAAQoAQAAAAEKAEAAAABSgAAAECAEgAAABCgBAAAAAQoAQDQdsRisWPHjh1tY44dOxaLxcQjAyX4wsyjxyMf34p/cBkvvPBq1Gvk41szjx6LX8/oyZOnTp1KpVJ7bUwqlTp16lT05Enu4EAJvpBcTq9lco1+piEAbc1aJqctropfz+7u7nQ6XS6X821MuVxOp9Pd3d3cwYESfCG5nG701wEAsC9VwtGjR/f29hodkxvP3t7e0aNHuYMDJfgClABAM2CnhN3d3a22Z3d3F0oICCgBgGbAQQnBh4VmA0oIDigBgGbAQQmbbU/1SoirCkGNexcuK6DvNBxN2K4W10kTG4lECVqsU+mMaTWf20MRZnPubT17GYooFpEhIyUyJCmbFM5sUk+r2GrYlSSsGoqI1QNAxE4J5XI5Wzvvv0qd/6++X0dJDaVcLlejhEQ0bJogEY0G5IS4WsE/LauEenGnBA9KJimdnWKiQinBq707VMNulRbj6waAHN+U0PHGeDabzWbH3+hoWSlUqYTGhNmKe4USpG89LJmkRCJs3B2KKJFIpBmUoMU6cYsA3OGghEztvHdE6ej9XFxuMapUQi6uiv03iWiY70uiw7G5HFeVsKqGjVzWZmQrIcHcow4p0Xl3xtpwNComGltQNQlQHDIlWHHN6naJDOn9MVaIM3KxefbtlaDFOrk+HypqxyJ8346RvTMWs4/vegrdO6NfmA9V2GSIFB4Zsqol7prplJLUR2gTuzvKCJK2RyKdxlZ8KaANcVDCeu28d0Tp6L1nLB55z0w8cqRD0d/f6+0wznZ9vZWR3vxeb8eR9+jcJI+Q4AfVKiFnxlcqHNMx3Yr+MiUwQZoNxdQmcdV2VYXdWWsT0bAiVoaUTNWkaZTAp1CxV+gkt4vCkm2F/FREFZZsBgaYEGyVTbpq2MKZbYYiClMeZT9+19SAh119jJYORYxGmm13OFhDEYWxCnqXgJ0SSqXSQu2cecU6/V85QyUeOjFqLpMVoycO6clnXiFJZ145dOiQnnP0xKFDJ0atVVZRVknGkveUSqWa/uIoESVX+/ToQi4XV/U3tncJlBHY0QHq2p8WDltCpd0lomErvlOJfMmN6VOqoAQroppB0IibdOjj88iUQIVSdi9cGDUyW1krXfJT+Y36udjEblm4FyI3SGJ9qJsJQziiJPSvu13b+d2BtsVBCVrtDB5WQj03NE3TtBs9IbLMJR4epHIfHtS0Gz2hUM8NTRs8HOoZ1JeNpBs9IcXcmLy1sErymFqVYAZnL5VgN4RcvxK4kptPCVa0siKivsS85/OwY6psyNOjqH3UrlUJ+gZD5laBKYGL5mx92Et/WduhBEBwUMJc7Qx2KaGeEX15pCekdA2yiWaakbtrUE8N9YwMdoV6RuZGekJdg3qCkW2kJ6QoStcgv7l/VKmEeNSIpGavDdeTY3XbkESrk4YOxNKOI7s47dBxZI0NOHYcOXVSNUXHETMKQIWwzkikk+oSEfLQ3SJUL4xx6lsX9PZKqNhRw1V1n+0FqkcJfMdRhY4s4W9ODVvI4rzQdu7ggvbFTgnFYnG2dt7uUkLHh2dnZ2dnh4+HyDKVOPt2l6J0vW1msBZDoZCeafh4qKury9xg1sxwfFjfnF1lFi4u1E6xWKx6eJnv27F6ZqjgamZUVcldAluUMLxs33Ek3x0b4sk66fCy0HHUJEqwRlTpP+rRYp3SUVchD92ZtC8OQzsrwcrPDi9byGKrWa16lEBXn+3s4evD9h1RHUe8EWzbLl8N2hDflGBCa4CK0cPHQ3wG2h/sslUekQe1uZ7WFEoAtWOjhGYKTa3XtUIPIwDgCgclzLQ9B0oJioxGV8pCogQ//pS/DsTeGQAOHnZKKBQKU74hjU7+7a5mCoXCwVFCk8MogXSDNEMA5ntkADjYOCjhYdsDJQQHHnsHQDNgp4Tt7e0Hbc/29jaUEBCYVQ2AhuMwq1oymcxkMvfbmEwmk0wmMataQKyvbyyvbeKFF16Nfa2vb4hfz5MnT/b396+srGy3MSsrK/39/Scx9zIAAPT19XV3dx9tY7q7u/v6+sQjAyUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAABoO2Kx2LFjxxr924BGcuzYsVgsJh4ZKMEXZh49Hvn4VvyDy3jh1Q6vkY9vzTx63OivnVuiJ0+eOnUqlUrttTGpVOrUqVNR/Ho5GPCMI9BW2D1NqDnp7u5Op9PlcjnfxpTL5XQ6jWccBQSehArajRZSwtGjR/f29hodkxvP3t7eUTwJNRigBNButJYSdnd3t9qe3d1dKCEgoATQbrScEhpdi8YDJQQHlADajZZTwmbbU60S4qo1b2g4mnB/wONqdfkPIBIlaLHOuuba5OZutpnKuZa9DEWoGWIjQ0aKMBGnFus0pgtlNumMaS42qbaBzquEFKvhPkxybTUXs5Pa0lpKKJfL2dp5/1Xq/H/1/TpKaijlcrlaJZDInoiGqwnyUIIfdwnulOBBySSls1NMVBTbsFtxkxqqUaGGrjPXhxbrNE2gxWKunOCDlpqeNlNCxxvj2Ww2mx1/o6NlpVC7EqqM8lDCQVBCJMIG+KGIEolEHJXguEkN1ahQw4CUUEt5UEJToyshUzvvHVE6ej8Xl1sMb5RgdSepcSNnIhqm08zMcZVK4rcyNgpHo9aO7EpqNWRKsMIE2w9BX4VauYS+CjslaLFOrs+HitqxCNW3o39xSfbOWMw5vse0oYhVLy3WqafUvAldU6q9kvoIbXKlBLZuQ2axmrk2EunUC5Qe20ikU1E6OyWfxVCEudORfl50jaleNT2ftDlGDSND1vqW1kjLKWG9dt47onT03jMWj7xnJh450qHo7+/1dhhngb7eykhvfq+348h7dG6SR0jwA287jsy14kp9VSIapqzBbxVXDTskomHFSjRKiqvhaOKgKoFPoQIpHVPZrWyUwG9A56dCkLBkMzDAhGCrbD28c4Uz27jaxFolJLL1sSK50ciqlGCUxO5ICLjMJpauJZ8FCdqWQbg8tp+CXXMUsbL0EWpFWksJpVJpoXbOvGKd/q+coRIPnRg1l8mK0ROH9OQzr5CkM68cOnRIzzl64tChE6PWKqsoqyRjyXtKpVLNw8tUbLeSw9GEHtG5yB9XlXCY84S4lbXaCPzWLQK/z5ajghKsiGoGBiMW05GEzyNTAj+AK1UIldnKWvGS38pv1K+OTYRra3KDJNaHupkwwnD1dwkauyMuv9OxlX0WOlqs0/Ifm8f2U6jYHLvl1qPllKDVzuBhJdRzQ9M0TbvREyLLXOLhQSr34UFNu9ETCvXc0LTBw6GeQX3ZSLrRE1LMjclbC6skj6lBCcIluiUAI6jLlaCEw2G2j0jYSq6EVvYAhZMSrOBoRUR9iXnP52HCJxdh9bBjH7VrVYK+wZC5VR2bVKcE7mK5ZiWYZXExmju2TGn8Z0FhbirNI/sUKjYHSmgAuhLmamewSwn1jOjLIz0hpWuQTTTTjNxdg3pqqGdksCvUMzI30hPqGtQTjGwjPSFFUboG+c39wwslSLqL7DqO2PEHPq9dx5Fwb3HwOo6YUQAqcHRGIp1Uf4SQh+77EPsYqKtzeyVU7KjhqrrP9my4UoLDJnTHUYWOLLZ0cb8VOo4Es7LVk3QrsbqlR8qHYrRgKIfzo+myT8G5OQ7LrUdrKaFYLM7WzttdSuj48Ozs7Ozs8PEQWaYSZ9/uUpSut80M1mIoFNIzDR8PdXV1mRvMmhmOD+ubs6vMwsWF2ikWi3UrwRoUVlXrOp8bPGYMoISjCelWxkY2w8uKosYPphKsEVU6pli9EtZbaR66w2Of7gPhYp9td7ZRAD28bCFENC1misqlEuSb0NWX9OHYDC9zPS1DLuo8ZIwVWwdFvHVgjy3fHNa41L4oDTN5+E/BSOCHl9Fx1BR4oQQTWgNUjB4+HuIz0P5gl63yiDyozfW0plBCUByg/iITGyU00+ChpEMDENx8VE32cTaellPCTNsTkBIUAef8Qm/RQUCihCa7BBS7MwBBOoxQQ542o7WUUCgUpoJFDIwmAdfEpFAoNM9dAtdDdNBglED6DZohhPBdGIBFPz7On5SbPO1IyynhYdvTVEo44OCxd6DdaC0lbG9vP2h7tre3oYSAwKxqoK1ouVnVkslkJpO538ZkMplkMolZ1QJifX1jeW0TL7za57W+vtHor51bTp482d/fv7Kyst3GrKys9Pf3n8TcywAA0NfX193dfbSN6e7u7uvrE48MlAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAAAAgAAlAAAAIEAJAAAACFACAKDtuDoyevGjqx98eKVtXxc/unp1ZFQ8MlCCLzx8+PAiAKDRPHz4UPx6Xrpy7ZPbY1v5/F4bs5XPf3J77NKVa9zBgRJ84eLFi8vLy41+8AwAbc3y8vLFixfFr+eFy0P5/Pbu7m6hjdnd3c3nty9cHuIODpTgCxcvXtzf3290LQBoa/b396VK+ODDK3t7e42OyY1nb2/vgw+vcAfHVglv9ve7eXn8GR4UoAQAGg6U4EzVSqhYIpRgB5QAQMOBEpypRQkXLg9zr4sfXf9o+OOR0U8LvBLiKjV1XDUzpcVV9zNtJqLhVpiWE0oAoOFACc7UqIQv7k+br8kvZ6dn57WFxU9v3ylIlFBbsK55w6bdEZQAQOPxTQmT51+3OD/pUYQOnLqUMPFg5uH03Kz2ZGFxKbm8Mnb3swKUYA+UAEDD8VMJA6PJQqFQKCRHB1pWCjUqYeLBo8mpx1OPNG1hcSm5/Gx1NZVKjU9MFCorIa4q4WiU9CdR6xLRMN2/RG1orTG7nuwy2xRuZA9Ho2x9qH4tNRoNU11bpMi4qoSjcXNzvkCxsg5ACQA0nCCUwCy3GLUo4cOrN6Zn5+fmF58uLadSqUwmk81ms9ns1PRMwWksQY+3cZVZ1JfE0QA6yhuR2swVV9lxCSazUDi7G6miEsaiUayxGFdNFVh1ZDYxxQElAND8BKGEyfPGTcLk+dcHzp8fID1JydEBtmfJysjdZJyfpHOTPEKCH9SihGsjNxcWl1aePUun05ubm3mD+YUnBZd3CQl2OcFcoDusIpGaD+3sXYJYuJW1Yn0Mi5A0Jj+99xoGzaEEABpOIGMJZsiePP86LQo6uA+MJiknTJ4fGBjQcyZHBwZGk7QujM2tkvy7B6lFCTdu3lpeeba2tpbNZvP5fKFQKBaLhUJhKZksBKOEXC5nRGZJx1HtSiB5qS3otUZVJLV1BZQAQMMJaixBX7YdYCABn4T/wuT5gdFJfdlISo4OvE51P1F3GL7eJ9SihFu/G9N9kMvlCoVCyWB1dbVQmxKq6DhiYrERux2V4L7jiJSoqmG6EGO1tXcq0a6VMqAEABpOIGMJZvivpAQiAP2yPzk6cH7SMIJV0OuGPAIZsq5FCZ9/MT41Na1p80+XllafP0+vr69nMuvrmbW1dMHxdwls+M4JyxWHl6lrd358wkEJVn5heJlaSY0icKPMqhrmu4joviM1DiUA0Co07C6B7ziyFukuo/Pn+U4h60bidW7M2ixcXKidNvv1sos+H3bo2ss/UYUSAGg4gYwl2PzpkdX5wyWKLqHLM24O6L6j85PNooSWfsaR0OPDoAhACQAcMPDrZWeqU0JrwvXyOGdzHGmoDygBgIbTVEp43Z6Aa2LSDkpoFqAEABpOUymhCYESggNKAKDhQAnOQAnBgVnVAGg4mFXNAcyqFiiYexmAZkA+9/LQ8Ce3x7a3C37Pb9zMbG8XPrk9dmlomDs4UAIAoO347ZVrFy4PffDhlbZ9Xbg89Nsr18QjAyUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAAAAgAAlAAAAIEAJAAAACFACAAAAgq0SzgIAAGgDXCmh0c+1BQAAEASulAAAAKDdgBIAAAAQoAQAAAAEKAEAAAABSgAAAECAEgAAABCgBAAAAAQoAQAAAAFKAAAAQIASAAAAEKAEAAAABCgBAAAAAUoAAABAgBJ8YXxKe+fqnVPnruKFF16Ner1z9c74lNboYNBiQAm+8PjpejK91ehH3gLQ1iTTW5PzzxsdDFoMKMEXHj9db/TXAQCwDyVUC5TgC1ACAM0AlFAtUIIvQAkANANQQrVACb4AJQDQDEAJ1eKghLiqKIoaZ1PC0YTvdToAyJQwFFEUJTLEpWqxTkXpjGmy01mLddqt4grQIXmHIpW3AqAtgBKqxVkJ4XCYlgKU4BYbJXR2dnLBeihCxfKq0WKdtGW0WGxoH0oAwARKqJYKSojGo2HLAlCCW+yUEImwThiKKJFIrRFci3WKdx37UAIAJlBCtVRSQoL2gLUYV43OCnITYfjDSEuQRcohZpK+zYH2i50SYtpQxArjWqxTT7F6fAgki7lqKKJ0xmIRpn/Izgj7DgVavUyRIfEtAAcNKKFaKitBtiDNo4iLubhqSIMxC6eag4e9EvYtJ+hGkFzUsyYgC0bYHopY8Vx+M2BfIO2jfeEtAAcOKKFa3Cghl4urihrnUxT6NoAO8LJl6xaBvrc4sDgowQzlRkCmIrh1VS8qwYzyVDmV7hL4ArmxbKehbQAOAlBCtbhTQi4RDStqnI7velBPGEMNbpRw0D1A4aQE3QlD5jW+GOLN639HJVQcS5AUSN7QPUXcWwAOElBCtbhUgnmZH44mqDWJaNjlXUIuripsR1G7dhyRRYV+Y9w1WKHejRKEv2vl/uJIUqCZkelzsu2CAqDFgRKqxbUSiBQsFSiKooRV1eVdQo7tO1Ljba2EfS3WaUZyJnIrikL9XVIlJewzP0sQfpcgFMgNNwujzwAcMKCEasGvl30Bv14GoBmAEqrFGyUolfBkLy0ElABAMwAlVEvbBetggBIAaAaghGqBEnwBSgCgGYASqgVK8AXMqgZAw8GsajUAJfhCKr0x9zyHF154NfaVSm80Ohi0GFACAAAAApQAAACAACUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACT6SzWbH7t595913T7311qm33nrn3XfH7t7NZrONrpfHtEkzNzY2FhYWEgbj4+MLCwsbGwftz97bpJnADueHY0umP6MekV0Rev4cdjq2cDRBJx5EVldXz/7qV8PXr2uals/n8/m8pmnD16+f/dWvVldX6yhY+lRx2aEOhDqa6fh4dPM8cVsRfx+2nk6nE4nE7OxsMpmcm5ubn59fWVmZnZ1NJBLpdLrq4rRLva/1XtJ8qGh9eNzMoLl7uimPamtRYb6EcFicbNn9N1U6V3NbTK6WzWZ/efbs7du3s9mN6zfvvPGTX77xk1/e+PROdmPj9u3bvzx7to6LaEclBAvdzLF7E1eu37xy/eZnXyTcNdOhzjWcJw4zhNfLxsbG+Pj406dP0+n0wsKCpmnz8/NPnz7NZrNPnz4dHx/3+SI6oEgXVDOrbY77/FCCB1RQgjlFjpWmqq6/clIlHOQ7A5Oxu3eHr19fS6//74F//k/fUr/9P/8u/D8if/DHh998+zfrmczw9etjd+/WWnYTKcFs5uVrH3986+5nEw/vJb6889n46Kd3XDTTWQnVNsdHJSwsLHz55Zerq6uapj158iSZTK4YbGxsPH78eGFhwcv98QQU6YJqJpTQ1FScVS2uWpdr+kzL8onSrGs6c8q1aJT9lup3GOJ0nXQ5ejHERoqixrl1LeKUc+fOzc/PD4/+7j/+yQ9PfTh2d/2r/3Vr6l//8Q9+/5td98Yn5ufnz507x24RV5VwNG4euoSVKJmy1CEnP2M2/+n40Mw7n42P3r73xf3pxMNH07Pz80+efjn1aGp6WtZM6enB1ZQ7T6j3pBn2h4U6xzxs8/j4eDKZXFhYWFxcXF5efvbsWTqd3tjYyGQy6XQ6nU6Pj4+zW9w9/VrvpbuXel977bXXzCh19/RrvadP97722um7JHhpl3pfO32X2UjL5e6efo1w+i79jmTVSLGvUZs2azPp2urv3TSHTnKRXzMrcAlKqJ/KE21aTtCNwE6nbK0SEqlRB2nAkiXGVcMWRhKtpFzLKOHUW2/l8/kT//fn/+V7r8amn/0wsfCf//nBv/k/d7/xh9/uH3wnn8+feustdou4aobACjNaO+eUzIvtdzM/Gv544sHMlzNz2sLiysqztbW1VGpt8sFDu2banx70CeBwJ+R8Fnl/iiQSifn5+SdPnjx79iyVSmUymVwut729XSgUstms3v/ObnH3tBkjrWGDu6fZuEnCvxHZqMUck4e5+KWW7572Nv7500yjUUwGh+aIwyzO+a1daJd6X4MS6sbF3MvEBGZwpkcyrWhN1hqZmRKcv8z0nMzivUA1w9nNgx4rfxwb/MYffus/9I/9wZkH3/j5g3/VO/aNP/z2wK//3+bm5ls/+Qm7BRPI+EPNZHDOKf90fG3myOitR3MLT5eW19bWNjc3c7nc5mZOm5+XNFN6ejifADn6NqFhStA7UjKZzObmZj6fLxQKpVKpVCptbm6ur6/LYqUVm4xYLw1tpgioAG9dGQsxlLro9vw+wftmCndBsgxsc9hN+L1I8zNVgBLqxYUS9O9x3Pwy+6EELnjx32o9aLTQuPRvzp1bWFj45M693/9m1+9984e/9/rdf/Hju//yv/3w33/z8OP5JwsLC7+RdhxRHT7ulCDmDFQJejPvP/hyemZW90GhUCgWixsbG6lUStJMWyXYnwDWWnPjoJUwPj6+urq6urqqN7BQKLx48WJnZ6dUKm1tbemjsuwWdGwyg5z8alePaVZks2KimWYbZL3F+2a6UgLbnMpKEPJDCZ7iRglMXwXXg0F1HJnDADV0HHFfYsm3mu+1am7Gxsauj4xkMtlf/Dr+7/6o6xsd3/23//W7v/9HXReu3czn89dHRsbGxtgtqIPABEGq/1w8XMxhb0DHkdnMicT9pWQyl8sVCoWtra319XWHZspOD/sTQNIgu8PilxJmZmYeP36se257e/vFixcvXrwolUq5XK5UKmmaJoy7Up0nVhSz6QDRLvX2nj7dS/UfSbpimDsIn8KeP82kO47kGdjmVOw4Etei48hL3Ckhl4iGzes46bCw5DZfGF7O2SiB7Trg+g24scUWUYL515m53NaD6Ufv/Hb4/Y9uzC8mt7e3bf460xxRZ0dGzeZbf+glzWl3hP0dXqabmVxeXll5tpZOb2xs2jdTeno4ngDWeDT15282h8W8jfW2zRsbGxMTE8lkcmtra3Nzc9ugWCwuLy9PTEwIf51pDrHSvTs2StBDmXXta46Wnj5tXACTniR+fNXjjiMfmknXlrmYd2wOO75eMb+RHcPLnoBfL/vF6urqL8+evT4yommafhs+Pz9/fWTkl2fPyn7D1SKuE6iyma1KOp2emJiYm5vTJZfP57e2tubm5iYmJmS/4WrVHow2aSZwAErwkWw2OzY29s67777Z3/9mf/+5c+fGxsakv95SZARf4dpw30xPaNSx0p/0MD4+7uJJD25j5WsCXte6avxoJk1TNRaItEzcOei06l0CkNEml89t0sz2AkoAAABAgBIAAAAQoAQAAAAEKAEAAAABSgAAAECAEgAAABCgBAAAAAQowRf0H21VfDW6mq44SG255I5GVxOAhgEl+MKb/f2FSrRKGD1IbZGG+62trXw+r08MUCwWoQTQzkAJvqCH0QuXh7nXxY+ufzT88cjopy7CaLP8nrmWtuhPngtHE1U/j9XfVovhnvOBZ0oQH+gJQCsAJfiCGUa/uD9tvia/nJ2endcWFj+9fccjJdQTQN1uW31bqKem+1ar2uDCPecDfboYRyU4P8IBD3gALQ+U4AtcGJ14MPNwem5We7KwuJRcXhm7+1nrKsFFW4KoVW3Q4T6fz+sTh+ky0KeL2dnZgRJAOwMl+IIZRicePJqcejz1SNMWFpeSy89WV1Op1PjEhKgEYXKDuKqEo3Fz8np+YgE1bm1hzjGgqmHzjTBVgsO2XrbFLJmdRTmu6lMkMM2xabWfStja2tJvDjgZvDRgleA0NTz7XH9urTAjgvcTHADgPVCCL+hh9MOrN6Zn5+fmF58uLevzm2ez2Ww2OzU9Y3+XwEw2x08oZky1LGTOyeYmozOInfrV3SVU0xbbufOEmfekrfZXCXQ30YsXL0wTlA0YJZhTI1vvxfsAeiJlcZIcjCqAVgJK8AU9jF4bubmwuLTy7Fk6ndbnN9eZX3hiOyRrXUMzwdGa2pqfwU42S51YmosJrr1rS8Upo6Wz5gWkBM4Hpgl2d3clSuAnb2SVYN0Y2CvBz9mSAfAcKMEX9DB64+at5ZVna2tr2WzW7KkoFApLySQfRitMOs9EdL0DSJh31HEK+7qVUEVb3CuhQoTmc2sAACAASURBVKu959KlS3RPUZlCroRcLmf0+9hPJW9OCQ8lgJYHSvAFPYze+t2YHkNzuVyhUCgZrK6u8mFU0sFDdQQJAd2IoPaX3rIp7OvpOKqiLe6VIG+1v0oQfbDLIh1eNqI+FfQlPUPoOAItD5TgC3oY/fyL8ampaU2bf7q0tPr8eXp9fT2TWV/PrK2lhTAqTjpvDhezg6/CaCw9vOw0hb2wsctp66tvi/uOI3mrfVWC9P7AVgn8zPD01PDGoHHv6dPkLoFey+kBw8ugNYASfOEg/eL3ILXl0qVLzj6wu0sAoE2AEnwhmOcCKRSeVFtKkM848rs5wT/j6DUBDwsHwHOgBAAAAAQoAQAAAAFKAAAAQIASAAAAEKAEAAAABCgBAAAAAUoAAABAgBIAAAAQoAQAQNsRi8WOHTt2tI05duxYLBYTjwyU4Aszjx6PfHwr/sFlvPDCq1GvkY9vzTx6LH49oydPnjp1KpVK7bUxqVTq1KlT0ZMnuYMDJfhCcjm9lsntAwAax1ompy2uil/P7u7udDpdLpfzbUy5XE6n093d3dzBgRJ8IbmcbvTXAQCwL1XC0aNH9/b2Gh2TG8/e3t7Ro0e5gwMl+AKUAEAzYKeE3d3drbZnd3cXSggIKAGAZsBBCcGHhWYDSggOKAGAZsBBCZttT/VKEObw8g1/59IKHokStFin0hnT6j/JhyLelMMWaUAVLduRZ60AIAjslFAul7O18/6r1FQlr75fR0kNpVwuV6MEer7fRDTqrxPaQAme4bUShiKUCOiQX/+OfLAXANXgmxI63hjPZrPZ7PgbHS0rhSqVEGiUhhLc422c1WKdSmRImgAlgJbHQQmZ2nnviNLR+7m43GJUqYRcXFW4OG0/zXrcmFbdzG9MtE7N/a5PLq+/5VZbJQudVVxO9m2zqkSmBCs+Wv00kSE+KBu52DxuyjFWxSJ8F5AW6yQpMT5GC0bY39dinXqeoYjSGRsytxVuHYxiqSrSSVRvFN8EAALCQQnrtfPeEaWj956xeOQ9M/HIkQ5Ff3+vt8M4/fX1VkZ683u9HUfeo3OTPEKCH1SrhJwZf43+IzslGCpIRMO0JxIkYziaYAVj5TMQQ7uREleZgQzxbQsqgU8ZiphBk1qstJUkZShixt+hiLikxToVUQn8dbxpiaGIqQKrP4nel6WJzpgmG2fAXQJoMHZKKJVKC7Vz5hVrKOGVM1TioROj5jJZMXrikJ585hWSdOaVQ4cO6TlHTxw6dGLUWmUVZZVkLHlPqVSq6S+OEtGwcC3P3yUYUZlEbOtSXnY9T49S5LjS6NuEcDRBiuJuPprSAgwVlGBdQJvh1QjfZgjl87gsh97eCNRWAUKMrniXQG1peMKM/xSRIVlRUAJoMA5K0Gpn8LAS6rmhaZqm3egJkWUu8fAglfvwoKbd6AmFem5o2uDhUM+gvmwk3egJKebG5K2FVZLH1KoEK4ZXVIKR0TnoO6y1ViWiYb4XytyGe9uEOCnBCp1WtNaXmPdCHhflVK8Et2MJ9K0Dt3fbkqAE0HAclDBXO4NdSqhnRF8e6QkpXYNsoplm5O4a1FNDPSODXaGekbmRnlDXoJ5gZBvpCSmK0jXIb+4fVSohHqUDPRewqX4gqkfIWu88DmHfcWTmErIwijDftmLHkRkn6Y4WLdbZGYl0Uv1HFXtsnPJw+cWOI+5Wwwzl9J8fUcsSTzB/qGS0AR1HoLmwU0KxWJytnbe7lNDx4dnZ2dnZ4eMhskwlzr7dpShdb5sZrMVQKKRnGj4e6urqMjeYNTMcH9Y3Z1eZhYsLtVMsFqseXqZ6ftg0VaXvElQ1zGVk+o4kA8HcKDKjAkVRlLCqhs0xCDajdLsmw7HjyBztjUQ6mctw6iJbzCN24jvk2ReCvt67FBMKYTIozEjwUETpjEQ62XTp8DI9vs0kkPcYXgYNwjclmNAaoGL08PEQn4H2B7tslUfkQW2upzWFElzSrFG5odgoodGhUdK3Uy1N0AoAXOOghJm2pzolKAI2GaEECRIlNEEnitjXU0sRjW4FAO6xU0KhUJhqVsTY69OOCoUC7hICglEC6WBpVCiV9O/UUQyEAFoJByU8bHt8UgKQgMfeAdAM2Clhe3v7Qduzvb0NJQQEZlUDoOE4zKqWTCYzmcz9NiaTySSTScyqFhDr6xvLa5t44YVXY1/r6xvi1/PkyZP9/f0rKyvbbczKykp/f/9JzL0MAAB9fX3d3d1H25ju7u6+vj7xyEAJAAAACFACAAAAApQAAACAACUAAAAgQAkAAAAIUAIAAAAClOALP47G8MILr2Z4NToYtBhQgi/8OBpr9C83AQD7dkqIxWLHjh1r9G8DGsmxY8diMcnBgRJ8AUoAwEPWC1/XtqFUCdGTJ0+dOpVKpfbamFQqderUqaj7Xy8bU9l48ZBTfd6bdnpeKpQAgId4q4Tu7u50Ol0ul/NtTLlcTqfTVT3jyPmp1+6fiR1Xm3ueZD+AEgDwEG+VcPTo0b29vUbH5Mazt7d3tMqJNr1SQjvdIORyOSgBAE/xXAm7u7tbbc/u7m5tSoirSjgaJZMecxMik+t/a6Zl/T0zITO1IT93ck62sZDAvm8FxUAJAHiIH0oIPCo0HfUogQr1VNA3AjO1HFdNZ1hJkhBuJiaiYW61UFpcZTqeoAQA2gw/lLDZ9tR3l8BHfyrRuoiXXsmzIdy6TQhHE/q27ECDWFoiGm61wWkoAQAP8VwJ5XI56xvvv6oor75vv7LjjXE3ib5TLpf9UwI3fmyjBCtnIhp2UIJkNFo3RasMU0MJAHhIKylh/I2Ojldf7bAL8e2gBKabiMuW4zqChO4iaceR/J6AaAQdRwC0GX4oIeMPn/d2dPR+rv8rW//eEUVcI030neqUQP0uQR7fSQ8QPwDs3HFk5Aurapgxis3wsqKocX49lABAm+GHEtZ94V5vR0fvPet/K1lRFEXp6O09ohgrpIkBUu1dAqgdKAEAD/FcCaVSacEPRk8cOnRilF1aWDjziqK8coakKoqeLk0MlFKpVIUSzMt0T0NluwAlAOAhfihB84EbPaFQzw1zWTk8yKdqg4eVUM8Nm8RgqU4JoB6gBAA8xA8lzHnPYJfC0TU4Nzc30hMK9YxYeUI9IzaJwQIlBAeUAICHeK6EYrE46zlvdymh48PW++HjIaXrbX2FvjA7fDykkEx2iXYL3lMsFqGEgIASAPCQllCCGLxNJ8y+Te4fQsePW7kkiVDCAQVKAMBD/FDCTNsDJQQHlACAh3iuhEKhMOU1/DiCgec78opCoQAlBASUAICH+KGEh20PlBAcUAIAHuK5Era3tx+0Pdvb21BCQEAJAHiI57OqJZPJTCZzv43JZDLJZLKqWdVA7UAJAHiIt0o4efJkf3//ysrKdhuzsrLS399/0v3cy6AeoAQAPMRbJeRyub6+vu7u7qNtTHd3d19fn3hkoARfgBIA8BDPlQDsgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDoITAgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDoITAgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDoITAgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDoITAgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDoITAgBJ8AUoAwEOghMCAEnwBSgDAQ6CEwIASfAFKAMBDPFfC1ZHRix9d/eDDK237uvjR1asjo+KRgRJ8AUoAwEO8VcKlK9c+uT22lc/vtTFb+fwnt8cuXbnGHRwowRegBAA8xFslXLg8lM9v7+7uFtqY3d3dfH77wuUh7uBACb4AJQDgId4q4YMPr+zt7TU6Jjeevb29Dz68wh0cKMEXoAQAPARK8AMoITigBAA8BErwAyghOKAEADwESvADKCE4oAQAPKQplTB5/nWL85MexOiAgRKCA0oAwEOaVQkDo0ljsQWlACUEB5QAgIc0uxKY5ZYBSggOKAEAD2l2JdBGSI4OMJ1Jk+dfHxidJInnJ631lkOsTfRtkqMD1E2HWThfcr1ACcEBJQDgIc2qBHEkgfHEwGiSZNPTqEWqr4nqdUqODrxubGSUaSyKJdcLlBAcUAIAHtKsShgYTbLX9NT1vqEKu/4l2eaMAAxh8LcInt0nQAnBASUA4CFNrYRCITk6YC3x0bo2JZAyHUuuFyghOKAEADykyZVALU+ef50baK6kBL7jiLrhGDh/fsDUgFhyvUAJwQElAOAhTa8EaxSA6eFx03HEbELH/OToANtBxJdcL1BCcEAJAHhIUyqh5YESggNKAMBDmlAJr8vwJFIHBpQQHFACAB7ShEo4AEAJwQElAOAhUIIfQAnBASUA4CGYVc1zMKtaoEAJAHiIx3MvDw1/cntse7vg9/zGzcz2duGT22OXhoa5gwMl+AKUAICHeKuEXC732yvXLlwe+uDDK237unB56LdXrolHBkrwBSgBAA/xXAnADijBF6AEADwESggMKMEXoAQAPARKCAwowRegBAA8BEoIDCjBF6AEADwESggMKMEXoAQAPARKCAwowRegBAA8BEoIDCjBF6AEADwESggMKMEXoAQAPARKCAwowRegBAA8BEoIDCjBF6AEAJoBKKFaoARf+HE0hhdeeDXDq9HBoMWAEgAAABCgBAAAAAQoAQAAAAFKAAAAQIASAAAAEKAEAAAABCgBAAAAAUoAAABAsFVCXFXUOP0uHE1w69hEnUQ0LCZKC/GY2gqvv0q+Nsr9Hn2qhlGs9bEG315PiKuKDnVSAwAE7O8SaCckomHFigSJaDgcTVQfHTyPJnSBPimh/gye0wgl1LijIA+O477iUX1ViwoNgMCwV4IR+PVFNRoNE0OYK6CEmvdbD1BC7fuiTmoAgASHsQTz66MvmHcN9EI4Go+GFUWx7iHob2aCrCO369L8JsxaNW5tbOVkyjO7AhSrF0ss3NqE6jJImNmiQhyh9yHbBW8g6X65hlstNN5SRSUM10qqar9Hdj9CQxLRMLVrcwu3u8gJW0oXjFJsm8vuTPpZyI882ZGqhsk7YRdW6eSjsduXbfcnAEDEaXjZCGFxlfQTGd1F9LfSig+UJ4zww34Bpfnt1hrbSkqmq0KHM2llFOveRljN9ocxbabeSyMmGxm5FvOFCIXH1XCY8a19VR2U4LYh1ufodhdi87kFWjni52J39MS9m8jPFsl1hu0ubBpi5scNAgAucPyLIz2WGBFF/05R3yzHgMVep9rnr7iWLpDC9rLdtg6kHUxoEKrBB1c3SmCKI7uQ3AbR4T8cjevLRpK0qhWPsENDGP+YxnK5C/FDYRbCdPiWfC7i5nZ7pw+7/dki3YV1Y2B788Tnx9AyAJVwVEIiGg5H4/Qgghql4lDwSnBZYB1KMBpKd1+4VgKzP6oQ9oAm9BidiIbVON0557ESBIV7pgQlHObaaRdrPVSCcCCtGySpEhD+AagF598l6GGN7ZyxvmzOIVLaFVCHEpiehCo2oTor+N4ku6v5nPyvqqhIY9WFqpUQicS+ikQ0THcZqarZDSKtqt0eXXQckZ2pKqNwl7sQjzC/wHTN2B1Ep44jLmRXPFvYtZKzzDG/fKcAAJ4KP1XjvqnU1zrn4qrZurev5oLUfpnuEDB7x507kaxNuGboScLwMldlZhfUWlWl26uqYdk2wk0Cd0C5g+tYVW6PVDS2aYjk83K/C/FDkSufXpS2mDl60r3bHnr2DOF3YQ6sW86z2Zciug8AYAd+vXyQQf85AKAqoISDC/7GBgBQJVDCgYQbBAIAAFdACQAAAAhQAgAAAAKUAAAAgAAlAAAAIEAJAAAACFACAAAAApTgC2/297t5NbqaAADAACX4wpv9/QUZOzs7L1++LJVKhUIBSgAANBtQgi/oSrhweZh+3RufPPPuJ8f64vOLK8VisVYlSJ/eSj/81bdfqHlYuLwo+YNpvShZyMI/YdvxwR+1NFwv2nh2YsVdVI8XBwsAHijBF0wlfHF/Wn+NT85kN7a6/vLMn3z/reGbk6VSyRcleFagJyV7WxOPkD6QPBGNis/aqwvu+VJ+PG4KTywB3gMl+AKnhIkHM0+Tqxev3f/v33/rz4+de/48VUfHEZRQF1YcleyttZSA5xoC74ESfMFUwvTjhcXks+nZ+fx24chf/+pbP/jpjdsz2vy8oIS4qjhPZM0+nto2Jz/Bg6xbxGF+aa4rhVtbsfCa5nx2mgqbaax0Rm7Z48ypQxFV2fwJdg4o6VPCrcYakz87lyltQmUlSGsuTjdNlSkcc9wnAK+BEnxBV8KdexP37i/8+sJn2Y2N659Of+fIz/7sb8/t7OxMT8/IlEBPPyCdfMKaOcc+p8MURtSubOeXFhOldXBVuLHITZ5T1URAVGOpRWEiCGmF46oZO638XONJkJWIihFGxTLFJri/S2AKF6dUssqUawW3CcBLoARf0JXw5OnSX/39+W/94Kf3p5J/8Xfvfk8duHpzulQqzS88kd8lJKw3lSfalOekx5ltgoXT/NL0tau9EipMrlnNnM+VZ5CuNLGSbYXtjp50XqMa5lV1boILJTgcammZEmfiNgF4DJTgC7oSJu4/eLK09u0f/tN3Xv3Z99SBH/3Nb3ZelguFwlIy6agEM4hWjEpiTjdR29hSjIPOcxq7K7y6OZ/rVIJThV0rwSomQCVUnD7a5rCwc3rjLgF4DJTgC7oSxj77PJ3J/cMvRr776sCf/ujnvx1+oP8oYXV1VdpxJMRQ97M9V9NxZCCZX1qydZUdRzlzzmd6jm7pDNguO44cY7RThe1qbjY2SpuVPxTulVBbx1HlQ217WBjd4iYBeAqU4Au6Ej7/YnxuTltMrv3jL67Hznyc3y5lstn19czaWlp6l8DP4Zyj+hacZ3u2jVkKX6AsmSRUntPYReG5HN0RQyewI7KSnh/b4WWnGC1W2Dl8M04wm0AfR5vGOpUpa0LFjiOHmtuUKR5y3CQAr4ESfIH+9XKxWHz58uXOzk6xWKR/yewwlgB8xNcra+Y2yKM/QrXtpsM9AvAeKMEXqn/G0QFRgiLQ6BpJqDTOUjtUp55+SU9f3de4S6pMIR23CMBrmvEb25YcECW0JdTPLjwL0n6UCUBloAQAAAAEKAEAAAABSgAAAECAEgAAABCgBAAAAAQoAQAAAAFKAAAAQIASfKH6n6oBAEDjgRJ8gX6ghR1QAgCg2YASfMGcVY17Xfzo+kfDH4+MfmqjBOo3qwfjt8zUYx1aEPykHLQdUIIvcHMv66/JL2enZ+e1hcVPb9+RKIF7fiiZIL5m6gxnnkTDVn8MD5QA2g4owRc4JUw8mHk4PTerPVlYXEour4zd/UxQguePYmsSJbR0SG31+gNQNVCCL5hKmHjwaHLq8dQjTVtYXEouP1tdTaVS4xMTvBIqzYspPCZfOtG8mY2bCcCcYoGeWT7HhjyHzW3rYJQpTBNPMtB9YHR++0bFSTpdqBCVud3ZT2xglMbPSWbtlq2VfcnCVAVcTukRAKD1gBJ8QVfCh1dvTM/Oz80vPl1aTqVSmUwmm81ms9mp6RmJEuTXo9yUZNY0XvxU8PwD+fnpboSJ0+hlcZY0+QxfXB2seCkPhA51sGmUsCjpfKrQUqEI6bRlZGZoulbOB4FN8W42BACaCijBF3QlXBu5ubC4tPLsWTqd3tzczBvMLzxxe5fgPHFxjlrm52OsOB8Zty23dypbxTrIZsh02q/7RvHL0t1VnP7M2AX9wGnq/klaK75k7p6Hq4PtEQCgxYASfEFXwo2bt5ZXnq2trWWz2Xw+r8+wVigUlpJJt2MJ1UVPeq72AJXA71pWiIdKcNVSvk/MUILbZtocH+Zujmuy7AgA0GJACb6gK+HW78Z0H+RyuUKhUDJYXV2V/MUR1RuUy5l/ccT1sXBz2eekodnsu7cbM6DmXK6h40isA7dru0LcF1hZCdTupC2ieoSYXTg00/4g2HewcU3G1Jeg1YESfEFXwudfjE9NTWva/NOlpdXnz9Pr6+uZzPp6Zm0tLf9dAt2zIRn3dYyYwgAoNb0jG1XNnKrKhWlu4NV641wHYdfUnmwiu8tGiRtKdydpkTluzFaLn6yMK5wrmlGBoihKWFXDsqNtewQAaDGgBF/Ar5cbje29BQDAASjBF/CMo0YDJQBQC1ACOJBACQDUApQAAACAACUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQgi/gp2oAgFYESvAFuwda7OzsvHz5slQq4YEWAIAmBErwBXNWNfp1b3zyzLufHOuLzy+uFItFWgnC7F8c1f8WV3ysZ2Xc7KUVfxVcW51bsaUA1AuU4Avc3Mtf3J8en5zJbmx1/eWZP/n+W8M3J0ulEnuX4ByA6glP7rf1SgnB1NZ9OVACAG6BEnyBU8LEg5mnydWL1+7/9++/9efHzj1/nhI6jqCE+re1KwdKAMAtUIIvmEqYfrywmHw2PTuf3y4c+etffesHP71xe0abn7dXQlxVwtGoyk4mEFeVaieX1wu0HuQvn3CeSglHo2IQlM3CINaELpTbI10l6bQCDtuyB8fYqRq3trE5FJI6OB49SXWooyEeMgAOLFCCL+hKuHNv4t79hV9f+Cy7sXH90+nvHPnZn/3tuZ2dnenpGUcl0LPYUPPZWOuFacgkk8tLp5yUb0LJwu66mK0eN8WYMVWmkDknm8iMzuA8mxudqIj7r3Qo2NmBJEePntmNX20dDb51ABxkoARf0JXw5OnSX/39+W/94Kf3p5J/8Xfvfk8duHpzulQqzS88qXCX4DSTMD0hMAU/R5hsW3ETZmZIWTi2LrjFmhjRkpeJfacNV5rzZMjyxHoOBbeJMP+z9Gg4qhKAAwaU4Au6EibuP3iytPbtH/7Td1792ffUgR/9zW92XpYLhcJSMumREtxMbMkpgd3EWQmSaejpPExx1GT0NuFYLM1LJbic47N6JfCtA+AgAyX4gq6Esc8+T2dy//CLke++OvCnP/r5b4cf6D9KWF1d9UAJkj4ZN9uKm9h3HEk6eKgShEBsRFTbriqhNPcdR47x3e2h4DehOo743iTxaDC+AOCAAiX4gq6Ez78Yn5vTFpNr//iL67EzH+e3S5lsdn09s7aW5pRADX26V4Lz5PLWMumt4YeXmXEKdkDVRJiG3houpoZbZWPQsiqJpUk2ZmqbE5rs9lDY1UG6iaRryzoasjFxAA4qUIIv0L9eLhaLL1++3NnZKRaL9C+Z8etlAECzASX4grfPOFJk+Fp/AEB7gsgCAACAACUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAAAAgAAlAAAAIDgogZqaSlE6+vAMSJO4Kjke0sRWwfysJU92S/R10LOO9XXUcU7o++noSyT6OlrpcDXDh+tcB8e15mH3Zl++lrCiRh72afXsuik+rdbFWQnmgY2rLfYgSF+jdosqwb6G8b6+hE2ORF+HmZTo62DmpOzrq+6MoJ5H7SN+fBAOZQb2udeshBoOu1laza1rpBLYsxZUh0sl8NeKTQ+UIFK5huI3iUqp/wwI5hBBCVVt6LxJiyrBnBQJVI1rJdARgeo84OboYqKGWYAkP3cLwpw91KdJrUr0ddDPwWcezt/R16dSnRlUlxdTGzbRthU52V6s/B19fUytxET2gDDF2B2KOElX41YWo7iKGcT9VDwmQsUkn0POrRHsGmVTAeOtwzGUnh5xVelQVeNGRdYCx0+ZOjKujzaTmGB3QGZicN6dvJayE0w8Yi5OMMdzUlHUOH/YbfYrO9R9Cen3SP4dty/W5ptue2BW1MjDvjtPOiLjSmS840KaJGskRYnMxo1s6sBD8pZfi/uE2qlBCfR0VEKPMBvO7fM7KcEqJK52dHSYWhEyUSe5ZP565wt5x1bY7IX6ljskMkdMqLP0UCjiItuWihms2GV9Qx2OiXgNJf8KUflsv2P2jXL6UCoeWHlOMUYbTabrIzu16CPj8mjLT1exVva7q3ytWvE0djjBKh06q8kO3wUHJUgbLv2OOxTrXL748a2okXHl758kcrncnVlaAOTW4c5sx4W0ns0QhrhWVjXgjqqU0NGXkFwlCOeEGc7N75WY31EJxq7iakdfXF+mApLkusfxnJO2qEIrhL0wAdEoR5pIt6LSTZTjoagUdOhqKBTk6tWxHDHAyL9BrBKk37EqGmVTeckxdFV/tsl0nR2yVXW0Zc1xOP3E3ckCuVV0xdO44gkmPSedmlzt18fue8R+x52KdXnGmtAdR8aydRMwrkTGlYEVJptkLX90gHuqH0uoFEz1j8L6QGpQAilDP+ESfR1q3CzOKs1M8kEJ4l6aXQlit0TlY6J/MR0vpegDY+OEhinBruLO2ao62vSdMXeoZaefwxFSKp1gXirBvslVf32k3yOH77hYrMsz1sROCbNxu2yStTncJdRMFX9xRN0s0h0FwnFP9HV0qGqHbFvm1KF6HYXTLtHXQXcZqapxOWJWqkIfVCUlOLdCvhfPO44culPs2mKXQdyRq2NiZ25xvVF9ple5T9Ix6NxHJK+8cAylpwf/8dlcBDpnq+Zgis2pfPrJa8VfslZxGtfQcWTfZMl+nQ+1XAnGd5wZObJpjl35dh+fTAlMN5E0G7cWNwm14/J3CeL1ryyd3pIOL9L8ZvGqKjnt6HDKhFZzQM20jvxLTooXQr2V6NQKcS9WhZmhPGmi7BhSQZPbaf1KYO/E7btHrOYL9XK4wpXcWXAtcNsom8o7Hljq9GDDE99k4aDzn3IVHUeq2sEWzAQ47sRw2p14nLnaVzqNK5xg0rVOTXY6saWHWvo9IuXQVwcOzZF+020/PqkS2N4hruNIshY3CbXjy6+X8XEcHIK82nLqTwgMm+ti0ErgHqF2fFACPo6DRWCB2qE3IUCghEaio/yPvwAAA0xJREFU0APFtb74XgpQDd4qQb8bxDcKuMe+A6gxQAmgrcFj7wAAABCgBAAAAAQoAQAAAAFKAAAAQIASAAAAEKAEAAAABCjBF97s73fzanQ1AQCAAUrwhTf7+wuVgBIAAM0GlOALuhIuXB7mXhc/uv7R8Mcjo5/KlZCIhs2fbYWj+L0UACBgoARfMJXwxf1p8zX55ez07Ly2sPjp7TsSJSSiYcoDcdXXn/LG1ZZ0TotWG4CWAUrwBU4JEw9mHk7PzWpPFhaXkssrY3c/E5SQiIaDfJ5Di8bWFq02AC0DlOALphImHjyanHo89UjTFhaXksvPVldTqdT4xASvBAcjWL1J5rP7w9GoyncvybKpapifI5h9ZzzSmdvWafd07xb17OhwNE7S1biVxahexQxumslV26nSAIDagBJ8QVfCh1dvTM/Oz80vPl1aTqVSmUwmm81ms9mp6RmJEozoaIQ6/T11XRxXrcgomaRXkk24ojaz0Zfb4rZ0tbhC6AlzzJVxla6vuV+mehUzVN1MqAAAz4ESfEFXwrWRmwuLSyvPnqXT6c3NzbzB/MKTSncJRuyjB5yta3whmlfIRl9hC0qQbGtXKz7FCMs2gqlooGqbKVQbvUgAeAuU4Au6Em7cvLW88mxtbS2bzebz+UKhUCwWC4XCUjIpjCVwveR0rBSn0pWGVPts1lrzZkS6ViBQJbhopjCWoKsEdwsAeAWU4Au6Em79bkz3QS6XKxQKJYPV1VXxL44S0TAV3OggKHbdSGOlfTZzkenqoQuxu9yu2HEk9OfUpoQqmsnXlOpyAwDUC5TgC7oSPv9ifGpqWtPmny4trT5/nl5fX89k1tcza2tp+e8SqAFU2birQ4+KczZzeEJVjfjJzhjMbSuvkzC87Bzlc9UowW0zrWrbTmsMAKgdKMEX8OtlAEArAiX4QrXPOFJsaGATAABtCIIOAAAAApQAAACAACUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAAAAgAAlAAAAIEAJAAAACFACAAAAApQAAACAACUAAAAgQAkAAAAIUAIAAAAClAAAAIAAJQAAACBACQAAAAhQAgAAAAKUAAAAgAAlAAAAIPx/lWJ3WNCcZs8AAAAASUVORK5CYII=&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;
And we create, in method main(), a few lines of code:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
package javaUsingEMFModel.LibrarySystem;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.emf.ecore.*;&lt;br /&gt;
import LibraryModel.*;&lt;br /&gt;
import LibraryModel.impl.*;&lt;br /&gt;
import LibraryModel.util.*;&lt;br /&gt;
&lt;br /&gt;
public class MainClass {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
// Inicialize the LibraryModelPackageImpl&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LibraryModelPackageImpl.init();&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LibraryModelFactory factory = LibraryModelFactory.eINSTANCE;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a new Book&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Book book = factory.createBook();&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Give a title to the book&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; book.setTitle(&quot;Os Lusiadas&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Create an Author, and define his/her name and surname&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Author author1 = factory.createAuthor();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; author1.setName(&quot;Luis&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; author1.setSurname(&quot;Camoes&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Add that author as an author of the previously created book&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; book.getAuthors().add(author1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(book.getTitle());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
This is only the beginning. Now you should create instances of the remaining classes, inter-relate them, and query its attribute values and the values of the relation attributes.&lt;br /&gt;
&lt;br /&gt;
Related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;First Eclipse Modeling Framework (EMF) example - 1&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://practicalsw-pt.blogspot.com/2012/02/primeiro-exemplo-com-o-eclipse-modeling.html&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;span style=&quot;font-size: small;&quot;&gt; &lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_16.html&quot; target=&quot;_blank&quot;&gt;First Eclipse Modeling Framework (EMF) example - 2&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://practicalsw-pt.blogspot.com/2012/02/primeiro-exemplo-com-o-eclipse-modeling_16.html&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/538549883003734161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/538549883003734161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/538549883003734161'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_17.html' title='First Eclipse Modeling Framework (EMF) example - 3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-4549685508839686195</id><published>2012-02-16T23:05:00.003+00:00</published><updated>2013-01-04T17:10:09.951+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="EMF"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>First Eclipse Modeling Framework (EMF) example - 2</title><content type='html'>In the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf.html&quot;&gt;previous article&lt;/a&gt; we started exploring Eclipse EMF. In this article we will build a domain model (persistent data model) of a small library management system.&lt;br /&gt;
&lt;br /&gt;
To start, let us create a new project:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - select File --&amp;gt; New --&amp;gt; Project&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Then, in the opening window, select Eclipse Modeling Framework --&amp;gt; Empty EMF Project &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3qCA-OfIEP8J_G8OGPfEeUfn1Ed-M2fY-ws9MWx1XjfRktyVNJ1crqqVd4s3jPXPUrpE7GiVxT6r1tx47rXVd39n7sKvGTUFlNGzi3sQTKV_FQgyG77YqGjgQb54mWwLRCCr1CiqEE1vm/s1600/EMF00.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;305&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3qCA-OfIEP8J_G8OGPfEeUfn1Ed-M2fY-ws9MWx1XjfRktyVNJ1crqqVd4s3jPXPUrpE7GiVxT6r1tx47rXVd39n7sKvGTUFlNGzi3sQTKV_FQgyG77YqGjgQb54mWwLRCCr1CiqEE1vm/s320/EMF00.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Let&#39;s name our project &lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;testemf&lt;/b&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Then, in folder &lt;b&gt;model&lt;/b&gt;, use the mouse&#39;s right button, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6G_ZhoBxFDHnhNBocnJx2hudxoof8-Vtqjp3OPCB-ce1SzhiOLp9_7XVHVEhhTO716iI1GSnN5PsyKbLKaQZ7ZZSY3wZ2FBB-eBGOnHvK_AO_rx5PztrNsDZnLUlGIkMzLc7U9reQmrh3/s1600/EMF01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6G_ZhoBxFDHnhNBocnJx2hudxoof8-Vtqjp3OPCB-ce1SzhiOLp9_7XVHVEhhTO716iI1GSnN5PsyKbLKaQZ7ZZSY3wZ2FBB-eBGOnHvK_AO_rx5PztrNsDZnLUlGIkMzLc7U9reQmrh3/s320/EMF01.JPG&quot; width=&quot;304&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
and select New --&amp;gt; Other. A new window opens:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6lozCLez5uPwPOe6XkdqJjDuOaj483FxrCtldUbKJfRU94B4L9mwXlPDw0oO0Pwl3xKHW9bZXA3sGQtOc-qvntp9wVS7YLfM3tBACUuualWdTHjXhDFaFymtgmMDL_5-LFQf0yJRBpuPZ/s1600/EMF02.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;307&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6lozCLez5uPwPOe6XkdqJjDuOaj483FxrCtldUbKJfRU94B4L9mwXlPDw0oO0Pwl3xKHW9bZXA3sGQtOc-qvntp9wVS7YLfM3tBACUuualWdTHjXhDFaFymtgmMDL_5-LFQf0yJRBpuPZ/s320/EMF02.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, select EcoreTools --&amp;gt; Ecore Diagram. The goal is to create a domain model by using the UML class diagram editor.&lt;br /&gt;
&lt;br /&gt;
Creating the Ecore Diagram is a nice way of creating an Ecore model, instance of the Ecore metamodel. We can, then, understand this as the creation of a DSL (Domain Specific Language). Let us name our DSL as &lt;b&gt;LibraryModel&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
In the diagrams editor, we create the intended class model:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAIbIoJpguhugdz2-1uOkd4RCODGgaA1bSecNleTGp2vN10b42VGUICZlloV16KbTzSk9rYpvdhX0_7eJu9dDmXcjCOBkNDKu5ctHfBY-w7IpjuWtYP9rDY9PTXVvJ07siiQ8ItU2G48a_/s1600/EMF03.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAIbIoJpguhugdz2-1uOkd4RCODGgaA1bSecNleTGp2vN10b42VGUICZlloV16KbTzSk9rYpvdhX0_7eJu9dDmXcjCOBkNDKu5ctHfBY-w7IpjuWtYP9rDY9PTXVvJ07siiQ8ItU2G48a_/s320/EMF03.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
To do that, we drag and drop metamodel elements from the Pallete, of which we want to create instances. For example, to create class &lt;b&gt;Book&lt;/b&gt;
 (instance of EClass) we drag element EClass from the Pallete, and name it Book. To create attributes we drag element EAttribute, and drop it in the class&#39; attributes area, and so on.&lt;br /&gt;
&lt;br /&gt;
As we want to generate code from our diagram, this must be complete. Thus, we shall specify the data type of each attribute.&lt;br /&gt;
&lt;br /&gt;
To create relations (associations) between classes, we must drag fro the Pallete the element &lt;b&gt;EReference&lt;/b&gt;.
 A relation is, by default, of type one to many and is navigable in that direction, that is only the side &quot;many&quot; is referrable. In the relation&#39;s properties we may modify the name and cardinality of the relation attribute.&lt;br /&gt;
&lt;br /&gt;
If we want a relation to be navigable in both directions, we must create two relations and specify one as the opposite relation of the other.&lt;br /&gt;
&lt;br /&gt;
More information about editting diagrams using this editor can be obtained from:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://www.vogella.de/articles/EclipseEMF/article.html&quot; target=&quot;_blank&quot;&gt;Eclipse Modeling Framework (EMF) - Tutorial&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
More information about UML (Unified Modeling Language) can be obtained, for example, in:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://docs.kde.org/stable/en/kdesdk/umbrello/uml-basics.html&quot; target=&quot;_blank&quot;&gt;Capítulo 2. Fundamentos do &lt;acronym class=&quot;acronym&quot;&gt;UML&lt;/acronym&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
When creating the Ecore diagram (&lt;b&gt;LibraryModel.ecorediag&lt;/b&gt;), an Ecore model (&lt;b&gt;LibraryModel.ecore&lt;/b&gt;) is automatically created with the same information.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3vAgWvd2ambtA4DV8dgFtbMumjjGXhShzIz3iZlu9E92MxsP5gLKIGBMbDWZaYn7PTu41Fnj6-kvffXp4XDRMqOIhFde7h2k0nzLC32re21Xw8KXeeGINJmN1hIDDoClth4oBhPgoG4vy/s1600/EMF04.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3vAgWvd2ambtA4DV8dgFtbMumjjGXhShzIz3iZlu9E92MxsP5gLKIGBMbDWZaYn7PTu41Fnj6-kvffXp4XDRMqOIhFde7h2k0nzLC32re21Xw8KXeeGINJmN1hIDDoClth4oBhPgoG4vy/s320/EMF04.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
From the ecore model, we are going to create a model for code generation. With the right hand mouse button over the ecore model file (&lt;b&gt;LibraryModel.ecore&lt;/b&gt;), we select New --&amp;gt; Other,&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4IBDJqdkMSpGucysRovCkzobY9ym8zDdmnOljLnvZEMrVNXM8_p5TUfHYG5XLiLDMU7Q5HGhfJm9vhZJBfLLiCL8LkjGsaKGB1XiqvxKN00mKlG_xIe6Ewe93CZDdAzpy1eR6KsNgHJbG/s1600/EMF05.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4IBDJqdkMSpGucysRovCkzobY9ym8zDdmnOljLnvZEMrVNXM8_p5TUfHYG5XLiLDMU7Q5HGhfJm9vhZJBfLLiCL8LkjGsaKGB1XiqvxKN00mKlG_xIe6Ewe93CZDdAzpy1eR6KsNgHJbG/s320/EMF05.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, select &lt;b&gt;EclipseModelingFramework --&amp;gt; EMF Generator Model&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxv0ogGVM8mw2WDGW7MKXJmmTQPX1P2Pwqzks6_TC2J6oqyTfh-F6geQwM7rhpn1LftY0V9gbwA5lPJPHYjKlufl5ryFA6fJQygJ7yiXB_MjwvoWWVvEx_1jZrY0IuVAkYPgiUUlQwYIKQ/s1600/EMF06.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxv0ogGVM8mw2WDGW7MKXJmmTQPX1P2Pwqzks6_TC2J6oqyTfh-F6geQwM7rhpn1LftY0V9gbwA5lPJPHYjKlufl5ryFA6fJQygJ7yiXB_MjwvoWWVvEx_1jZrY0IuVAkYPgiUUlQwYIKQ/s320/EMF06.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA4VSXVNVAhMs2DvI9VppPMC4kLgCe6HpM7z17Mz2ZvG3hkGEQs6AiVM08F8HPdVBKw2-MFxWnHRfmkmjb5_O_G_x5qMDNvXAjPXVHpJdgeJzSGWq_S5P8uBwmfPbwDx3T782cpVHbhAxb/s1600/emf07.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA4VSXVNVAhMs2DvI9VppPMC4kLgCe6HpM7z17Mz2ZvG3hkGEQs6AiVM08F8HPdVBKw2-MFxWnHRfmkmjb5_O_G_x5qMDNvXAjPXVHpJdgeJzSGWq_S5P8uBwmfPbwDx3T782cpVHbhAxb/s320/emf07.JPG&quot; width=&quot;275&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
And we select the Ecore model importer:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtw5pcqiRNsemworuWtMsPdqDmauLdYhWKyDjBV-neYoua325qtg99VHI-1eipsNd-S7-QNQwbhkXU2AbhzpAlV3yjJLO3lhLvoqEMZJZn5HBsFOw63d0FUK5X4Sc2-g1URkF1_sC3gpEL/s1600/EMF08.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtw5pcqiRNsemworuWtMsPdqDmauLdYhWKyDjBV-neYoua325qtg99VHI-1eipsNd-S7-QNQwbhkXU2AbhzpAlV3yjJLO3lhLvoqEMZJZn5HBsFOw63d0FUK5X4Sc2-g1URkF1_sC3gpEL/s320/EMF08.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTIFQVXMi3r_ciXsGfk7HwJSIgMM_7ucrP0PhuN8PaJXPCCSpdu_knPsnCedVEKT43umiPbG169IJ8NGwPMBujd-bOnjldTfqMTN_OpxVFtIHFL6x0H_uRt_H8HzpRc-FP-5WRd7-xm2rc/s1600/EMF09.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTIFQVXMi3r_ciXsGfk7HwJSIgMM_7ucrP0PhuN8PaJXPCCSpdu_knPsnCedVEKT43umiPbG169IJ8NGwPMBujd-bOnjldTfqMTN_OpxVFtIHFL6x0H_uRt_H8HzpRc-FP-5WRd7-xm2rc/s320/EMF09.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHxJWBxbty-LOgDIM_rrXNcHbh27D6Mio3nrUAZX62xBZo-BiA1UrlaIhWr8FjWpUeEsu6mEQYHQYWjRIZ2fmttA6JFU7tcBqKzG4KG13BYiPQY5JMr3p5si0pKzF96J5fSlc1Er8Gjje3/s1600/EMF10.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHxJWBxbty-LOgDIM_rrXNcHbh27D6Mio3nrUAZX62xBZo-BiA1UrlaIhWr8FjWpUeEsu6mEQYHQYWjRIZ2fmttA6JFU7tcBqKzG4KG13BYiPQY5JMr3p5si0pKzF96J5fSlc1Er8Gjje3/s320/EMF10.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Model &lt;b&gt;LibraryModel.genmodel&lt;/b&gt; is then generated:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDkg3RV58nkGhEn7UC0sOInO_OihVSBxDVKq52wCAr3fhAnrFN2w0jWfOoIYRmTkFUb1-j-5AwhPx7msnz5Whv-XnlGAm6T1C_9dcCzHWINN2bbytBK3inzLoZE8F4LVUbBiasGD_ew-Sy/s1600/EMF11.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;174&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDkg3RV58nkGhEn7UC0sOInO_OihVSBxDVKq52wCAr3fhAnrFN2w0jWfOoIYRmTkFUb1-j-5AwhPx7msnz5Whv-XnlGAm6T1C_9dcCzHWINN2bbytBK3inzLoZE8F4LVUbBiasGD_ew-Sy/s320/EMF11.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
From this model, we are going to generate Java code corresponding to the classes in the initial model:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sbghGzKvW8_orKc1Rr2BYIzcGAtqwaWJDBKxLJ8clBNwPoW7xu3g8aK4DekskmZkaO61rhnbginLqHLu7-jCPWkwqdn75HytzfkHsAkDTpg5bEVdunNAHidUXH-OWsd2iaBRolLntZ14/s1600/EMF12.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sbghGzKvW8_orKc1Rr2BYIzcGAtqwaWJDBKxLJ8clBNwPoW7xu3g8aK4DekskmZkaO61rhnbginLqHLu7-jCPWkwqdn75HytzfkHsAkDTpg5bEVdunNAHidUXH-OWsd2iaBRolLntZ14/s320/EMF12.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The project, then, becomes with the following files:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhecoMT3SrcJQ6VDxXpLHoKBTNHEMtSxYfjNyf3Wvmcs6na36VD_j_vbnukTY0yEJioP-_BT6AaKqfVEKsd_RiE-u_VDmPn7TseQU3qesQsi6OsI0lyL_3LJJKAkc8pHy0eqC9ghSQSFdWP/s1600/EMF13.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhecoMT3SrcJQ6VDxXpLHoKBTNHEMtSxYfjNyf3Wvmcs6na36VD_j_vbnukTY0yEJioP-_BT6AaKqfVEKsd_RiE-u_VDmPn7TseQU3qesQsi6OsI0lyL_3LJJKAkc8pHy0eqC9ghSQSFdWP/s320/EMF13.JPG&quot; width=&quot;160&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Three Java packages have been generated:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 - LibraryModel - contains the Java interfaces corresponding to the classes in the model, and the Factory class that enables the creation of classes&#39; instances.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - LibraryModel.impl - contains the classes that implement the interfaces.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - LibraryModel.util - contains the AdapterFactory.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s look at the generated code for class &lt;b&gt;Author &lt;/b&gt;in our model:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;- Author.java:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;package &lt;/b&gt;LibraryModel;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;org.eclipse.emf.common.util.EList;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;org.eclipse.emf.ecore.EObject;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;public interface &lt;/b&gt;Author &lt;b&gt;extends &lt;/b&gt;EObject {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;String &lt;/b&gt;getName();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;void &lt;/b&gt;setName(String value);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;String &lt;/b&gt;getSurname();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;void &lt;/b&gt;setSurname(String value);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;EList&lt;/b&gt;&amp;lt;Book&amp;gt; getBooks();&lt;br /&gt;
} // Author&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;- AuthorImpl.java:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;package &lt;/b&gt;LibraryModel.impl;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;LibraryModel.Author;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;LibraryModel.Book;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;LibraryModel.LibraryModelPackage;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;java.util.Collection;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;org.eclipse.emf.common.notify.Notification;&lt;br /&gt;
&lt;b&gt;import &lt;/b&gt;org.eclipse.emf.common.util.EList;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;public class &lt;/b&gt;AuthorImpl &lt;b&gt;extends &lt;/b&gt;EObjectImpl &lt;b&gt;implements &lt;/b&gt;Author {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected static final &lt;b&gt;String &lt;/b&gt;NAME_EDEFAULT = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected &lt;b&gt;String &lt;/b&gt;name = NAME_EDEFAULT;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected static final &lt;b&gt;String &lt;/b&gt;SURNAME_EDEFAULT = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected &lt;b&gt;String &lt;/b&gt;surname = SURNAME_EDEFAULT;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected &lt;b&gt;EList&amp;lt;Book&amp;gt; &lt;/b&gt;books;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected AuthorImpl() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected &lt;b&gt;EClass &lt;/b&gt;eStaticClass() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return LibraryModelPackage.Literals.AUTHOR;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;String &lt;/b&gt;getName() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return name;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;void &lt;/b&gt;setName(String newName) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String oldName = name;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; name = newName;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (eNotificationRequired())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; eNotify(new ENotificationImpl(this, Notification.SET, LibraryModelPackage.AUTHOR__NAME, oldName, name));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;String &lt;/b&gt;getSurname() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return surname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;void &lt;/b&gt;setSurname(String newSurname) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String oldSurname = surname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; surname = newSurname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (eNotificationRequired())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; eNotify(new ENotificationImpl(this, Notification.SET, LibraryModelPackage.AUTHOR__SURNAME, oldSurname, surname));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;EList&amp;lt;Book&amp;gt; &lt;/b&gt;getBooks() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (books == null) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; books = new 
EObjectWithInverseResolvingEList.ManyInverse&amp;lt;Book&amp;gt;(Book.class, 
this, LibraryModelPackage.AUTHOR__BOOKS, 
LibraryModelPackage.BOOK__AUTHORS);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return books;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&amp;nbsp;. . .&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;String &lt;/b&gt;toString() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (eIsProxy()) return super.toString();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer result = new StringBuffer(super.toString());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; result.append(&quot; (name: &quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; result.append(name);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; result.append(&quot;, surname: &quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; result.append(surname);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; result.append(&#39;)&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return result.toString();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
} //AuthorImpl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We may create the documentation about the generated classes, using &lt;b&gt;Javadoc&lt;/b&gt;. For that, in the &lt;b&gt;Project&lt;/b&gt; menu, select &lt;b&gt;Generate Javadoc...&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQtABaBdY9vtcNQyrPCjllEilr4WIHM2fjBD0wcPvPQPkIqTHrybpEBEggiaGLibjlrSMEQYWYmlkwJhTeUoAioX7GaiKWXacIj5XUMOk0TyiZHBzB5_7L-O2YtM0usGzEKyp7u_iArX1G/s1600/EMF14.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQtABaBdY9vtcNQyrPCjllEilr4WIHM2fjBD0wcPvPQPkIqTHrybpEBEggiaGLibjlrSMEQYWYmlkwJhTeUoAioX7GaiKWXacIj5XUMOk0TyiZHBzB5_7L-O2YtM0usGzEKyp7u_iArX1G/s320/EMF14.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho4Un3pSJuyLf-ObH32wxLG-L5sqH5k_3vNBvm_JMbuTNYn3bY3cTFZcFurVJ4uPkblMkA-_aZXQuKJQ2eadiaT7-nNqjzVRIFjgcuUbHnksx4iGaoH6lZJ_wiFaoWO9L4ds57aBUW9Wvq/s1600/EMF15.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;319&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho4Un3pSJuyLf-ObH32wxLG-L5sqH5k_3vNBvm_JMbuTNYn3bY3cTFZcFurVJ4uPkblMkA-_aZXQuKJQ2eadiaT7-nNqjzVRIFjgcuUbHnksx4iGaoH6lZJ_wiFaoWO9L4ds57aBUW9Wvq/s320/EMF15.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the documentation is generated:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiplUcspwqPQatW2FHjFeB4W45kfunx4Rq7v_K3rc89Netvk6YKGe1BqrrrystmvdGu7VJavzM9jDW8Ixgdm6ppkycHCY8NM5rAvgkBKqAO2tuqdReNHCwnLVsP7F3J7ViGi5w9C2CeglXu/s1600/EMF16.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;205&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiplUcspwqPQatW2FHjFeB4W45kfunx4Rq7v_K3rc89Netvk6YKGe1BqrrrystmvdGu7VJavzM9jDW8Ixgdm6ppkycHCY8NM5rAvgkBKqAO2tuqdReNHCwnLVsP7F3J7ViGi5w9C2CeglXu/s320/EMF16.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKAHNnHqIsZmIgx0qquzWz1JMWRGmtODt38nrhJAngdRBY9ODKYY_TG6OB7UrDjZzCmbBcLYllBmJMXmlWkKN5Sme3TOnXs3eKYUqOxS6OlX8fnLidRPAL8e9kG77ut5nzzCt2Xg4Nhg2L/s1600/EMF17.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;205&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKAHNnHqIsZmIgx0qquzWz1JMWRGmtODt38nrhJAngdRBY9ODKYY_TG6OB7UrDjZzCmbBcLYllBmJMXmlWkKN5Sme3TOnXs3eKYUqOxS6OlX8fnLidRPAL8e9kG77ut5nzzCt2Xg4Nhg2L/s320/EMF17.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the next article we will test the generated classes through a simple method Main()...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;Related articles:&lt;/span&gt;&lt;br style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot; /&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf.html&quot; style=&quot;background-color: #fefdfa; color: #7d181e; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px; text-decoration: initial;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;First Eclipse Modeling Framework (EMF) example - 1&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://practicalsw-pt.blogspot.com/2012/02/primeiro-exemplo-com-o-eclipse-modeling.html&quot; style=&quot;background-color: #fefdfa; color: #7d181e; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px; text-decoration: initial;&quot;&gt;&lt;/a&gt;&lt;br style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot; /&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;/span&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.pt/2012/02/first-eclipse-modeling-framework-emf_17.html&quot; style=&quot;color: #7d181e; text-decoration: initial;&quot; target=&quot;_blank&quot;&gt;First Eclipse Modeling Framework (EMF) example - 3&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/4549685508839686195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/4549685508839686195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/4549685508839686195'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf_16.html' title='First Eclipse Modeling Framework (EMF) example - 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3qCA-OfIEP8J_G8OGPfEeUfn1Ed-M2fY-ws9MWx1XjfRktyVNJ1crqqVd4s3jPXPUrpE7GiVxT6r1tx47rXVd39n7sKvGTUFlNGzi3sQTKV_FQgyG77YqGjgQb54mWwLRCCr1CiqEE1vm/s72-c/EMF00.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-8753429486000833779</id><published>2012-02-14T20:23:00.001+00:00</published><updated>2013-01-04T17:10:52.897+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="EMF"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>First Eclipse Modeling Framework (EMF) example - 1</title><content type='html'>&lt;b&gt;Eclipse&lt;/b&gt; is an IDE (Interactive Development Environment) that allows the development of programs in different programming languages. Some characteristics of Eclipse are the use of the &lt;i&gt;&lt;b&gt;Standard Widget Toolkit&lt;/b&gt;&lt;/i&gt; (&lt;b&gt;SWT&lt;/b&gt;) as graphics library, instead of &lt;b&gt;Swing&lt;/b&gt;, the plugin oriented way of programming, and its extensibility, there existing lots of projects that extend Eclipse in diverse directions.&lt;br /&gt;
One of those directions is model-driven-development, and the subsequent code generation from models. Eclipse Modeling Framework (EMF) project&lt;img alt=&quot;&quot; src=&quot;http://www.eclipse.org/modeling/emf/images/emf_logo.png&quot; style=&quot;float: right;&quot; /&gt; is a modeling environment and code generation functionality that enables the construction of tools and other software applications based on a structured data model (domain model).
From a domain model specified in XMI, or in another supported format, EMF provides tools and &lt;i&gt;runtime &lt;/i&gt;support for the production of Java classes that implement the model, and a set of &lt;i&gt;adapter &lt;/i&gt;classes that allow editting and viewing the model through Java code, and a basic model editor.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Eclipse can be &lt;i&gt;downloaded&lt;/i&gt; from:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://www.eclipse.org/downloads/%20&quot; target=&quot;_blank&quot;&gt;http://www.eclipse.org/downloads/ &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this article we will use the &lt;a href=&quot;http://www.eclipse.org/downloads/packages/eclipse-classic-371/indigosr1&quot; target=&quot;_blank&quot;&gt;version Indigo (3.7.1r1)&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Eclipse Modeling Framework, for &lt;b&gt;Eclipse Indigo&lt;/b&gt;, can be obtained in:&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/indigor%20&quot; target=&quot;_blank&quot;&gt;http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/indigor &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After &lt;i&gt;downloading&lt;/i&gt; EMF, it must be copied to the directories &lt;i&gt;&lt;b&gt;plugins&lt;/b&gt; and&lt;/i&gt; &lt;i&gt;&lt;b&gt;features&lt;/b&gt; of &lt;/i&gt;Eclipse instalation.&lt;br /&gt;
Alternatively, Eclipse&#39;s new packages installation functionality can be used (&lt;b&gt;HELP&lt;/b&gt; &lt;b&gt;--&amp;gt; Install New Software&lt;/b&gt;) to install &lt;b&gt;EMF&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Page of Eclipse EMF project:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://www.eclipse.org/modeling/emf/&quot; target=&quot;_blank&quot;&gt;http://www.eclipse.org/modeling/emf/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Documentation and tutorials about Eclipse EMF:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://www.eclipse.org/modeling/emf/docs/&quot; target=&quot;_blank&quot;&gt;http://www.eclipse.org/modeling/emf/docs/&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.emf.doc/references/overview/EMF.html&quot; target=&quot;_blank&quot;&gt;The Eclipse Modeling Framework (EMF) Overview&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;a href=&quot;http://www.vogella.de/articles/EclipseEMF/article.html&quot; target=&quot;_blank&quot;&gt;Eclipse Modeling Framework (EMF) - Tutorial&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In the next article we will begin a new EMF project for constructing a domain model from which we will generate Java classes, which will then be used from a small test Main() method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;Related articles:&lt;/span&gt;&lt;br style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot; /&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://practicalsw.blogspot.pt/2012/02/first-eclipse-modeling-framework-emf_16.html&quot; style=&quot;background-color: #fefdfa; color: #7d181e; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px; text-decoration: initial;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;First Eclipse Modeling Framework (EMF) example - 2&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://practicalsw-pt.blogspot.com/2012/02/primeiro-exemplo-com-o-eclipse-modeling.html&quot; style=&quot;background-color: #fefdfa; color: #7d181e; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px; text-decoration: initial;&quot;&gt;&lt;/a&gt;&lt;br style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot; /&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&lt;/span&gt;&lt;span style=&quot;background-color: #fefdfa; color: #333333; font-family: Verdana, Geneva, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.pt/2012/02/first-eclipse-modeling-framework-emf_17.html&quot; style=&quot;color: #7d181e; text-decoration: initial;&quot; target=&quot;_blank&quot;&gt;First Eclipse Modeling Framework (EMF) example - 3&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/8753429486000833779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8753429486000833779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/8753429486000833779'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/first-eclipse-modeling-framework-emf.html' title='First Eclipse Modeling Framework (EMF) example - 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-3406117283705859516</id><published>2012-02-07T16:42:00.000+00:00</published><updated>2012-02-23T15:04:42.422+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Access to the database"/><category scheme="http://www.blogger.com/atom/ns#" term="Desktop Application"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Swing"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Example of Java Swing Application with Oracle Database – 4</title><content type='html'>In this article we&#39;re going to develop the presentation layer of our software application. This layer is also know as User Interface or Graphical User Interface Layer.&lt;br /&gt;
&lt;br /&gt;
In blog entry &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;&quot;&gt;Example of Java Swing Application with Oracle Database - 1&lt;/a&gt;, the first one of this series, we&#39;ve handled the Oracle database creation. In the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;2nd article&lt;/a&gt; a database access package has been created, HelperDB. The &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;3rd article&lt;/a&gt; addressed the creation of a class library at the level of business logic layer and data access layer.&lt;br /&gt;
&lt;br /&gt;
This article addresses the construction of the user interface project 
(GUI - Graphical User Interface) using Java Swing classes. To do that, we need to create a new Net Beans project, which we will name &lt;b&gt;LibrarySystem&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlUhkdfa9oZAlnJo5GijdCQRKe8J-6jk0opMAtxkk4U3XUQoOfmcb0I4UVaQjrgx3HEfXpnBbfItFqsf4pl-2gtOMOJrIWkeKL8C_m07RSz5elnNvAA9vRyJEQIr3o4nHNSqcleGAS-z7/s1600/JSwing02.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlUhkdfa9oZAlnJo5GijdCQRKe8J-6jk0opMAtxkk4U3XUQoOfmcb0I4UVaQjrgx3HEfXpnBbfItFqsf4pl-2gtOMOJrIWkeKL8C_m07RSz5elnNvAA9vRyJEQIr3o4nHNSqcleGAS-z7/s320/JSwing02.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This project must be a &lt;b&gt;Java Desktop Application&lt;/b&gt;.
This kind of project supplies a template with the basic infrastructure of a desktop application, such as a main window with a menu bar and a status bar.&lt;br /&gt;
&lt;br /&gt;
Then, we select &lt;b&gt;Basic Application&lt;/b&gt; (the other type, Database Application, will be treated in another series of articles). &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk1LZVqDxyBTUmDE79aDtPfXVXrrRDYSYm_cFc8C7tWwm90ODcwFgYsggnnDcxmAdWraNmIxwdaG0RizFa4kiIwqYaFpRnLgTvbAf3CP2x19c5OH4SRsIzsMLGg_v4wEd0MMhno126ryr4/s1600/JSwing03.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk1LZVqDxyBTUmDE79aDtPfXVXrrRDYSYm_cFc8C7tWwm90ODcwFgYsggnnDcxmAdWraNmIxwdaG0RizFa4kiIwqYaFpRnLgTvbAf3CP2x19c5OH4SRsIzsMLGg_v4wEd0MMhno126ryr4/s320/JSwing03.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This kind of project creates beforehand 3 classes:&lt;br /&gt;
&lt;b&gt;- LibrarySystemApp.java&lt;/b&gt;
 - this is the application&#39;s main class. The main method will launch the main window. From there, the whole application will be event-driven.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyTUhjbJG8CpCXSpcguitggesjWkdbmdgtTcatA3AomCYHN_eAzQmiVGJFJZDWsiX2AUiyMOGRn8ltlBpRlZYcPHPDGuM9RIZGdGAdw52TLketcRRtGk618FQoJN0GmZfEylCP1loM1-Y0/s1600/JSwing05.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyTUhjbJG8CpCXSpcguitggesjWkdbmdgtTcatA3AomCYHN_eAzQmiVGJFJZDWsiX2AUiyMOGRn8ltlBpRlZYcPHPDGuM9RIZGdGAdw52TLketcRRtGk618FQoJN0GmZfEylCP1loM1-Y0/s320/JSwing05.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;- LibrarySystemView.java&lt;/b&gt; - is the main window:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbBRhDoOQsijHDeSIcqLJ7x3oVn-H4F2f_NeIpsik8LJdCfw3DzAVxJmYpqCkOuJBpR0GSEXLScZ1FQbwEIjeTfJ4CGg_B5_xQK7o5G7sBIINToHPzyqonxJx7YLSU2v6xHjeCzIRApwKN/s1600/JSwing04.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbBRhDoOQsijHDeSIcqLJ7x3oVn-H4F2f_NeIpsik8LJdCfw3DzAVxJmYpqCkOuJBpR0GSEXLScZ1FQbwEIjeTfJ4CGg_B5_xQK7o5G7sBIINToHPzyqonxJx7YLSU2v6xHjeCzIRApwKN/s320/JSwing04.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;- LibrarySystemAboutBox.java&lt;/b&gt; - is an About window:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZIT_kJhqK3ngqMsisjjvWN95A6S830727JeKJRt561lUYQ18QDiOEui-7oUw8IqOqW61H1JryL229wXLWYx0NVUuHkCgQ-Nz2FfV5_dHc9qNBSPiiwF-WMiIXdQ2hw6HD-VHAF-Tl7pcy/s1600/JSwing06.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;181&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZIT_kJhqK3ngqMsisjjvWN95A6S830727JeKJRt561lUYQ18QDiOEui-7oUw8IqOqW61H1JryL229wXLWYx0NVUuHkCgQ-Nz2FfV5_dHc9qNBSPiiwF-WMiIXdQ2hw6HD-VHAF-Tl7pcy/s320/JSwing06.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In the Net Beans&#39; window with the project&#39;s View we can see the new project, together with the ones we&#39;ve created before. To keep the projects&#39; names withing a logical rationale, we&#39;ve modified this project&#39;s name to &lt;b&gt;libraryProjectGUI&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsdmNUV6anUXrODS5cMMlvHoNal-aA-hwKzHPwHaDpmefK45eNx4jwKnRX4kgWhbHAklM_7oYba2tCYRIrwnDmdxVXCRs6wZHfk0n01R4JNpoTgo1dOOfJub0AWZB63v5zsogWyvzB_GDA/s1600/JSwing01.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsdmNUV6anUXrODS5cMMlvHoNal-aA-hwKzHPwHaDpmefK45eNx4jwKnRX4kgWhbHAklM_7oYba2tCYRIrwnDmdxVXCRs6wZHfk0n01R4JNpoTgo1dOOfJub0AWZB63v5zsogWyvzB_GDA/s320/JSwing01.JPG&quot; width=&quot;235&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;1. User interface (GUI) construction&lt;/span&gt;&lt;br /&gt;
From the Pallete (where the Swing containers, Swing controls and 
Swing Windows are, together with other graphical elements), we drag the user interface objects that we intend to see in our application&#39;s window.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg519h7MBKHslTEyiiMI2NL0XEg9JXD7qEBmK1sU4pKj76fGhyG5DULKqEMU_aY_Y1ZU4iZ0v_Kt-2cDvUV9LpuwFVPY8SEoxNST_5e1MjnuqlLJ3KX_GU9nscCMHzBcmp_FmnKQfSW49ZE/s1600/JSwing07.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;284&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg519h7MBKHslTEyiiMI2NL0XEg9JXD7qEBmK1sU4pKj76fGhyG5DULKqEMU_aY_Y1ZU4iZ0v_Kt-2cDvUV9LpuwFVPY8SEoxNST_5e1MjnuqlLJ3KX_GU9nscCMHzBcmp_FmnKQfSW49ZE/s320/JSwing07.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Here, we will develop all the application within one window.&lt;br /&gt;
We start by adding menus (&lt;b&gt;JMenu&lt;/b&gt;) and menu items (&lt;b&gt;JMenuItem&lt;/b&gt;) in the menu bar that has been initially generated in the main window.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5l3Jmr5V6t9kSKHWczdZ3hfSxBSUgG6F7OgkKlW3gqHZ6eq7DHCZxWS7SWr9am3kerHBlzN2NJNSMNjhfFpbILAxKdEsxWo9gTSQ06lEvqwPE4Z1nn-SHlSm7hK73T6yfO0CjGL4K90QW/s1600/JSwing08.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5l3Jmr5V6t9kSKHWczdZ3hfSxBSUgG6F7OgkKlW3gqHZ6eq7DHCZxWS7SWr9am3kerHBlzN2NJNSMNjhfFpbILAxKdEsxWo9gTSQ06lEvqwPE4Z1nn-SHlSm7hK73T6yfO0CjGL4K90QW/s320/JSwing08.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
We create a menu item, &lt;b&gt;Initial Panel&lt;/b&gt;, in the File menu, that will allow us to get back to the initial panel:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2HrDXi5I0VmBHs5f86WlFzwCJq2Vxqf7ZIv3qGrWfL6poN5eshcrJJ9D0O1fUMwnUzSjeIXVpUm03NJ4SgKks5Un3nlz3g9KEG616ZWceBPdMakL06dLJLDBP47rzMqDrTCRt37swl6k3/s1600/JSwing09.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;131&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2HrDXi5I0VmBHs5f86WlFzwCJq2Vxqf7ZIv3qGrWfL6poN5eshcrJJ9D0O1fUMwnUzSjeIXVpUm03NJ4SgKks5Un3nlz3g9KEG616ZWceBPdMakL06dLJLDBP47rzMqDrTCRt37swl6k3/s320/JSwing09.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And, we create a new menu, &lt;b&gt;Books&lt;/b&gt;, with a menu item, &lt;b&gt;Manage Books&lt;/b&gt;, which will lead us to the books&#39; list and book maintenance panels:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4E4l2Y8m46jc4g_it3SazAO5eCRUdOy1D6jGkh9FKhX-8zXNTQJrHlcbIQPHFZBsvrUG_IoEVwEBqwHUSiWAIBR4Yo9UeP3butfPDvX0L2OPGfxOb1s_P8_dp0bM79W94xWRYX7cQArho/s1600/JSwing10.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4E4l2Y8m46jc4g_it3SazAO5eCRUdOy1D6jGkh9FKhX-8zXNTQJrHlcbIQPHFZBsvrUG_IoEVwEBqwHUSiWAIBR4Yo9UeP3butfPDvX0L2OPGfxOb1s_P8_dp0bM79W94xWRYX7cQArho/s320/JSwing10.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx7cdtEQoNY2bMOb5AyLu4O2OMtlUDfqVQ8iACNDhGVgF-TtjOtgEsinOWP-rZsrimV3gRIhZXGP53W9CI-vsx3FWqesxeEFwOHMKO_WnDFIW-7XjQbWM24CXP6XK9ZiFpTmnGfRlQI_eh/s1600/JSwing11.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;95&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx7cdtEQoNY2bMOb5AyLu4O2OMtlUDfqVQ8iACNDhGVgF-TtjOtgEsinOWP-rZsrimV3gRIhZXGP53W9CI-vsx3FWqesxeEFwOHMKO_WnDFIW-7XjQbWM24CXP6XK9ZiFpTmnGfRlQI_eh/s400/JSwing11.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now, we need to create new panels (&lt;b&gt;JPanel&lt;/b&gt;) that will substitute the initial panel in the application&#39;s main window when the appropriate menu items are selected by the user.&lt;br /&gt;
We create a new panel for creating and editting a book:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AVHZJ676LMJnbQOBYif_UBkZsV69liehNmIaBEJNhlReqOsadBX9hVeMbqVDjLuhUwQ_eWMJnutWSMKCLw1HkuSPx1x4E-S5Yl685sDYUTYzE4nxhChm74ZZ5ttu4AlVjNeYVchPvob2/s1600/JSwing12.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2AVHZJ676LMJnbQOBYif_UBkZsV69liehNmIaBEJNhlReqOsadBX9hVeMbqVDjLuhUwQ_eWMJnutWSMKCLw1HkuSPx1x4E-S5Yl685sDYUTYzE4nxhChm74ZZ5ttu4AlVjNeYVchPvob2/s320/JSwing12.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYXaPkHtsKcqlskF_2v1gAEpdLu4JziR3o_7HxqCxJQUCSixpe4uescgbvy0ouhZ8gSa7q-BAEWFcRQhyphenhyphenN1WO7WdhzB5PblgNSVyR27orzKEQrhJ5oUYDZAB1nspBYnQNOhAN29HYdYfmC/s1600/JSwing13.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYXaPkHtsKcqlskF_2v1gAEpdLu4JziR3o_7HxqCxJQUCSixpe4uescgbvy0ouhZ8gSa7q-BAEWFcRQhyphenhyphenN1WO7WdhzB5PblgNSVyR27orzKEQrhJ5oUYDZAB1nspBYnQNOhAN29HYdYfmC/s320/JSwing13.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8IYD6tTyJDvHjBNMLZzn5KABF1uiu4mY85m0zt7cqNidD1qDKYlZU1NhbHe3dBDqJARz-nU8aJmVb49m6A6FfmeYsaTCTEt50kYMqevO14CEF7eomYjnESTIfhSPyvCCaZZMvdOoHNaTO/s1600/JSwing14.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;164&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8IYD6tTyJDvHjBNMLZzn5KABF1uiu4mY85m0zt7cqNidD1qDKYlZU1NhbHe3dBDqJARz-nU8aJmVb49m6A6FfmeYsaTCTEt50kYMqevO14CEF7eomYjnESTIfhSPyvCCaZZMvdOoHNaTO/s320/JSwing14.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And, a new panel for listing all existing books:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGBUwH2Xq9pYnXsi52_keaA0TfElP26T6fQX7EW0Sv8SrP8AdwNycUQ8XbxUlnNe9SvyEwGvnhyz7FBTYSeGskqhcMQ6j9XMV9Ht3rlujoFncVgiAP5He-YkfbI6kcM8ljyIT3AsayOJz/s1600/JSwing15.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGBUwH2Xq9pYnXsi52_keaA0TfElP26T6fQX7EW0Sv8SrP8AdwNycUQ8XbxUlnNe9SvyEwGvnhyz7FBTYSeGskqhcMQ6j9XMV9Ht3rlujoFncVgiAP5He-YkfbI6kcM8ljyIT3AsayOJz/s320/JSwing15.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;2. GUI triggered events&#39; handling methods creation&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Let us now change the visible panel within the main window, everytime the &lt;b&gt;Manage Books &lt;/b&gt;menu option is selected from menu &lt;b&gt;Books&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
When a &quot;select menu item&quot; event occurs, we want it to be handled by a new method that will change the panels. We have two ways of doing it:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;2.1 &lt;/span&gt;With the right hand mouse button over the &lt;b&gt;Manage Books&lt;/b&gt; menu item, we select &lt;b&gt;Events&lt;/b&gt; --&amp;gt; &lt;b&gt;Action &lt;/b&gt;--&amp;gt; &lt;b&gt;actionPerformed&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHdNDyQvGbHzqCfS63giV5ri5tzCKGN_dteMKczw4l5zKLFBHjk14F2w6u6R2IFtnOP1gOQOapbKAx89Fl52BAE9LO-Q7n_aah9ooYI30_KQ3vsLf2_aoqrY83QqUbPDiCX0ScAXIdvV5d/s1600/JSwing20.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;194&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHdNDyQvGbHzqCfS63giV5ri5tzCKGN_dteMKczw4l5zKLFBHjk14F2w6u6R2IFtnOP1gOQOapbKAx89Fl52BAE9LO-Q7n_aah9ooYI30_KQ3vsLf2_aoqrY83QqUbPDiCX0ScAXIdvV5d/s320/JSwing20.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This causes code to be generated in class LibrarySystemView.java, 
associating a new method to the menu item selection event, and also creating a template for that new method:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// TODO add your handling code here:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;2.2&lt;/span&gt; With the right hand mouse button over the &lt;b&gt;Manage Books&lt;/b&gt; menu item, we select &lt;b&gt;Set Action&lt;/b&gt;. This leads us to a window for entering details about the code that will be generated:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsObruL-51o9pxMlDHtBeprtgqKTqXA5KMMjotrHAPf_0GKWpA-rg8oaH48wR3zOU3Ye3W9LMe7hjoAlp43Go-dZty5v_pZqENHpx4o-nI_3KJUhxMt5f7aJuSXPXeU-kQtUsPJr9wj8Oj/s1600/JSwing21.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsObruL-51o9pxMlDHtBeprtgqKTqXA5KMMjotrHAPf_0GKWpA-rg8oaH48wR3zOU3Ye3W9LMe7hjoAlp43Go-dZty5v_pZqENHpx4o-nI_3KJUhxMt5f7aJuSXPXeU-kQtUsPJr9wj8Oj/s320/JSwing21.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6PD5WActeB6y7XJBCrpXT-3jYshUoBmG_ll-8dhafhS7hKzka8R9R_EvxwEBxmSZo7jpyJ1WmlWEhXp1n5vdc9TtGxthiTDzvb80UobcPMu1pXUh8jfzd72BQMTkOhcjlFHtU03BjCoB/s1600/JSwing22.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6PD5WActeB6y7XJBCrpXT-3jYshUoBmG_ll-8dhafhS7hKzka8R9R_EvxwEBxmSZo7jpyJ1WmlWEhXp1n5vdc9TtGxthiTDzvb80UobcPMu1pXUh8jfzd72BQMTkOhcjlFHtU03BjCoB/s320/JSwing22.JPG&quot; width=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
In &lt;b&gt;Action&lt;/b&gt;, we select &lt;b&gt;Create New Action&lt;/b&gt;, and in &lt;b&gt;Action&#39;s Method&lt;/b&gt;, we write &lt;b&gt;listBooks&lt;/b&gt;. The methods listBooks() is then created, and is associated to the menu item selection event.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Action&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void listBooks() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
In the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;listBooks&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;()&lt;/span&gt; method, or &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;jMenuItem1ActionPerformed&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;()&lt;/span&gt; if we opt by the first approach, we&#39;re going to write code for switching panels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@Action&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;public void listBooks() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListBooksJPanel listbooksP = new ListBooksJPanel(this, this.dbo);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.visiblePanel.setVisible(false);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.visiblePanel = listbooksP;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; listbooksP.setVisible(true);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.getFrame().setContentPane(listbooksP);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.getFrame().repaint();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Before, we needed to create the following instance variables in class &lt;b&gt;LibrarySystemView&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;private HelperDB.DBAccessObj dbo;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;private JPanel visiblePanel = null;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
It is also needed to create code for retrieving books from the database and filling the tables in the ListBooksJPanel. There you need to use the class library we&#39;ve created in the previous article.&lt;br /&gt;
&lt;br /&gt;
If you have any difficulties with the code or if you wish to have the source files with the example, please ask for it in the comments section of this post.&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database - 1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database - 2&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database - 3&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/3406117283705859516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3406117283705859516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/3406117283705859516'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html' title='Example of Java Swing Application with Oracle Database – 4'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlUhkdfa9oZAlnJo5GijdCQRKe8J-6jk0opMAtxkk4U3XUQoOfmcb0I4UVaQjrgx3HEfXpnBbfItFqsf4pl-2gtOMOJrIWkeKL8C_m07RSz5elnNvAA9vRyJEQIr3o4nHNSqcleGAS-z7/s72-c/JSwing02.JPG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-4978603104162188976</id><published>2012-01-26T16:40:00.004+00:00</published><updated>2013-12-02T15:13:16.702+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Access to the database"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><title type='text'>Example of Java Swing Application with Oracle Database - 3</title><content type='html'>&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Today&lt;/span&gt;, we will develop &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class library&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that will consist in a software layer that maps&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to concepts&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the problem domain&lt;/span&gt;, and &lt;span class=&quot;hps&quot;&gt;bridges the gap&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;between the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;user interface&lt;/span&gt;, whose development will be &lt;span class=&quot;hps&quot;&gt;addressed&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;in the next article&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;persistence layer&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;treated&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;_blank&quot;&gt;first article of this series&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;This layer,&lt;/span&gt; with &lt;span class=&quot;hps&quot;&gt;concepts and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;operations&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the problem domain,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is commonly&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;called&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the &lt;b&gt;middle-tier&lt;/b&gt; or &lt;b&gt;business&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;span class=&quot;hps&quot;&gt;logic layer&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;We&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;may consider, then, that&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;our small &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;application system&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;will have&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;3-layered (or 3-tier) software architecture&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;&lt;/span&gt;&lt;span class=&quot;atn&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;&quot;&gt;we&#39;ll discuss the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;topic of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;software architecture&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;future article).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;There are several&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ways to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;develop this&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;middle tier, which&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;may itself&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;comprise one or&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;more layers.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;We will develop&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class for each&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;domain concept&lt;/span&gt;, which, within &lt;span class=&quot;hps&quot;&gt;this&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;small example, &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;corresponds &lt;span class=&quot;hps&quot;&gt;more or less&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to develop&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class for each&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;table in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database.&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;There are various&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ways to do this&lt;/span&gt;. &lt;span class=&quot;hps&quot;&gt;In particular, we&lt;/span&gt; will look at &lt;span class=&quot;hps&quot;&gt;two&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;possible&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ways, each&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with its own&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;group of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;supporters,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;its own advantages&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and disadvantages.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;1 – &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Some authors&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;advocate&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the development of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;only&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;one&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;layer of &lt;u&gt;classes&lt;/u&gt;&lt;/span&gt;&lt;u&gt; &lt;span class=&quot;hps&quot;&gt;with attributes&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and getters and&lt;/span&gt; &lt;/u&gt;&lt;span class=&quot;hps atn&quot;&gt;&lt;u&gt;setters&lt;/u&gt; (&lt;/span&gt;&lt;span class=&quot;&quot;&gt;eg&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Book&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;below)&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;separated&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;from a layer with&amp;nbsp;&lt;/span&gt;&lt;u&gt;&lt;span class=&quot;hps&quot;&gt;classes containing&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;operations with&lt;/span&gt; &lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;meaning for &lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps atn&quot;&gt;&lt;u&gt;the business&lt;/u&gt; (&lt;/span&gt;eg &lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;BookBLL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;below)&lt;/span&gt;&lt;/span&gt;, being this latter layer the one with knowledge for interfacing with the database.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;1.1 classe Book:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
public class Book {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private int idBook;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String title;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String editor;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private java.sql.Date date;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String ISBN;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String edition;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private List&amp;lt;Author&amp;gt; authors = new ArrayList&amp;lt;Author&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Book() {&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getID() {&amp;nbsp; return this.idBook;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setTitle(String title) {&amp;nbsp; this.title = title;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getTitle() {&amp;nbsp; return title;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setEditor(String editor) { this.editor = editor;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getEditor() {&amp;nbsp; return editor;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDate(java.sql.Date date) {&amp;nbsp; this.date = date;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public java.sql.Date getDate() {&amp;nbsp; return date;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setISBN(String ISBN) {&amp;nbsp; this.ISBN = ISBN;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getISBN() {&amp;nbsp; return ISBN;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setEdition(String edition) {&amp;nbsp; this.edition = edition;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getEdition() {&amp;nbsp; return edition;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public List&amp;lt;Author&amp;gt; getAuthors() {&amp;nbsp; return this.authors;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;1.2 classe BookBLL:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
public class BookBLL {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private DBAccessObj dbo;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public BookBLL() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo = new DBAccessObj();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public BookBLL(DBAccessObj dbo) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo = dbo;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void create(Book b) throws SQLException{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;INSERT INTO Book (ISBN, Title, Edition, Editor) VALUES(&#39;&quot; + &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.getISBN() + &quot;&#39;, &#39;&quot; + b.getTitle() + &quot;&#39;, &#39;&quot; + &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. getEdition() + &quot;&#39;, &#39;&quot; + b.getEditor() + &quot;&#39;)&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.executeSQL(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
…&lt;br /&gt;
// remaining methods&lt;br /&gt;
…&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;This&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;first&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;approach&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;does not explore&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the encapsulation of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data and operations&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;on the data (&lt;/span&gt;fundamental concept of the&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;object-oriented programming&lt;/span&gt;&lt;span class=&quot;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;paradigm&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAuh3MUAE6uNo70t-2_v6GxX7NRqCMJKXmGmCTBABHLZEfD1Q4GkMcFbKtEX75R7EkxKxd6WElq_3BDbkJVwAHyR6wnPZDdLyAQCM9d7LG4VwQA0tS8WKnAI07DtHh9SwQMIg-7i9xWDpn/s1600/3tier-1.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAuh3MUAE6uNo70t-2_v6GxX7NRqCMJKXmGmCTBABHLZEfD1Q4GkMcFbKtEX75R7EkxKxd6WElq_3BDbkJVwAHyR6wnPZDdLyAQCM9d7LG4VwQA0tS8WKnAI07DtHh9SwQMIg-7i9xWDpn/s320/3tier-1.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;2 – &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Another way&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is to develop&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;•&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;layer of &lt;u&gt;classes&lt;/u&gt;&lt;/span&gt;&lt;u&gt; &lt;span class=&quot;hps&quot;&gt;with attributes&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and getters and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;setters&lt;/span&gt;, plus &lt;span class=&quot;hps&quot;&gt;CRUD&lt;/span&gt; operations&lt;/u&gt; &lt;span class=&quot;hps&quot;&gt;(Create,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Retrieve,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Update,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Delete&lt;/span&gt;) (eg: class &lt;span class=&quot;hps&quot;&gt;BookDAL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;below)&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;separated from&lt;/span&gt;,&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;•&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;layer of&lt;/span&gt; &lt;u&gt;&lt;span class=&quot;hps&quot;&gt;classes with &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;operations with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;meaning for&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;u&gt;&lt;span class=&quot;hps&quot;&gt;the business,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and that do not&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;depend directly on the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;can be obtained&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;by composition&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;primitive&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;CRUD&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;operations&lt;/span&gt;&lt;/u&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;eg &lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;BookBLL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;below)&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In this approach, the layer with knowledge for interfacing with the database is the first one (the data access layer, DAL).&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;2.1 classe BookDAL:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
public class BookDAL {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private int idBook;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String title;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String editor;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private java.sql.Date date;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String ISBN;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String edition;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private List&amp;lt;Author&amp;gt; authors = new ArrayList&amp;lt;Author&amp;gt;();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private DBAccessObj dbo;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public BookDAL() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo = new DBAccessObj();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public BookDAL(DBAccessObj dbo) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo = dbo;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getID() {&amp;nbsp; return this.idBook;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setTitle(String title) {&amp;nbsp; this.title = title;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getTitle() {&amp;nbsp; return title;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setEditor(String editor) { this.editor = editor;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getEditor() {&amp;nbsp; return editor;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDate(java.sql.Date date) {&amp;nbsp; this.date = date;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public java.sql.Date getDate() {&amp;nbsp; return date;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setISBN(String ISBN) {&amp;nbsp; this.ISBN = ISBN;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getISBN() {&amp;nbsp; return ISBN;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setEdition(String edition) {&amp;nbsp; this.edition = edition;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getEdition() {&amp;nbsp; return edition;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public List&amp;lt;Author&amp;gt; getAuthors() {&amp;nbsp; return this.authors;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void create() throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;INSERT INTO Book (ISBN, Title, Edition, Editor) VALUES(&#39;&quot; + &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ISBN + &quot;&#39;, &#39;&quot; + this.title + &quot;&#39;, &#39;&quot; + this.edition + &quot;&#39;, &#39;&quot; + this.editor + &quot;&#39;)&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.executeSQL(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void retrieve(int id) throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;SELECT ISBN, Title, DateEdition, Edition, Editor FROM Book WHERE ID = &#39;&quot; + id + &quot;&#39;&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet book;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; book = this.dbo.executeQuery(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (book.next()){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.idBook = id;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ISBN = book.getString(&quot;ISBN&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.title = book.getString(&quot;Title&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.date = book.getDate(&quot;DateEdition&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.edition = book.getString(&quot;Edition&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.editor = book.getString(&quot;Editor&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void retrieveByISBN(String isbn) throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;SELECT ID, Title, DateEdition, Edition, Editor FROM Book WHERE ISBN = &#39;&quot; + isbn + &quot;&#39;&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet book;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; book = this.dbo.executeQuery(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (book.next()){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.idBook = book.getInt(&quot;ID&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.title = book.getString(&quot;Title&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.date = book.getDate(&quot;DateEdition&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.edition = book.getString(&quot;Edition&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.editor = book.getString(&quot;Editor&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ISBN = isbn;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void update() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;UPDATE Book SET ISBN = &#39;&quot; + this.ISBN + &quot;&#39;, Title = &#39;&quot; + this.title + &quot;&#39;, Edition = &#39;&quot; +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.edition + &quot;&#39;, Editor = &#39;&quot; + this.editor + &quot;&#39; WHERE ID = &#39;&quot; + this.idBook + &quot;&#39;&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.executeSQL(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void delete() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand = &quot;DELETE FROM Book WHERE ID = &#39;&quot; + this.idBook + &quot;&#39;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.executeSQL(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public ResultSet retrieveThisBookAuthors(DBAccessObj dbo) throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &quot;SELECT B.ID, B.ISBN, B.Title, A.ID, A.Name, A.Surname FROM BookAuthor 
BA, Author A, Book B WHERE BA.BookID = B.ID AND BA.AuthorID = A.ID AND 
B.ID = &quot; + this.getID() + &quot; ORDER BY 3, 2&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet books;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; books = dbo.executeQuery(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return books;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void fillThisBookAuthors() throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 String sqlCommand = &quot;SELECT A.ID, A.Name, A.Surname FROM BookAuthor BA,
 Author A, Book B WHERE BA.BookID = B.ID AND BA.AuthorID = A.ID AND B.ID
 = &quot; + this.getID() + &quot; ORDER BY 3, 2&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet booksA;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; booksA = this.dbo.executeQuery(sqlCommand);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (booksA.next()){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Author au = new Author();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; au.setName(booksA.getString(&quot;Name&quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; au.setSurname(booksA.getString(&quot;Surname&quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.authors.add(au);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static ResultSet retrieveAllBooks(DBAccessObj dbo) throws SQLException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sqlCommand = &quot;SELECT ISBN, Title, DateEdition, Edition, Editor FROM Book&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet books;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; books = dbo.executeQuery(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return books;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static ResultSet retrieveAllBooksAuthors(DBAccessObj dbo) throws SQLException{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 String sqlCommand = &quot;SELECT B.ID, B.ISBN, B.Title, A.ID, A.Name, 
A.Surname FROM BookAuthor BA, Author A, Book B WHERE BA.BookID = B.ID 
AND BA.AuthorID = A.ID ORDER BY 1, 6, 5&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet books;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbo.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; books = dbo.executeQuery(sqlCommand);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return books;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;2.2 classe ManageBooksBLL:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
public class ManageBooksBLL {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public ManageBooksBLL () {&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int borrowBook (Book book, Borrower leitor)&amp;nbsp; throws&amp;nbsp; ManageBookException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int borrowBook (int bookID, int leitorID)&amp;nbsp; throws&amp;nbsp; ManageBookException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int returnBook (Book book)&amp;nbsp; throws&amp;nbsp; ManageBookException{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int returnBook (int bookID)&amp;nbsp; throws&amp;nbsp; ManageBookException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In this approach&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;the encapsulation of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data and operations&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;appears,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;oriented to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the problem domain&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;entities&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;persistent &lt;span class=&quot;hps&quot;&gt;classes&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity&lt;/span&gt;), &lt;span class=&quot;hps&quot;&gt;in the data access &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;layer&lt;/span&gt; (&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;DAL&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;hps&quot;&gt;Business&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Logic&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Layer (&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;BLL&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;contains operations&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;oriented&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to the use cases&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to be implement&lt;/span&gt;ed in &lt;span class=&quot;hps&quot;&gt;the software application&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;and can therefore be&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;seen as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;layer&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;providing services to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the layer above&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;User Interface&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(UI&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;) or Presentation layer.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXGWGUFBd61w15_T7mVYv-ekwEkj88REix1bKU7O2l1kek0OZ9blmeLsj5gaJpuy5QpaUMwvypmvX_zl6I4E2d5KWWlBU6v1DnRThSBjdcD6QIKnsIGXsuvEvQ-xI9Dwv7_NaKOLIMsFCA/s1600/3tier-2.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;304&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXGWGUFBd61w15_T7mVYv-ekwEkj88REix1bKU7O2l1kek0OZ9blmeLsj5gaJpuy5QpaUMwvypmvX_zl6I4E2d5KWWlBU6v1DnRThSBjdcD6QIKnsIGXsuvEvQ-xI9Dwv7_NaKOLIMsFCA/s320/3tier-2.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In practical terms,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;depending on the amount&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of complex operations&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in a program&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(operations other than&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;CRUD&lt;/span&gt;), we can still &lt;span class=&quot;hps&quot;&gt;mix the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;DAL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and BLL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the 2nd&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;approach, &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;by adding&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;lasses&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;DAL&lt;/span&gt; the few &lt;span class=&quot;hps&quot;&gt;BLL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;methods&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that we&#39;d have&lt;/span&gt;, eliminating the &lt;span class=&quot;hps&quot;&gt;BLL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;classes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Note,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in both approaches&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, the use of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;DBAccessObj&lt;/span&gt;, whose development &lt;span class=&quot;hps&quot;&gt;has been addressed &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;in the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;previous article&lt;/a&gt;&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;to access the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;The&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;zip with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the end result may&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;as usual,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;be asked&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;for as a comment&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to this article&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database - 1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database - 2&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/4978603104162188976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/4978603104162188976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/4978603104162188976'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html' title='Example of Java Swing Application with Oracle Database - 3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAuh3MUAE6uNo70t-2_v6GxX7NRqCMJKXmGmCTBABHLZEfD1Q4GkMcFbKtEX75R7EkxKxd6WElq_3BDbkJVwAHyR6wnPZDdLyAQCM9d7LG4VwQA0tS8WKnAI07DtHh9SwQMIg-7i9xWDpn/s72-c/3tier-1.JPG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-5925579092384359128</id><published>2012-01-22T10:40:00.000+00:00</published><updated>2015-03-09T15:42:15.702+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Access to the database"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Example of Java Swing Application with Oracle Database - 2</title><content type='html'>In the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;&quot;&gt;previous blog entry&lt;/a&gt; we initiated the construction of a series of articles for constructing a small example application for managing a library, for desktop environment and using Java Swing classes, and accessing an Oracle database.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;&quot;&gt;previous article&lt;/a&gt; addressed the Oracle database creation. This article will handle the construction of a Java class for accessing the database.&lt;br /&gt;
&lt;br /&gt;
We will be using NetBeans IDE 7.0.1, which may be downloaded from &lt;a href=&quot;http://netbeans.org/community/releases/70/&quot; target=&quot;_blank&quot;&gt;http://netbeans.org/community/releases/70/&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After installing NetBeans IDE 7.0.1, we must create a new &quot;Java 
Class Library&quot; project, which we will name &lt;b&gt;HelperDB&lt;/b&gt;, because it will consist only of a single class for helping us access the database. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkgkhn5_-YifAjoLGCXnE1MI0A1NYpfJpADrzQq9gtvi6w2-K-iGxGgQwxRFQnmf2egTix4dQ5e9RzsgPa2IJnMtiyT6lYLOzGJtQNEKHmnGYgNtQSFVhc6R7FlonCz1zXmTpZH9mqrIv9/s1600/jpa01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkgkhn5_-YifAjoLGCXnE1MI0A1NYpfJpADrzQq9gtvi6w2-K-iGxGgQwxRFQnmf2egTix4dQ5e9RzsgPa2IJnMtiyT6lYLOzGJtQNEKHmnGYgNtQSFVhc6R7FlonCz1zXmTpZH9mqrIv9/s1600/jpa01.PNG&quot; height=&quot;440&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&amp;nbsp; &lt;br /&gt;
We also create a Java class, that we named DBAccessObj, in file DBAccessObj.java.&lt;br /&gt;
&lt;br /&gt;
It is needed to include two or three (depending on the ORACLE version) JAR library classes to access the Oracle database by using a JDBC driver:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3uu3Qnp7zEUEPahXOYq_UzSo8q6WwCeR98ReQkiuRIlgt3gCCuia04tJR-3BJRmHTHkpDydaZnaUcvn9voXEErqYYERIbJnQWOQPiwR7AVhFeBtWVEFti4fmc3fKTraapeyVfrjZriXqo/s1600/javaa21.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3uu3Qnp7zEUEPahXOYq_UzSo8q6WwCeR98ReQkiuRIlgt3gCCuia04tJR-3BJRmHTHkpDydaZnaUcvn9voXEErqYYERIbJnQWOQPiwR7AVhFeBtWVEFti4fmc3fKTraapeyVfrjZriXqo/s1600/javaa21.PNG&quot; height=&quot;200&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
These &lt;b&gt;jar&lt;/b&gt; files may be found in directory&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oraclexe\app\oracle\product\10.2.0\server\jdbc\lib&lt;br /&gt;
&lt;br /&gt;
being &lt;b&gt;oraclexe&lt;/b&gt; the directory where Oracle XE has been installed.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s now create a package, which we name HelperDB, that will contain our class, and let&#39;s import package &lt;b&gt;java.sql&lt;/b&gt;, which contains classes for connecting and sending SQL statements to the database:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
package HelperDB;&lt;br /&gt;
&lt;br /&gt;
import java.sql.*;&lt;br /&gt;
&lt;br /&gt;
public class DBAccessObj{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Connection conn;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DBAccessObj()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the only instance variable in our class, we shall create &lt;b&gt;conn&lt;/b&gt; of &quot;type&quot; &lt;b&gt;java.sql.Connection&lt;/b&gt;.&lt;br /&gt;
Actually, &lt;b&gt;Connection&lt;/b&gt; is a Java interface, and so &lt;b&gt;conn&lt;/b&gt; may contain an object of any type (class) that implements that interface. So, &lt;b&gt;conn&lt;/b&gt;
 may contain an instance of any type of connection. The type will be given by the DriverManager according to the driver that is being used.&lt;br /&gt;
&lt;br /&gt;
The class constructor will then be modified to create a database connection:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;DBAccessObj()&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.createDBConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void &lt;b&gt;createDBConnection()&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Class.forName(&quot;oracle.jdbc.driver.OracleDriver&quot;);&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(ClassNotFoundException e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Oops! Can&#39;t find class oracle.jdbc.driver.OracleDriver&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.exit(1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;conn = DriverManager.getConnection(&quot;jdbc:oracle:thin:@localhost:1521:XE&quot;, &quot;libraryuser&quot;,&quot;libraryuser&quot;);&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The driver we will be using is &lt;b&gt;&quot;oracle.jdbc.driver.OracleDriver&quot;&lt;/b&gt; and the database connection string is:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&quot;jdbc:oracle:thin:@localhost:1521:XE&quot;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
being &lt;b&gt;&quot;libraryuser&quot;,&quot;libraryuser&quot;&lt;/b&gt;, respectively the user and password of the user we want to use in the database access (refer to the &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot; target=&quot;&quot;&gt;previous article&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
At this point, if we write a small test class (TestClass.java) to create an instance of our class, it will be possible to see if the connection is correctly made:&lt;br /&gt;
&lt;br /&gt;
import HelperDB.DBAccessObj;&lt;br /&gt;
&lt;br /&gt;
public class TestClass {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBAccessObj conexao = new DBAccessObj();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
If the connection isn&#39;t made, one of the error messages that we put in the &lt;b&gt;catch&lt;/b&gt; part of the above try/catchs will appear.&lt;br /&gt;
&lt;br /&gt;
After creating the database connection we want to send SQL statements to the database, to insert data in a table (INSERT), modify data (UPDATE), delete
 data (DELETE) or consult data (SELECT).&lt;br /&gt;
&lt;br /&gt;
For that purpose, we need an instance of a class that implements interface &lt;b&gt;java.sql.Statement&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp; &lt;b&gt;Statement&lt;/b&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;createStatement()&lt;br /&gt;

&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Statement st=null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.conn==null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.createDBConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; st = this.conn.createStatement();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return st;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
To execute an &lt;b&gt;SQL command&lt;/b&gt; using the created &lt;b&gt;Statement&lt;/b&gt; instance, we&#39;ll create another couple of methods in our class:&lt;br /&gt;
&lt;br /&gt;
- To execute an SQL command that doesn&#39;t yield a result (INSERT, UPDATE or DELETE):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void &lt;b&gt;executeSQL(String SqlComm)&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Statement st = this.createStatement();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st.execute(SqlComm);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- To execute an SQL command that yields a result (SELECT):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;ResultSet&amp;nbsp; executeQuery(String SqlComm)&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Statement st = this.createStatement();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet rs=null;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs = st.executeQuery(SqlComm);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return rs;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, let&#39;s write methods for opening and closing a database connection:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;Connection&lt;/b&gt;&amp;nbsp; &lt;b&gt;openConnection()&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.conn==null)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.createDBConnection();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.conn;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &lt;b&gt;void&lt;/b&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;closeConnection()&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.conn!=null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.conn.close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This ends our class. To test it, we may now modify the test class:&lt;br /&gt;
&lt;br /&gt;
import HelperDB.DBAccessObj;&lt;br /&gt;
import java.sql.*;&lt;br /&gt;
&lt;br /&gt;
public class TestClass {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp; static&amp;nbsp; void&amp;nbsp; &lt;b&gt;main&lt;/b&gt;(String[] args) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBAccessObj conexao = new DBAccessObj();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; conexao.executeSQL(&quot;Insert into Author columns (Name, SURNAME) VALUES (&#39;XICO&#39;, &#39;MENDES&#39;)&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet rs = conexao.executeQuery(&quot;SELECT * FROM AUTHOR&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; while(rs.next()){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String aName = ((String)rs.getString(&quot;Name&quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; String aSurname = ((String)rs.getString(&quot;Surname&quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(aName + &quot; &quot; + aSurname);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; catch(Exception e){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;ERRO &quot; + e.getMessage());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
If everything is OK, the result of our test will be the insertion of author named XICO MENDES in table AUTHOR and the ulterior listing of the contents of the same table.&lt;br /&gt;
Methods for opening and closing a connection have not been tested, but we&#39;ll see their utility in a forthcoming article.&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database - 1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database - 3&lt;/a&gt; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/5925579092384359128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/5925579092384359128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/5925579092384359128'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html' title='Example of Java Swing Application with Oracle Database - 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkgkhn5_-YifAjoLGCXnE1MI0A1NYpfJpADrzQq9gtvi6w2-K-iGxGgQwxRFQnmf2egTix4dQ5e9RzsgPa2IJnMtiyT6lYLOzGJtQNEKHmnGYgNtQSFVhc6R7FlonCz1zXmTpZH9mqrIv9/s72-c/jpa01.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-7375057289408740594</id><published>2012-01-19T17:59:00.000+00:00</published><updated>2015-03-09T11:35:01.274+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Access to the database"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Net Beans"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Example of Java Swing Application with Oracle Database - 1</title><content type='html'>Today we&#39;re beginning a series of blog entries that will culminate in a small example Java application for a library management, for desktop environments and using Java Swing classes, and accessing an Oracle database (DB).&lt;br /&gt;
&lt;br /&gt;
This first article addresses the creation of a small Oracle database. It was used Oracle 
Express 10g, which can be freely downloaded from &lt;a href=&quot;http://www.oracle.com/technetwork/database/express-edition/downloads/102xewinsoft-090667.html&quot; target=&quot;_blank&quot;&gt;http://www.oracle.com/technetwork/database/express-edition/downloads/102xewinsoft-090667.html&lt;/a&gt;. There is a more recent version of Oracle Express, the 11g release 2, which may be downloaded from &lt;a href=&quot;http://www.oracle.com/technetwork/database/express-edition/downloads/index.html&quot; target=&quot;_blank&quot;&gt;http://www.oracle.com/technetwork/database/express-edition/downloads/index.html&lt;/a&gt; and with which the example shall also execute correctly.&lt;br /&gt;
&lt;br /&gt;
After installing Oracle, we may access the database administration tool by going to button &lt;b&gt;Start &lt;/b&gt;--&amp;gt; &lt;b&gt;All Programs &lt;/b&gt;--&amp;gt; &lt;b&gt;Oracle Database 10g Express Edition&lt;/b&gt; --&amp;gt; &lt;b&gt;Go to the Database Home Page&amp;nbsp;&lt;/b&gt; or, in a browser, go to &lt;b&gt;http://localhost:8080/apex&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Then, it shall appear a page for us to login in the administration tool:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKfXizlpAQ6jmfbxZWG3d8dkrSv_l1ESdmaZ1VUxCICfQXRQ7TC5yE8XdBdZOk0ae9ttn3oSecAxnWKl67LhICZqajZw1sZZU5Z3-IsRrrriFiJujbIwkYSUXtuXUqMMnKBzNPVTrVYEvz/s1600/ora1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKfXizlpAQ6jmfbxZWG3d8dkrSv_l1ESdmaZ1VUxCICfQXRQ7TC5yE8XdBdZOk0ae9ttn3oSecAxnWKl67LhICZqajZw1sZZU5Z3-IsRrrriFiJujbIwkYSUXtuXUqMMnKBzNPVTrVYEvz/s1600/ora1.PNG&quot; height=&quot;213&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
We shall login with user &lt;b&gt;SYSTEM&lt;/b&gt; and the password that we defined for that user during the instalation process.&lt;br /&gt;
After logging in the work space appears:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKEZG9VQLCPtW9LdBAxWTBxqmxTkLlOxIJPf2fJAYGfQql1dkjV0NTl72UYLEUEQLdc237RC63hQWFo3U4Fp68k_RFnyflwVHoMYE8XxENdPQFLoNVU7ZTe6GdrTqjlzyitizYN5WVrI2R/s1600/ora1a.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKEZG9VQLCPtW9LdBAxWTBxqmxTkLlOxIJPf2fJAYGfQql1dkjV0NTl72UYLEUEQLdc237RC63hQWFo3U4Fp68k_RFnyflwVHoMYE8XxENdPQFLoNVU7ZTe6GdrTqjlzyitizYN5WVrI2R/s1600/ora1a.PNG&quot; height=&quot;294&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we must, in the first place, create a new user (&lt;b&gt;Administration&lt;/b&gt; --&amp;gt; &lt;b&gt;Database Users&lt;/b&gt; --&amp;gt; &lt;b&gt;Create User&lt;/b&gt;). We have created user &lt;b&gt;libraryuser&lt;/b&gt;,
 which will then be used to create the database tables, and also to 
access the database from the Java application. It is needed to grant the
 new user privileges for CREATE TABLE and CREATE SEQUENCE, and we may 
also grant him privileges to CREATE VIEW, CREATE PROCEDURE, and CREATE 
TRIGGER.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnn4dPIbwn9mn6tLIIQGgnhKyOTHpWvdzxn6I3p95ODzPB0_tMd-6duXHjUoxRc65Ovoazz9QIrraTvylSkhwPXPfRnyhNmi4nCT-26D65LA9uBKMPkkLblPZSjiIDgS15rGCRf-f_9Mlr/s1600/ora2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnn4dPIbwn9mn6tLIIQGgnhKyOTHpWvdzxn6I3p95ODzPB0_tMd-6duXHjUoxRc65Ovoazz9QIrraTvylSkhwPXPfRnyhNmi4nCT-26D65LA9uBKMPkkLblPZSjiIDgS15rGCRf-f_9Mlr/s1600/ora2.PNG&quot; height=&quot;336&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The user name of the user with which the database tables are created will then be set as a prefix to the database tables (&lt;b&gt;schema&lt;/b&gt;) and, depending on the privileges granted to him, he/she may be restricted to his/her &quot;own&quot; tables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reference to a table column, in Oracle, has the following structure:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;oac_no_warn&quot;&gt;&quot;&lt;span class=&quot;italic&quot;&gt;schema&lt;/span&gt;&quot;.&quot;&lt;span class=&quot;italic&quot;&gt;table&lt;/span&gt;&quot;.&quot;&lt;span class=&quot;italic&quot;&gt;column&lt;/span&gt;&quot;&lt;/pre&gt;
&lt;pre class=&quot;oac_no_warn&quot;&gt;&amp;nbsp;&lt;/pre&gt;
The schema name may have 30 bytes, the table name another 30 bytes, and the column name still more 30 bytes.&lt;br /&gt;
The total length of a column identifier may, then, be up to 98 bytes (if we count the dots and commas).&lt;br /&gt;
&lt;br /&gt;
We, then, shall not use the user SYSTEM to create user tables in the database,
 and even less to access the database from a software application.&lt;br /&gt;
&lt;br /&gt;
Of course, in this toy application this isn&#39;t an important issue.&lt;br /&gt;
&lt;br /&gt;
The next step is to logout from the SYSTEM account, in the administration tool, and login as the newly created user (&lt;b&gt;libraryuser&lt;/b&gt;).&lt;br /&gt;
&lt;br /&gt;
Now we can create the tables that we need for our application&#39;s database, which will be created within schema &lt;b&gt;libraryuser&lt;/b&gt;, because that is the user that we&#39;ll be using in their creation.&lt;br /&gt;
&lt;br /&gt;
We want to create tables according to the following model:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRb83uyb8JtB5dEb4yTpO6s9ep6eJYokkrIo-5DhBOygTWrCXV4faLln_8SXYYtBdxle28e2e-l71n28XA-R1IBCL8-3IMCOtrl9YWs2cU4wWVskWOz6rhUfjcHucek-GAwbF_cNfCX_ja/s1600/hib-2-01.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRb83uyb8JtB5dEb4yTpO6s9ep6eJYokkrIo-5DhBOygTWrCXV4faLln_8SXYYtBdxle28e2e-l71n28XA-R1IBCL8-3IMCOtrl9YWs2cU4wWVskWOz6rhUfjcHucek-GAwbF_cNfCX_ja/s1600/hib-2-01.JPG&quot; height=&quot;400&quot; width=&quot;357&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Now, let&#39;s create the tables. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEY6dLxiGTwCFITNhyphenhyphenQPJNUXflnoqJgSoQDCkmF4e1L-LhdJoTA495oIeNpJb_1cNOe9icjug9rDpaH4qld8kmMcNQ2ulPsP3Y4mUmk-98ffPCZMbrKUslfqvWqYwq82iWScbYGYu1Fi0t/s1600/ora3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEY6dLxiGTwCFITNhyphenhyphenQPJNUXflnoqJgSoQDCkmF4e1L-LhdJoTA495oIeNpJb_1cNOe9icjug9rDpaH4qld8kmMcNQ2ulPsP3Y4mUmk-98ffPCZMbrKUslfqvWqYwq82iWScbYGYu1Fi0t/s1600/ora3.PNG&quot; height=&quot;467&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Here is the process for creating the table AUTHOR:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi6pVhsZJ8kw2qPhxZ-Uxb9YQCVcw2vTpGy-dQer1JWhSMNyv0ZbP63TmiHzMOZRnuuVeKfJmwP_V0tUxCBMZXOIcnLyyKZT6sd6INZVSsNITOC0bJ2rswfa6IVeW8rDCcQak_P2p3WlBs/s1600/ora4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi6pVhsZJ8kw2qPhxZ-Uxb9YQCVcw2vTpGy-dQer1JWhSMNyv0ZbP63TmiHzMOZRnuuVeKfJmwP_V0tUxCBMZXOIcnLyyKZT6sd6INZVSsNITOC0bJ2rswfa6IVeW8rDCcQak_P2p3WlBs/s1600/ora4.PNG&quot; height=&quot;440&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Table Author has a Primary Key, which we want to be populated from a new sequence:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpqA7Mo708ndELLKEbjlUrZKA_JRzngdrVrGif150f8yY4vpWU48d5Z0lRSnVrItCbeD6Ruahegl53qZ2Pl0UmvZoxgSv5t_TZ43I_1bncQizqKNZ-tVf62JnyinqfgvvIQG1onFtDybFF/s1600/ora5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpqA7Mo708ndELLKEbjlUrZKA_JRzngdrVrGif150f8yY4vpWU48d5Z0lRSnVrItCbeD6Ruahegl53qZ2Pl0UmvZoxgSv5t_TZ43I_1bncQizqKNZ-tVf62JnyinqfgvvIQG1onFtDybFF/s1600/ora5.PNG&quot; height=&quot;344&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
ORACLE will create the new sequence and a trigger for populating the primary key.&lt;br /&gt;
&lt;br /&gt;
Table AUTHOR has no foreign keys, nor other check constraints. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYA23Ht7ar-d2Nh2zBP0jRJmzM0BpyWC7ciomkRzQ8BXLhohErzAb6m6-0fFbUg9rQ0SUK_i7z3d8RTGwVW9-exIMa5_Qd7zprYrqWBtjPWGSkKK6rENT_E2IPgOBEeCALWV4yMUDWVNv/s1600/ora6.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYA23Ht7ar-d2Nh2zBP0jRJmzM0BpyWC7ciomkRzQ8BXLhohErzAb6m6-0fFbUg9rQ0SUK_i7z3d8RTGwVW9-exIMa5_Qd7zprYrqWBtjPWGSkKK6rENT_E2IPgOBEeCALWV4yMUDWVNv/s1600/ora6.PNG&quot; height=&quot;416&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguG_xw9XUkj6_VNFKB2LUo_2xI6b9u20dkFPf9HlQDF1GFstBQz4b-6DlyLWChmFSZ6oJen0d2quJ951p23_D689FWHaaPJVUfjTGxxv_8O4IDmqyHzEGo15rQ1-s3rHx67hbIxKKYHgC9/s1600/ora7.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguG_xw9XUkj6_VNFKB2LUo_2xI6b9u20dkFPf9HlQDF1GFstBQz4b-6DlyLWChmFSZ6oJen0d2quJ951p23_D689FWHaaPJVUfjTGxxv_8O4IDmqyHzEGo15rQ1-s3rHx67hbIxKKYHgC9/s1600/ora7.PNG&quot; height=&quot;496&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
But, note that, in our database schema, table BookAuthor must have two foreign keys (referencing Book and Author), and table BookCopy must have one foreign key referencing Book.&lt;br /&gt;
&lt;br /&gt;
After all tables being created...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiggP7ETQmx7OAMZdzg36nkok67LhfCPj5rfOdmaWtFfQgaVmmAPo9c_RGiMVewrJbH_zyW0b1zrLPprDyvaje0xZsfnjaog5X1Dujx27GjoHIFMkFyOTcuZzMuG4CleGPMwNr10n1YLJlp/s1600/ora8.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiggP7ETQmx7OAMZdzg36nkok67LhfCPj5rfOdmaWtFfQgaVmmAPo9c_RGiMVewrJbH_zyW0b1zrLPprDyvaje0xZsfnjaog5X1Dujx27GjoHIFMkFyOTcuZzMuG4CleGPMwNr10n1YLJlp/s1600/ora8.PNG&quot; height=&quot;216&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
In the next article we&#39;ll create a Java class for accessing the newly created database.&lt;br /&gt;
If you have any trouble, please put you questions as comments to this article.&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_22.html&quot;&gt;Example of Java Swing Application with Oracle Database - 2&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with_26.html&quot;&gt;Example of Java Swing Application with Oracle Database - 3&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://practicalsw.blogspot.com/2012/02/example-of-java-swing-application-with.html&quot;&gt;Example of Java Swing Application with Oracle Database – 4&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/7375057289408740594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/7375057289408740594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/7375057289408740594'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/01/example-of-java-swing-application-with.html' title='Example of Java Swing Application with Oracle Database - 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKfXizlpAQ6jmfbxZWG3d8dkrSv_l1ESdmaZ1VUxCICfQXRQ7TC5yE8XdBdZOk0ae9ttn3oSecAxnWKl67LhICZqajZw1sZZU5Z3-IsRrrriFiJujbIwkYSUXtuXUqMMnKBzNPVTrVYEvz/s72-c/ora1.PNG" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-7202343872240353992</id><published>2012-01-18T16:49:00.001+00:00</published><updated>2012-01-18T16:49:39.865+00:00</updated><title type='text'></title><content type='html'>&lt;br /&gt;
&lt;h1&gt;

&lt;a href=&quot;http://sopastrike.com/modal/strike-modal/index.html&quot; target=&quot;_blank&quot;&gt;Today, we are striking against censorship. &lt;b&gt;Join us in this historic moment:&lt;/b&gt; tell congress to stop this bill now!&lt;/a&gt;&lt;/h1&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/7202343872240353992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/01/today-we-are-striking-against.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/7202343872240353992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/7202343872240353992'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/01/today-we-are-striking-against.html' title=''/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-1241577919786211850</id><published>2012-01-03T10:41:00.001+00:00</published><updated>2012-01-22T11:14:44.493+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Forms"/><title type='text'>Start using .Net Entity Framework - 3</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This article illustrates the usage of ADO.Net Entity Framework
in creating, updating and deleting data records.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This article comes after:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;Start using .Net Entity Framework - 1&lt;/a&gt; , and &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html&quot;&gt;Start using .Net Entity Framework - 2&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
where we saw how to create a data model (&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;ADO.Net Entity Data Model&lt;/b&gt;) from a pre-existing database, and how to use that model to query the database and fill a comboBox, by using a small example. The example database has only one table (&lt;b&gt;Pais&lt;/b&gt;) with countries.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Taking the same example, we added a label to &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Form1&lt;/b&gt;, which will enable the visualization of each record&#39;s ID, and a text box that enables the user to modify the name of a country or create a new country in the database.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-pXQ2GJdh8uY/TwLdOMoHKwI/AAAAAAAAADE/l1UeF8lVInE/s1600/entityFramework12-en.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;http://4.bp.blogspot.com/-pXQ2GJdh8uY/TwLdOMoHKwI/AAAAAAAAADE/l1UeF8lVInE/s320/entityFramework12-en.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Buttons have also been added to &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Create New&lt;/b&gt;, &lt;b&gt;Update&lt;/b&gt; and &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Delete&lt;/b&gt; a country in the table, and a &lt;b&gt;Cancel&lt;/b&gt; button that closes the application.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
To start, we add, in the method that handles the selection of a new line in the comboBox, the code to&amp;nbsp; fill the label
(&lt;b&gt;label1&lt;/b&gt;) with the country ID, and the text box (&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;paisTextBox&lt;/b&gt;) with the name (nome) of the country. This allows the user to edit the current name of a country, in order to modify it, or to insert a new country&#39;s name, in order to create it in the database.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt;
paisesBox1_SelectedIndexChanged(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt; sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label1.Text =
paisesBox1.SelectedValue.ToString();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisAtual = (&lt;span style=&quot;color: #2b91af;&quot;&gt;Pais&lt;/span&gt;)paisesBox1.SelectedItem;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisTextBox.Text = paisAtual.nome;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;







Update the Name of a Country:&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
We create a clich handler for button &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Update&lt;/b&gt;:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; UpdateBut_Click(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt;
sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp; paisAtual.nome = paisTextBox.Text;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;
rowsAffected = dbContext.SaveChanges();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #2b91af;&quot;&gt;MessageBox&lt;/span&gt;.Show(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Updated &quot;&lt;/span&gt; + rowsAffected.ToString() +
&lt;span style=&quot;color: #a31515;&quot;&gt;&quot; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;table records&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;.&quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;







Create a New Country:&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
We create a click handler for button &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Create&lt;/b&gt;:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; CreateBut_Click(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt; sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs&lt;/span&gt;
e)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #2b91af;&quot;&gt;Pais&lt;/span&gt; novoPais = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;
&lt;span style=&quot;color: #2b91af;&quot;&gt;Pais&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
novoPais.nome = paisTextBox.Text;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
dbContext.AddToPaises(novoPais);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; rowsAffected = dbContext.SaveChanges();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
paisAtual = novoPais;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #2b91af;&quot;&gt;MessageBox&lt;/span&gt;.Show(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Created
&quot;&lt;/span&gt; + rowsAffected.ToString() + &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;
new record(s) in the table.&quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
dbContext = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;
simpleEntityFrameworkApp.&lt;span style=&quot;color: #2b91af;&quot;&gt;bdExemploEntities&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.DataSource = dbContext.Paises;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;paisesBox1.DisplayMember
= &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;nome&quot;&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;paisesBox1.Invalidate();&lt;/span&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;







&lt;/h2&gt;
&lt;h2&gt;




Delete a Country:&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
We create a click handler for button &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Delete&lt;/b&gt;:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; delButton_Click(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt;
sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbContext.DeleteObject(paisAtual);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;
rowsAffected = dbContext.SaveChanges();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #2b91af;&quot;&gt;MessageBox&lt;/span&gt;.Show(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Deleted &quot;&lt;/span&gt; + rowsAffected.ToString() + &lt;span style=&quot;color: #a31515;&quot;&gt;&quot; table records.&quot;&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; label1.Text =
paisesBox1.SelectedValue.ToString();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisAtual
= (&lt;span style=&quot;color: #2b91af;&quot;&gt;Pais&lt;/span&gt;)paisesBox1.SelectedItem;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
paisTextBox.Text = paisAtual.nome;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 250.5pt;&quot;&gt;
Finally, the click handler of the Cancel button only disposes of the database mapping context and closes the form.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt;
Cancelbotao_Click(&lt;span style=&quot;color: blue;&quot;&gt;object&lt;/span&gt; sender, &lt;span style=&quot;color: #2b91af;&quot;&gt;EventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
dbContext.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;.Close();&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 250.5pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html&quot;&gt;- ADO.Net Entity Framework&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;Start using .Net Entity Framework - 1&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html&quot;&gt;Start using .Net Entity Framework - 2&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Once again, whoever is interested in obtaining the code with the example, please ask for it in a comment to this post.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/1241577919786211850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2012/01/start-using-net-entity-framework-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1241577919786211850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1241577919786211850'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2012/01/start-using-net-entity-framework-3.html' title='Start using .Net Entity Framework - 3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-pXQ2GJdh8uY/TwLdOMoHKwI/AAAAAAAAADE/l1UeF8lVInE/s72-c/entityFramework12-en.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-6139032269568041922</id><published>2011-12-30T12:33:00.001+00:00</published><updated>2012-02-07T16:02:53.749+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><title type='text'>Object-Relational Mapping Tools</title><content type='html'>&lt;b&gt;Object-Relational Mapping Tools&lt;/b&gt; or &lt;b&gt;ORM tools&lt;/b&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;&quot;&gt; are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;middleware tools&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;used to create&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;object-oriented&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;abstraction layer&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;to the programmer,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;while dealing with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the data in a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;relational format&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;in the database&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;ORM&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;tools&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;provide&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;thus,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;abstraction layer that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;allows the programmer to&lt;/span&gt; abstract away from &lt;span class=&quot;hps&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;physical format&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in which&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data is stored&lt;/span&gt;. &lt;span class=&quot;hps&quot;&gt;Managing&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data persistence&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is delegated&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ORM&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;tool&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, allowing the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;programmer to work&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;at the code level&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with objects&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that instantiate&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the domain model&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, developed in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;software&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;modelling phase&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;, instead &lt;span class=&quot;hps&quot;&gt;of having to use&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;structures with the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;format of the &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt;&lt;span class=&quot;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;tables&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;The &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;object-relational&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;mapping&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt; tools&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;establish&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;bidirectional&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;connection&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;between the objects&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in the code&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and data&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a relational database&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;There are several&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ORM tools&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;both commercial and free&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(see&amp;nbsp;&lt;a href=&quot;http://www.blogger.com/goog_1438554760&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software&quot; target=&quot;_blank&quot;&gt;List of object-relational mapping software&lt;/a&gt;), among &lt;span class=&quot;hps&quot;&gt;which the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;most widely-used&lt;/span&gt; in &lt;span class=&quot;hps&quot;&gt;Java world is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;certainly&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Hibernate&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;and in .&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;Net &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;world&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt; is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;ADO.Net&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity Framework&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;NHibernate&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
Read more:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://madgeek.com/Articles/ORMapping/EN/mapping.htm&quot; target=&quot;_blank&quot;&gt;Choosing an object-relational mapping tool&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://www.hibernate.org/&quot; target=&quot;_blank&quot;&gt;Hibernate.org&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://msdn.microsoft.com/en-us/data/aa937709&quot; target=&quot;_blank&quot;&gt;ADO.Net Entity Framework at a glance&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html&quot;&gt;- ADO.Net Entity Framework&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;Start using .Net Entity Framework - 1&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html&quot;&gt;Start using .Net Entity Framework - 2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/6139032269568041922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2011/12/object-relational-mapping-tools-or-orm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6139032269568041922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6139032269568041922'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2011/12/object-relational-mapping-tools-or-orm.html' title='Object-Relational Mapping Tools'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-1370482296397180172</id><published>2011-12-29T17:01:00.002+00:00</published><updated>2012-01-22T11:14:30.697+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Forms"/><title type='text'>Start using .Net Entity Framework - 2</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;After having created the&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;Windows Forms Application&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;project&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and generated the&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;data model&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;from the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;let&#39;s see how&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;we can access the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database through&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the model,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;using a small&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;illustrative example&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;In the&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;Form1&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;form&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;created automatically&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;when creating the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Windows Forms&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Application&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;project&lt;/span&gt;, we will create &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;comboBox&lt;/span&gt;&lt;span class=&quot;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;dragging&lt;/span&gt; it &lt;span class=&quot;hps&quot;&gt;from the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;toolbox&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/--k02Hqza96E/TvUMbj4OeKI/AAAAAAAAAA8/wJiAAGXblSA/s1600/entityFramework08.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;143&quot; src=&quot;http://2.bp.blogspot.com/--k02Hqza96E/TvUMbj4OeKI/AAAAAAAAAA8/wJiAAGXblSA/s320/entityFramework08.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;b&gt;Properties&lt;/b&gt; tab&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;we change&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;its name&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;paisesBox1&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-BzEOtPqBd6o/TvUMuXFDI-I/AAAAAAAAABI/f-cJ3QCHb5s/s1600/entityFramework09.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-BzEOtPqBd6o/TvUMuXFDI-I/AAAAAAAAABI/f-cJ3QCHb5s/s1600/entityFramework09.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Then&lt;/span&gt; we &lt;span class=&quot;hps&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;event handler for the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;b&gt;Load event&lt;/b&gt; of&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;Form1&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;form&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;last line &lt;span class=&quot;hps&quot;&gt;of code in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;InitializeComponent () method&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;below):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-SzpNFcB0Cqs/TvUNFqrDvJI/AAAAAAAAABU/nTHEW8cRh04/s1600/entityFramework10.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;318&quot; src=&quot;http://2.bp.blogspot.com/-SzpNFcB0Cqs/TvUNFqrDvJI/AAAAAAAAABU/nTHEW8cRh04/s320/entityFramework10.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;And create&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the method&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;corresponding to the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;event handler&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;&lt;b&gt;&lt;span class=&quot;&quot;&gt;Form1_Load&lt;/span&gt; &lt;/b&gt;&lt;span class=&quot;hps&quot;&gt;&lt;b&gt;()&lt;/b&gt;):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-NB5ehe4oABo/TvUN5_NaVuI/AAAAAAAAABg/QE_ihfB5ZU4/s1600/entityFramework11.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;298&quot; src=&quot;http://4.bp.blogspot.com/-NB5ehe4oABo/TvUN5_NaVuI/AAAAAAAAABg/QE_ihfB5ZU4/s320/entityFramework11.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;This method&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;will fill the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;b&gt;&lt;span class=&quot;hps&quot;&gt;paisesBox1 &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;comboBox&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;when the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;form &lt;/span&gt;&lt;b&gt;&lt;span class=&quot;hps&quot;&gt;Form1&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;starts.&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Let&#39;s see how&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;this is done&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in more&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;detail:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; - Line&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;simpleEntityFrameworkApp.bdExemploEntities dbContext;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declares variable &lt;b&gt;dbContext&lt;/b&gt; of type &lt;b&gt;bdExemploEntities&lt;/b&gt;, which corresponds to the created data model.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; - Line&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbContext = new simpleEntityFrameworkApp.bdExemploEntities();&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;long_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;creates the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;object with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the data model&lt;/span&gt;, responsible for &lt;span class=&quot;hps&quot;&gt;the mapping&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the database&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;assigns it to the &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;variable&lt;/span&gt; &lt;b&gt;d&lt;/b&gt;&lt;span class=&quot;hps&quot;&gt;&lt;b&gt;bContext&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; - Line &lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.DataSource = dbContext.Paises;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assigns &lt;b&gt;Paises&lt;/b&gt;, in the database context created before, to the &lt;b&gt;DataSource&lt;/b&gt; property of the comboBox, &lt;span class=&quot;long_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;indicating that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;this is from where data &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;for the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;comboBox&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;long_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;should be read&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; - Lines &lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.DisplayMember = &quot;nome&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.ValueMember = &quot;idPais&quot;;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; identify &lt;b&gt;attributes &lt;/b&gt;of &lt;b&gt;Pais&lt;/b&gt; (one country; whether Paises are several countries) that shall be displayed in the comboBox (property &lt;b&gt;DisplayMember&lt;/b&gt;) and yelded as &lt;b&gt;selectedValue&lt;/b&gt; property of the comboBox when a country (país) is selected (&lt;b&gt;ValueMember&lt;/b&gt;). &lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
This code excerpt reads all lines of &lt;b&gt;table Pais&lt;/b&gt; and fills the comboBox.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
If,
 for example, we intended to filter the data by some criteria we could use LiNQ to do it, before we associate the result to the comboBox.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For instance, line&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.DataSource = dbContext.Paises;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
could be replaced by:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Pais&amp;gt; listaPaises;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IQueryable&amp;lt;Pais&amp;gt; paisesQuery = from p in dbContext.Paises&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where p.idPais &amp;gt; 20 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select p;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listaPaises = paisesQuery.ToList&amp;lt;Pais&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paisesBox1.DataSource = listaPaises;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In this case, the comboBox would be filled only with the countries (países) with ID (&lt;b&gt;idPais&lt;/b&gt;) higher than 20.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In a &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;forthcoming article we will see&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;how to update&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;created&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with the &lt;b&gt;Entity&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span class=&quot;hps&quot;&gt;&lt;b&gt;Framework&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
If anyone is interested in the C# code used in this example, please ask for it in a comment to this blog entry.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html&quot;&gt;- ADO.Net Entity Framework&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;Start using .Net Entity Framework - 1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/1370482296397180172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1370482296397180172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/1370482296397180172'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html' title='Start using .Net Entity Framework - 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--k02Hqza96E/TvUMbj4OeKI/AAAAAAAAAA8/wJiAAGXblSA/s72-c/entityFramework08.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-6685421713465432315</id><published>2011-12-29T16:08:00.000+00:00</published><updated>2011-12-31T17:16:22.561+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><title type='text'>Start using .Net Entity Framework - 1</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;This article illustrates&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the creation of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity Framework&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and its use&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;small program&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in C&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;for Windows (&lt;/span&gt;Windows Application).&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;To implement&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;this example&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;you must have&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;installed&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Visual&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Studio&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;2010&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;2008&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;should also work&lt;/span&gt;), &lt;span class=&quot;hps&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;well&lt;/span&gt; as .Net framework &lt;span class=&quot;hps&quot;&gt;3.5 SP1&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;or higher.&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;In addition&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, it is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;necessary to access&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;database &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;service&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;so as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the first&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;approach&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;it is advisable&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to use Microsoft&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;SQL&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Server&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;2008&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;1&lt;/span&gt;. &lt;span class=&quot;hps&quot;&gt;The first step&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is to create&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;new project&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of type &lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Windows Forms Application&lt;/b&gt;.&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;we add&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;new item to the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;project, &lt;/span&gt;of type &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;ADO.Net&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity Data Model&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt; &lt;span class=&quot;hps&quot;&gt;(see&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;next two images&lt;/span&gt;&lt;span class=&quot;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;In the example&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;it has been given the name&lt;/span&gt; &lt;b&gt;&lt;span class=&quot;hps&quot;&gt;ModeloDeDados.edmx&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;hps&quot;&gt;to the file&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that will contain&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the data model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and the &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt;&lt;span class=&quot;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;mapping&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-9KP9o_SFl00/TvYCaDPruAI/AAAAAAAAAB0/6swLvde0tj8/s1600/entityFramework01.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;http://2.bp.blogspot.com/-9KP9o_SFl00/TvYCaDPruAI/AAAAAAAAAB0/6swLvde0tj8/s320/entityFramework01.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-m-BLHmi3-Cs/TvYCg5p6K3I/AAAAAAAAACA/Rboo49a5RYU/s1600/entityFramework02.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;205&quot; src=&quot;http://2.bp.blogspot.com/-m-BLHmi3-Cs/TvYCg5p6K3I/AAAAAAAAACA/Rboo49a5RYU/s320/entityFramework02.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. &lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Then,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;make things much easier&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;we&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;generate the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;existing database&lt;/span&gt;. &lt;span class=&quot;hps&quot;&gt;To&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;do this, select&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&quot;Generate&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database&quot;&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;see the figure &lt;span class=&quot;hps&quot;&gt;below)&lt;/span&gt;&lt;/span&gt;.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-EcEF5fjzrqk/TvYCocDJy1I/AAAAAAAAACM/rLhbIX5FR-E/s1600/entityFramework03.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;284&quot; src=&quot;http://1.bp.blogspot.com/-EcEF5fjzrqk/TvYCocDJy1I/AAAAAAAAACM/rLhbIX5FR-E/s320/entityFramework03.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;This option&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;requires us to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;set up the &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;connection, &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;from which&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;the data model&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;and mappings will be generated&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;hps&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Select&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the server where&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;service&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is running&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;, the &lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;, &lt;span class=&quot;hps&quot;&gt;and test the connection&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-5pqs-KT9f0s/TvYCtqfXRcI/AAAAAAAAACY/Boa-oRn6ygs/s1600/entityFramework04.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;http://1.bp.blogspot.com/-5pqs-KT9f0s/TvYCtqfXRcI/AAAAAAAAACY/Boa-oRn6ygs/s320/entityFramework04.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp; - &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;choose to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;save the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;connection string&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;App.Config&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-Vzj6yA8Xhm8/TvYCym5Gb_I/AAAAAAAAACk/ReMUQH5r6VU/s1600/entityFramework05.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;284&quot; src=&quot;http://1.bp.blogspot.com/-Vzj6yA8Xhm8/TvYCym5Gb_I/AAAAAAAAACk/ReMUQH5r6VU/s320/entityFramework05.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
4. &lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Then,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;choose&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;objects&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that will be part&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the model and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;will be mapped&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;between the model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and the database&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;&quot;&gt;in this case&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;we have only&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;one&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;table, Paises (meaning countries))&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-2iMu1EvCU8U/TvYC5NIbYhI/AAAAAAAAACw/R4XszC_wfiA/s1600/entityFramework06.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;284&quot; src=&quot;http://2.bp.blogspot.com/-2iMu1EvCU8U/TvYC5NIbYhI/AAAAAAAAACw/R4XszC_wfiA/s320/entityFramework06.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Finally&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, we get&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;graphical view&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the model&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;generated from the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt;&lt;/span&gt;.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-6Q4NkiS40lQ/TvTfYybnnGI/AAAAAAAAAAw/h3-Cr_v790s/s1600/entityFramework07.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;215&quot; src=&quot;http://4.bp.blogspot.com/-6Q4NkiS40lQ/TvTfYybnnGI/AAAAAAAAAAw/h3-Cr_v790s/s320/entityFramework07.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Next &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/comecar-usar-o-net-entity-framework-2.html&quot;&gt;article&lt;/a&gt; will illustrate the use of the generated data model from a small C# program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;anyone wants&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the code used in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;example&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;please ask&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;for it&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;as a comment&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to this article&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html&quot;&gt;- ADO.Net Entity Framework&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html&quot;&gt;Start using .Net Entity Framework - 2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/6685421713465432315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6685421713465432315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6685421713465432315'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html' title='Start using .Net Entity Framework - 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-9KP9o_SFl00/TvYCaDPruAI/AAAAAAAAAB0/6swLvde0tj8/s72-c/entityFramework01.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-2399411978298716451</id><published>2011-12-29T15:10:00.003+00:00</published><updated>2011-12-31T17:15:44.922+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM Tools"/><title type='text'>ADO.Net Entity Framework</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Entity&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Framework is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;set of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;ADO.NET&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;technologies&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that support the&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps atn&quot;&gt;data-&lt;/span&gt;oriented&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt; software development&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps atn&quot;&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Typically&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;today&lt;/span&gt;, developers of &lt;span class=&quot;hps&quot;&gt;data&lt;/span&gt;-driven applications&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;perform&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;modelling of &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;entities and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;relationships&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in an&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;object-&lt;/span&gt;oriented way, &lt;span class=&quot;hps&quot;&gt;and then&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;have to deal with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the format in which&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;these entities&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;have to be put&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in a&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;engine&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;. &lt;span class=&quot;hps&quot;&gt;The data can be&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;physically distributed across&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;multiple&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;storage systems&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and even&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;applications that work&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with only&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;one&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;system&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;have&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to make trade-offs&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;between the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;logical format&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;modelled&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;data&lt;/span&gt;, present in the data model&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the physical format&lt;/span&gt;, easy to maintain &lt;span class=&quot;hps&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;oriented &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;to an efficient access&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;Entity Framework&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;enables&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;developers to work&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with data&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in the form of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;domain-specific&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;objects&lt;/span&gt;, as &lt;span class=&quot;hps&quot;&gt;modelled in the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;data &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;abstract model&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;without worrying about&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the tables&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of the database&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;where they&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;are stored.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;With &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;Entity Framework&lt;/span&gt;, developers can &lt;span class=&quot;hps&quot;&gt;work at an &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;abstraction&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;level &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;higher than&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;when they have to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;deal directly&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with the data,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and can create&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and maintain&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;data&lt;/span&gt;-driven applications &lt;span class=&quot;hps&quot;&gt;with less code&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;than&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with traditional applications&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;As &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;Entity&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Framework is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;component&lt;/span&gt; of the .&lt;span class=&quot;hps&quot;&gt;NET&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Framework&lt;/span&gt;, applications &lt;span class=&quot;hps&quot;&gt;that use&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Framework can&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;run on any&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;computer that has .&lt;/span&gt;Net framework &lt;span class=&quot;hps&quot;&gt;version 3.5&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;SP1&lt;/span&gt; or &lt;span class=&quot;hps&quot;&gt;above&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;installed&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;In the &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;next article&lt;/a&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;we will see&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;small example of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;how to use &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;ADO.Net&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Entity Framework.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other related articles:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-1.html&quot;&gt;Start using .Net Entity Framework - 1&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;a href=&quot;http://practicalsw.blogspot.com/2011/12/start-using-net-entity-framework-2.html&quot;&gt;Start using .Net Entity Framework - 2&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/2399411978298716451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2399411978298716451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/2399411978298716451'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2011/12/adonet-entity-framework.html' title='ADO.Net Entity Framework'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7734915230263166891.post-6833901115863322631</id><published>2011-12-28T21:36:00.004+00:00</published><updated>2011-12-29T15:26:19.166+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Joomla"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>How to install an extension in Joomla (1.7)</title><content type='html'>&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is very good.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;It takes&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;only the original features&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to make&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;complete websites&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with a &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;professional &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;look&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;But&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;after some&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the need&lt;/span&gt; to &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;include something that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is not possible with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the original modules&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;arises&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;So&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;you need to install&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;an&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;extension in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla.&lt;/span&gt; Y&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;ou can search &lt;span class=&quot;hps&quot;&gt;and find various&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;extensions&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;for Joomla i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;n&lt;/span&gt; &lt;a href=&quot;http://extensions.joomla.org/&quot;&gt;&lt;span class=&quot;hps&quot;&gt;http://extensions.joomla.org/&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;hps&quot;&gt;or&lt;/span&gt; &lt;a href=&quot;http://developer.joomla.org/&quot;&gt;&lt;span class=&quot;hps&quot;&gt;http://developer.Joomla.org&lt;/span&gt;&lt;/a&gt;, amongst &lt;span class=&quot;hps&quot;&gt;other sites&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;There are five&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;main&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;extension &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;types in&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt;: Components, &lt;span class=&quot;hps&quot;&gt;Modules&lt;/span&gt;, Plugins, Templates, &lt;span class=&quot;hps&quot;&gt;and Languages&lt;/span&gt;​​. &lt;span class=&quot;hps&quot;&gt;Each type&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;deals with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;specific functionality&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(see&lt;/span&gt;&lt;/span&gt; &lt;a href=&quot;http://docs.joomla.org/Extension_types_%28general_definitions%29&quot;&gt;http://docs.joomla.org/Extension_types_(general_definitions)&lt;/a&gt;).&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Other&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;possible&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;extensions are &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;File&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;and &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Library&lt;/span&gt;. &lt;span class=&quot;hps&quot;&gt;Libraries&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;are code packages&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that provide&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;functionality&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to&lt;/span&gt; the &lt;span class=&quot;hps&quot;&gt;Joomla&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;framework&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;its extensions.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Components are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;content elements&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;or mini-&lt;/span&gt;applications, usually &lt;span class=&quot;hps&quot;&gt;to include&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in the center of the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;main content area&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;template.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;A component&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;usually has&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;two parts: the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;part of the site&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the part of the administrator.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;A component&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;forms the major&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;part of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;page&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;because every&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;component&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is guided by&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;menu item&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and every&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;menu item&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;runs&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;component.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Some of the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;core functionality of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is based on components&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;eg: &lt;span class=&quot;hps&quot;&gt;Banners,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Contact,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;News&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Feeds&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;Polls&lt;/span&gt;, ...).&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;The modules are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;lightweight&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;extensions&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;that extend the capabilities&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with new functionality&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Modules are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;small&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;content items that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;can be displayed&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;anywhere&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;allowed&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;by the template.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;They are usually&lt;/span&gt; the &lt;span class=&quot;hps&quot;&gt;boxes&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;arranged&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;around&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;component (&lt;/span&gt;eg, the &lt;span class=&quot;hps&quot;&gt;login module&lt;/span&gt;). &lt;span class=&quot;hps&quot;&gt;The&lt;/span&gt; page &lt;span class=&quot;hps&quot;&gt;bottom&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(footer&lt;/span&gt;) is &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;module.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Modules are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;assigned&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;per&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;menu item&lt;/span&gt;, so you can &lt;span class=&quot;hps&quot;&gt;decide which&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;menu&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;item&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;should appear&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;module.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Some modules&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;are connected&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to components&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;such as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the module&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&quot;latest&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;news&quot;&lt;/span&gt;&lt;span class=&quot;&quot;&gt;, which is connected&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to the component&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;com_content&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and shows&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;links to the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;most recent&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;content items&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Some&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;modules that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;originally come&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;with Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;are:&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Main&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Menu&lt;/span&gt;, Top &lt;span class=&quot;hps&quot;&gt;menu,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Template&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Chooser,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Polls&lt;/span&gt;, &lt;span class=&quot;hps&quot;&gt;Newsflash,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Plugins are advanced extensions. &lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Essentially they are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;event handlers.&lt;/span&gt; P&lt;span class=&quot;hps&quot;&gt;lugins are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;registered&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to deal with&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;some event&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;triggered&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;when using the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla site.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;When an event is&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;triggered,&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;sees if it has&lt;/span&gt; a &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;plugin&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;to handle&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;this event&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and, if so&lt;/span&gt;, executes it. &lt;span class=&quot;hps&quot;&gt;In the early days&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of Joomla, &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;plugins&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;were known as&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;mambots&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;A&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;template is the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;basic design of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;website&lt;/span&gt;. It allows you to c&lt;span class=&quot;hps&quot;&gt;hange the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;look &amp;amp;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;feel of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;website. T&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;emplates have&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;certain&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;fields where&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;components&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(only&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;one&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;field)&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and modules&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;(several&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;fields)&lt;/span&gt;&lt;span class=&quot;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;are shown&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;Languages ​​are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;basic&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;extensions&lt;/span&gt; that are &lt;span class=&quot;hps&quot;&gt;available as a&lt;/span&gt;n &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;extension&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt; &lt;span class=&quot;hps&quot;&gt;package&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;or as a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;core&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;package&lt;/span&gt;, which &lt;span class=&quot;hps&quot;&gt;basically consists of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;files&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;key/value pairs&lt;/span&gt; providing &lt;span class=&quot;hps&quot;&gt;the translation&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;of Joomla&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;static text&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;in another language.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;These&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;language&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;packages&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;affect the&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;main site (&lt;/span&gt;front end) &lt;span class=&quot;hps&quot;&gt;and the&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;administrator&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;site&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;(back end&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt; &lt;span class=&quot;hps&quot;&gt;Modules&lt;/span&gt;, plugins, templates and &lt;span class=&quot;hps&quot;&gt;language packages&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;are easily&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;installed in the&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hps atn&quot;&gt;administrator site (&lt;/span&gt;backend), &lt;span class=&quot;hps&quot;&gt;going to the menu&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Site -&lt;/span&gt;&amp;gt; Control &lt;span class=&quot;hps&quot;&gt;Panel -&lt;/span&gt;&amp;gt; &lt;span class=&quot;hps&quot;&gt;Extension Manager&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-2JC6HrNGQG4/TqqwF0m3Z_I/AAAAAAAAAAg/5o4itktvVsc/s1600/Joomla-extensionmanager-install.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;http://3.bp.blogspot.com/-2JC6HrNGQG4/TqqwF0m3Z_I/AAAAAAAAAAg/5o4itktvVsc/s320/Joomla-extensionmanager-install.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There, it is possible to select the package file (.zip) and click in “Upload &amp;amp; Install”, or opt by one of the alternative solutions.&lt;br /&gt;
&lt;br /&gt;
After installing the extension, you need to configure it so that it appears in the correct place in the website.</content><link rel='replies' type='application/atom+xml' href='http://practicalsw.blogspot.com/feeds/6833901115863322631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://practicalsw.blogspot.com/2011/12/how-to-install-extension-in-joomla-17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6833901115863322631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7734915230263166891/posts/default/6833901115863322631'/><link rel='alternate' type='text/html' href='http://practicalsw.blogspot.com/2011/12/how-to-install-extension-in-joomla-17.html' title='How to install an extension in Joomla (1.7)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-2JC6HrNGQG4/TqqwF0m3Z_I/AAAAAAAAAAg/5o4itktvVsc/s72-c/Joomla-extensionmanager-install.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>