<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Free practice test , mock test, driving test, interview questions &#187; jdbc</title>
	<atom:link href="http://www.skill-guru.com/blog/tag/jdbc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skill-guru.com/blog</link>
	<description>Find free mock and practice test, create and sell tests</description>
	<lastBuildDate>Thu, 09 Sep 2010 03:05:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JDBC performance tuning with fetch size</title>
		<link>http://www.skill-guru.com/blog/2010/07/25/jdbc-performance-tuning-with-fetch-size/</link>
		<comments>http://www.skill-guru.com/blog/2010/07/25/jdbc-performance-tuning-with-fetch-size/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 14:46:33 +0000</pubDate>
		<dc:creator>amit</dc:creator>
				<category><![CDATA[Programming / tutorials]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[oracle 11g]]></category>

		<guid isPermaLink="false">http://www.skill-guru.com/blog/?p=2485</guid>
		<description><![CDATA[Problem: For a Oracle (backend) – Java (frontend) system, a query  returning about 500 K rows was running very slow and is taking about 45 mins.  Oracle database is hosted on server (A), has a separate application server (B), and client can access database from client machine (C), using SQLPLUS.  Query is running slow from [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Problem: </strong>For a Oracle (backend) – Java (frontend) system, a query  returning about 500 K rows was running very slow and is taking about 45 mins.  Oracle database is hosted on server (A), has a separate application server (B), and client can access database from client machine (C), using SQLPLUS.  Query is running slow from the clients machine (C) and from the java front end (B).</p>
<p><strong>Basic Checks on dbase: </strong></p>
<p>Make sure to check following with respects to the tables / database in question:</p>
<ul>
<li>Latest Database statistics exists for the tables in question.</li>
<li>Indexes</li>
<li>Degree of Parallelism at Table Level:</li>
<li>Optimizer mode</li>
</ul>
<p>Database configuration parameters  &#8211; sga_max_size,  pga_aggregate_target , memory_target, processes<span id="more-2485"></span></p>
<p><strong>Solutions tried</strong></p>
<ul>
<li>Multiple tests were performed, taken explain plan and auto trace, which showed that query is taking time in SQL Net and it has higher waits on this layer.</li>
<li>When we run query on the server hosting oracle (A) it is much faster as compare to running from the clients machine(C).</li>
<li>Use of optimizer hints and parallelism is not helping any speed-up in the query.</li>
<li>Changes in the database configuration parameters and tuning SQL Net does not help.</li>
</ul>
<p><strong>Resolution</strong></p>
<ul>
<li>From the clients machine, using SQLPLUS – Changed the “ARRAYSIZE” parameter to 5000 (from default 15) – This reduces the query time to about 1 min from 45 min.</li>
<li>For Java based front end – changed the “setdefaultrowfetch” to 5000 and query time is reduced to ~35s.</li>
</ul>
<p><strong>Understanding the issue</strong></p>
<p>JDBC drivers’ default fetch size is 10. In normal JDBC programming if you want to retrieve 100 rows, it requires 10 network round trips between your application and database server to transfer all data. Definitely this will impact your application response time. The reason is JDBC drivers are designed to fetch small number of rows from database to avoid any out of memory issues.</p>
<p><strong>Important</strong> : Do not make fetch size too big. The fetch size should be based on your JVM heap memory setting. Too large a fetch size will lead to out of memory issues on application server, esp if you are on hosted environment.</p>
<p>Here is <a href="http://www.idevelopment.info/data/Programming/java/jdbc/FetchSize.java">sample code</a> to explain fetch size implication</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skill-guru.com/blog/2010/07/25/jdbc-performance-tuning-with-fetch-size/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Output parameter not allowed as argument list prevents use of RPC.</title>
		<link>http://www.skill-guru.com/blog/2010/04/20/output-parameter-not-allowed-as-argument-list-prevents-use-of-rpc/</link>
		<comments>http://www.skill-guru.com/blog/2010/04/20/output-parameter-not-allowed-as-argument-list-prevents-use-of-rpc/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:14:44 +0000</pubDate>
		<dc:creator>sadhna</dc:creator>
				<category><![CDATA[Programming / tutorials]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.skill-guru.com/blog/?p=2096</guid>
		<description><![CDATA[While calling a stored procedure from my java class; I was getting the following  error-
java.sql.SQLException: &#8220;Output parameter not allowed as argument list prevents use of RPC.&#8221;
After doing a little research; I found that When calling a stored procedure that has output parameters, the driver has to call the procedure using a remote procedure call (RPC). [...]]]></description>
			<content:encoded><![CDATA[<p>While calling a stored procedure from my java class; I was getting the following  error-</p>
<p><strong>java.sql.SQLException: &#8220;Output parameter not allowed as argument list prevents use of RPC.&#8221;</strong></p>
<p>After doing a little research; I found that When calling a stored procedure that <span style="text-decoration: underline;">has output parameters</span>, the driver has to call the procedure using a remote procedure call (RPC). Stored procedures should be invoked using the special JDBC call escape syntax.</p>
<p>For example, {call stored_Proc1(?,?,?,?)}.</p>
<p>In this case the driver will be able to use an RPC successfully as all the parameters are represented by parameter markers (?). If however parameters are supplied as a mixture of parameter markers and literals,</p>
<p>for example {call stored_Proc1(?,’ ‘,?,0)}</p>
<p>Then the driver is unable to use an RPC and therefore cannot return output parameters. In these circumstances the driver raises the above exception and execution fails.</p>
<p>It is possible to use mixed parameter lists to call stored procedures that <span style="text-decoration: underline;">do not have output parameters</span>. In this case the driver will substitute the parameters locally and use a normal &#8220;execute procedure&#8221; SQL call; however, this mode of execution is less efficient than an RPC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skill-guru.com/blog/2010/04/20/output-parameter-not-allowed-as-argument-list-prevents-use-of-rpc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring JDBC Tutorial</title>
		<link>http://www.skill-guru.com/blog/2009/10/19/spring-jdbc-tutorial/</link>
		<comments>http://www.skill-guru.com/blog/2009/10/19/spring-jdbc-tutorial/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 14:50:59 +0000</pubDate>
		<dc:creator>smitha</dc:creator>
				<category><![CDATA[Programming / tutorials]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.skill-guru.com/blog/?p=814</guid>
		<description><![CDATA[Using Spring with JDBC is not a very common usage I have seen but sometimes you have applications with very few tables and simple CRUD operation and you do not need full fledged ORM framework like hibernate .
JDBC API provides connectivity between the database and java program. It provides support for wide range of databases [...]]]></description>
			<content:encoded><![CDATA[<p>Using Spring with JDBC is not a very common usage I have seen but sometimes you have applications with very few tables and simple CRUD operation and you do not need full fledged ORM framework like hibernate .</p>
<p>JDBC API provides connectivity between the database and java program. It provides support for wide range of databases from complex SQL – Based databases to tabular data sources like spread sheets.  With JDBC – enabled driver one can connect to database and run the queries, fetch data etc in a java program.</p>
<p>JDBC API is widely used to access db in java applications. Often hibernate and JDBC gets compared and Hibernate looks better than JDBC API. But Hibernate it has a big learning curve. People who are aware of JDBC sometime want their projects to be completed fast and might not want to switch to ORM.  In this case one can use JDBC with Spring. <span id="more-814"></span></p>
<p>Spring simplifies working in JDBC API with its JDBC abstraction framework. Many low level details of the JDBC like connection creation, specifying statements and its execution etc. are managed by this JDBC abstraction framework. It provides the <tt>JdbcTemplate</tt> class in this framework, which handles all the creation and release of resources, preparing statements, execution of the query etc. This is very useful and thus simplifies the coding and also minimizes effort and common errors in the code.</p>
<p>You can find more details about the API and usage at</p>
<p><a href="http://static.springsource.org/spring/docs/2.0.8/api/org/springframework/jdbc/core/JdbcTemplate.html" target="_self">http://static.springsource.org/spring/docs/2.0.8/api/org/springframework/jdbc/core/JdbcTemplate.html</a></p>
<p>and</p>
<p><a href="http://static.springsource.org/spring/docs/2.0.8/reference/jdbc.html" target="_self">http://static.springsource.org/spring/docs/2.0.8/reference/jdbc.html</a><tt> </tt></p>
<p>Below explained a sample project to save user contact data using Spring and JDBC. This also gives exposure to the code.  You can download the full code at the end of the article.</p>
<p>Requirements:</p>
<p>Eclipse 3.0   or  myeclipse 6.0 or above</p>
<p>Mysql Db</p>
<p>This project has following parts</p>
<ol>
<li>The Entity class. There is no mapping in the class to table like ORM. It is just a simple bean which represents a user Contact. Client communicates to server using this bean.</li>
<li>The DAO class which does the querying, save, update and deletion part for the Contact table</li>
<li>The service class which has the business logic, which intern calls DAO class for database operations.</li>
<li>The client code which calls service layer.</li>
<li>The spring configuration file application.xml</li>
</ol>
<p>Download spring from :<a onclick="pageTracker._trackPageview('/outbound/article/http://www.springsource.org/download');" href="http://www.springsource.org/download">http://www.springsource.org/download</a></p>
<p>Create following table and database in mysql db:</p>
<p>&gt; <span style="color: #0000ff;">Create database jdbctest;</span></p>
<p>&gt; <span style="color: #0000ff;">Connect jdbctest;</span></p>
<p>&gt; <span style="color: #0000ff;">Create table contact(</span></p>
<p><span style="color: #0000ff;">Id int(11) not null auto_increment,</span></p>
<p><span style="color: #0000ff;">Firstname varchar(20) not null,</span></p>
<p><span style="color: #0000ff;">Lastname varchar(20) not null,</span></p>
<p><span style="color: #0000ff;">Email varchar(100) not null,</span></p>
<p><span style="color: #0000ff;">Primary key(id));</span></p>
<p>Now create an eclipse project by name ‘JDBCtest’ and add below listed jars in your project buildpath / classpath (they can found in downloaded spring).A step by step procedure to create project in eclipse are explained <a href="http://www.skill-guru.com/blog/2009/10/04/spring-jpa-tutorial-get-hands-on-experience/" target="_self">here</a>.</p>
<p>aopalliance.jar</p>
<p>asm-2.2.3.jar</p>
<p>asm-commons-2.2.3.jar</p>
<p>asm-util-2.2.3.jar</p>
<p>aspectjrt.jar</p>
<p>aspectjweaver.jar</p>
<p>cglib-nodep-2.1_3.jar</p>
<p>commons-attributes-api.jar</p>
<p>commons-attributes-compiler.jar</p>
<p>commons-logging.jar</p>
<p>log4j-1.2.14.jar</p>
<p>ojdbc14-j2ee-1.3.jar</p>
<p>spring.jar</p>
<p>spring-mock-2.0.7.jar</p>
<p>mysql-connector-java-5.1.5-bin.jar</p>
<p><strong>The Contact  Bean</strong> :This is a simple bean with user contact information:</p>
<blockquote><p><strong>package</strong> com.test.entities;</p>
<p><strong>public</strong> <strong>class</strong> ContactEO {</p>
<p><strong>private</strong> String firstName;</p>
<p><strong>private</strong> String lastName;</p>
<p><strong>private</strong> String email;</p>
<p><strong>private</strong> Integer id;</p>
<p><strong>public</strong> String getFirstName() {</p>
<p><strong>return</strong> firstName;</p>
<p>}</p>
<p><strong>public</strong> <strong>void</strong> setFirstName(String firstName) {</p>
<p><strong>this</strong>.firstName = firstName;</p>
<p>}</p>
<p><strong>public</strong> String getLastName() {</p>
<p><strong>return</strong> lastName;</p>
<p>}</p>
<p><strong>public</strong> <strong>void</strong> setLastName(String lastName) {</p>
<p><strong>this</strong>.lastName = lastName;</p>
<p>}</p>
<p><strong>public</strong> String getEmail() {</p>
<p><strong>return</strong> email;</p>
<p>}</p>
<p><strong>public</strong> <strong>void</strong> setEmail(String email) {</p>
<p><strong>this</strong>.email = email;</p>
<p>}</p>
<p><strong>public</strong> Integer getId() {</p>
<p><strong>return</strong> id;</p>
<p>}</p>
<p><strong>public</strong> <strong>void</strong> setId(Integer id) {</p>
<p><strong>this</strong>.id = id;</p>
<p>}</p>
<p>}</p></blockquote>
<p>The DAO class is a Data access class used to do operations on Contact table like querying, saving etc.</p>
<blockquote><p>package com.test.dao;</p>
<p>import java.util.Collection;</p>
<p>import javax.sql.DataSource;</p>
<p>import org.springframework.beans.factory.annotation.Autowired;</p>
<p>import org.springframework.jdbc.core.JdbcTemplate;</p>
<p>import org.springframework.stereotype.Component;</p>
<p>import com.test.entities.ContactEO;</p>
<p>@Component</p>
<p>public class ContactDAO {</p>
<p>@Autowired</p>
<p>private JdbcTemplate jdbcTemplate;</p>
<p>public Collection&lt;ContactEO&gt; getAllRecords(){</p>
<p>return this.jdbcTemplate.query( &#8220;select id, firstname,lastname,email from &#8221; +</p>
<p>&#8220;contact&#8221;, new ContactMappingExtractor());</p>
<p>}</p>
<p>public void addUser(ContactEO contact){</p>
<p>this.jdbcTemplate.update(</p>
<p>&#8220;insert into contact (firstname, lastname, email) &#8221; +</p>
<p>&#8220;values (?,?,?)&#8221;,</p>
<p>new Object[] {contact.getFirstName(), contact.getLastName(),contact.getEmail()});</p>
<p>}</p>
<p>public void deleteUser(ContactEO contact){</p>
<p>this.jdbcTemplate.update(</p>
<p>&#8220;delete from contact where id=? &#8220;,</p>
<p>new Object[] {contact.getId()});</p>
<p>}</p>
<p>}</p></blockquote>
<p>Here the<strong> jdbcTemplate</strong> is marked as @Autowired. This means spring will initialize this property for us.<strong> </strong></p>
<p>Also the getAllRecords function uses a instance of ContactMappingExtractor() in query function. The query method on <strong>jdbcTemplate</strong> returns collection of objects. The 2<sup>nd</sup> parameter to it is called a RowMapper. RowMapper converts each row data into a bean object. Developer has to map the row into Contact Bean. To do so we need to define a class say ContactMappingExtractor which implements RowMapper interface() and define mapRow function in it. (Shown below)</p>
<blockquote><p>package com.test.dao;</p>
<p>import java.sql.ResultSet;</p>
<p>import java.sql.SQLException;</p>
<p>import org.springframework.jdbc.core.RowMapper;</p>
<p>import com.test.entities.ContactEO;</p>
<p>public class ContactMappingExtractor  implements RowMapper {</p>
<p>public Object mapRow(ResultSet rs, int rowNum) throws SQLException {</p>
<p>ContactEO contact = new ContactEO();</p>
<p>contact.setEmail(rs.getString(&#8220;email&#8221;));</p>
<p>contact.setFirstName(rs.getString(&#8220;firstname&#8221;));</p>
<p>contact.setId(rs.getInt(&#8220;id&#8221;));</p>
<p>contact.setLastName(rs.getString(&#8220;lastname&#8221;));</p>
<p>return contact;</p>
<p>}</p>
<p>}</p></blockquote>
<p>Once this id done we define service class and business methods into it which uses ContactDAO. We make ContactDAO autowired.(Spring will do the initialization for us)</p>
<p>Service class is a simple class with all business methods.</p>
<blockquote><p>@Component(&#8220;contactService&#8221;)</p>
<p><strong>public</strong> <strong>class</strong> ContactServiceImpl <strong>implements</strong> ContactService {</p>
<p>@Autowired</p>
<p>ContactDAO userDAO;</p>
<p><strong>public</strong> <strong>void</strong> registerUser(ContactEO contact) <strong>throws</strong> Exception{</p>
<p><strong>if</strong>(contact.getEmail() == <strong>null</strong>)</p>
<p><strong>throw</strong> <strong>new</strong> Exception(&#8220;Email Required!&#8221;);</p>
<p>userDAO.addUser(contact);</p>
<p>}</p>
<p><strong>public</strong> <strong>void</strong> deleteUser(ContactEO contact) <strong>throws</strong> Exception{</p>
<p><strong>if</strong>(contact.getId() == <strong>null</strong>)</p>
<p><strong>throw</strong> <strong>new</strong> Exception(&#8220;Id Required!&#8221;);</p>
<p>userDAO.deleteUser(contact);</p>
<p>}</p>
<p><strong>public</strong> List&lt;ContactEO&gt; getAllContacts(){</p>
<p>Collection&lt;ContactEO&gt; contacts =  userDAO.getAllRecords();</p>
<p>List&lt;ContactEO&gt; retList = <strong>new</strong> ArrayList&lt;ContactEO&gt;(contacts);</p>
<p><strong>return</strong> retList;</p>
<p>}</p>
<p>}</p></blockquote>
<p>Now its time to define application.xml file which looks like below:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p>
<p>&lt;beans xmlns=&#8221;http://www.springframework.org/schema/beans&#8221; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;</p>
<p>xmlns:p=&#8221;http://www.springframework.org/schema/p&#8221; xmlns:aop=&#8221;http://www.springframework.org/schema/aop&#8221;</p>
<p>xmlns:context=&#8221;http://www.springframework.org/schema/context&#8221; xmlns:jee=&#8221;http://www.springframework.org/schema/jee&#8221;</p>
<p>xmlns:tx=&#8221;http://www.springframework.org/schema/tx&#8221;</p>
<p>xsi:schemaLocation=&#8221;</p>
<p>http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</p>
<p>http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</p>
<p>http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd</p>
<p>http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd</p>
<p>http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd&#8221;&gt;</p>
<p>&lt;context:property-placeholder location=&#8221;classpath:jdbc.properties&#8221;/&gt;</p>
<p>&lt;!&#8211; Enter your database information here &#8211;&gt;</p>
<p>&lt;bean id=&#8221;dataSource&#8221; destroy-method=&#8221;close&#8221;&gt;</p>
<p>&lt;property name=&#8221;driverClassName&#8221; value=&#8221;${jdbc.driverClassName}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;url&#8221; value=&#8221;${jdbc.url}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;username&#8221; value=&#8221;${jdbc.username}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;password&#8221; value=&#8221;${jdbc.password}&#8221;/&gt;</p>
<p>&lt;/bean&gt;</p>
<p>&lt;!&#8211; Activates various annotations to be detected in bean classes for eg @Autowired&#8211;&gt;</p>
<p>&lt;context:annotation-config/&gt;</p>
<p>&lt;!&#8211; enable the configuration of transactional behavior based on annotations &#8211;&gt;</p>
<p>&lt;tx:annotation-driven transaction-manager=&#8221;txManager&#8221;/&gt;</p>
<p>&lt;!&#8211; Transactional properties applied on data source &#8211;&gt;</p>
<p>&lt;bean id=&#8221;txManager&#8221;&gt;</p>
<p>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221;/&gt;</p>
<p>&lt;/bean&gt;</p>
<p>&lt;bean id=&#8221;jdbcTemplate&#8221;</p>
<p>&gt;</p>
<p>&lt;property name=&#8221;dataSource&#8221;&gt;</p>
<p>&lt;ref bean=&#8221;dataSource&#8221; /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;/bean&gt;</p>
<p>&lt;context:component-scan base-package=&#8221;com.test.service&#8221;/&gt;</p>
<p>&lt;context:component-scan base-package=&#8221;com.test.dao&#8221;/&gt;</p>
<p>&lt;/beans&gt;</p></blockquote>
<p>(Your database settings like the connection string, drivername, db username and password etc will be read from a file jdbc.properties which is placed in the src folder)</p>
<p>Here first we initialize dataSource</p>
<blockquote><p>&lt;bean id=&#8221;dataSource&#8221; destroy-method=&#8221;close&#8221;&gt;</p>
<p>&lt;property name=&#8221;driverClassName&#8221; value=&#8221;${jdbc.driverClassName}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;url&#8221; value=&#8221;${jdbc.url}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;username&#8221; value=&#8221;${jdbc.username}&#8221;/&gt;</p>
<p>&lt;property name=&#8221;password&#8221; value=&#8221;${jdbc.password}&#8221;/&gt;</p>
<p>&lt;/bean&gt;</p></blockquote>
<p>Then we initialize the JDBC abstraction framework like below sending the datasource to it:</p>
<blockquote><p>&lt;bean id=&#8221;jdbcTemplate&#8221;</p>
<p>&gt;</p>
<p>&lt;property name=&#8221;dataSource&#8221;&gt;</p>
<p>&lt;ref bean=&#8221;dataSource&#8221; /&gt;</p>
<p>&lt;/property&gt;</p>
<p>&lt;/bean&gt;</p></blockquote>
<p>by adding :</p>
<blockquote><p>&lt;context:component-scan base-package=&#8221;com.test.service&#8221;/&gt;</p>
<p>&lt;context:component-scan base-package=&#8221;com.test.dao&#8221;/&gt;</p></blockquote>
<p>We ensure that the classes marked @Component get created when spring loads</p>
<p>by adding :</p>
<blockquote><p>&lt;context:annotation-config/&gt;</p></blockquote>
<p>we ensure that all the service and dao classes get scanned for autowired variables and they get initialized.</p>
<p>Now its time to write the client program.  First we have to get the service class object from spring. We do so by spring’s application context as below:</p>
<blockquote><p>ClassPathXmlApplicationContext appContext = <strong>new</strong> ClassPathXmlApplicationContext(<strong>new</strong> String[] {</p>
<p>&#8220;applicationContext.xml&#8221;</p>
<p>});</p>
<p>contactService = (ContactService) appContext.getBean(&#8220;contactService&#8221;);</p></blockquote>
<p>One can save a user contact by calling:</p>
<blockquote><p>contactService.registerUser(contact);</p></blockquote>
<p>To download full code for the project <a href="http://www.skill-guru.com/blog/wp-content/uploads/2009/10/SpringJDBC.zip" target="_self">click here</a>. You can also import this project into eclipse workspace.</p>
<p>You can run the client code at: com.test.client.Test class and insert, delete and query data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skill-guru.com/blog/2009/10/19/spring-jdbc-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
