<?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>Raima</title>
	<atom:link href="http://www.raima.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.raima.com</link>
	<description>Collect, Store, Manage &#38; Move Data</description>
	<lastBuildDate>Sun, 20 May 2012 20:21:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Raima Data Management Solutions &amp; General Architecture &#124; Video Overview</title>
		<link>http://www.raima.com/rdm11-0-database-manager-video/</link>
		<comments>http://www.raima.com/rdm11-0-database-manager-video/#comments</comments>
		<pubDate>Wed, 09 May 2012 10:45:10 +0000</pubDate>
		<dc:creator>Jason Flores</dc:creator>
				<category><![CDATA[RDM Embedded]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://www.raima.com/?p=7337</guid>
		<description><![CDATA[This video overview covers every aspect of RDM 11.0 including in-memory database support, multi-core capabilities, mirroring, replication, hash indexing, etc. <a class="read_more" href="http://www.raima.com/rdm11-0-database-manager-video/"><span class="meta-nav">Learn More... </span></a>]]></description>
			<content:encoded><![CDATA[<h2>Introducing the release of <a href="/products/product-comparison/" title="View RDM 11.0 Products">RDM 11.0</a>. Our database manager offers developers a powerful variety of programming tools, more supported platforms and increased performance.</h2>
<div id="ev" class="embed_video">
<iframe width="630" height="390" src="http://www.youtube.com/embed/_7q6XFCAGMM?wmode=transparent" frameborder="0" allowfullscreen></iframe>
</div>
<p><a href="/developer-tools/download-table/" title="Evaluation Download | RDM 11.0">Evaluation Download &#8211; RDM 11.0</a><br />
<a href="/wp-content/uploads/RDM-11-Technical-Whitepaper.pdf" title="View RDM 11's General Architecture">RDM 11.0  Architecture and Features PDF</a></p>
<h3>Raima Database Manager Overview &#8211; Video Transcript</h3>
<p>In today&#8217;s world, massive amounts of data are being generated from so many different sources and applications require a database that is capable of collecting these large volumes of information&#8230;<br />
Storing that data reliably&#8230;<br />
Providing intuitive methods for managing and navigating through the information quickly&#8230;</p>
<p>And finally, being able to then move that data in near real-time so that the most up-to-date and relevant data ultimately ends up available to any device, computer system or corporate enterprise that must have immediate access to that information so that proper decisions and actions can be taken. </p>
<p>The Raima Database Manager Solutions, known as &#8220;RDM&#8221;, introduces a new and innovative way of managing data in the every evolving world of software systems.</p>
<p>RDM provides software developers a wide variety of powerful programming tools and customizable building blocks so that developers are assured to be well-equipped to solve the most complex data management challenges facing them today.</p>
<p>I want to take this opportunity to introduce you to the RDM System and briefly walk you through the general architecture.  </p>
<h3>RDM System</h3>
<p>The RDM System provides data management solutions in 4 key application verticals&#8230;</p>
<ul>
<li><strong>Mobile</strong> Raima offers packages targeted at <a href="/products/rdm-mobile/" title="RDM Mobile Specifications">Mobile applications</a> for those that are developing software programs for smart phone or tablet devices.</li>
<li><strong>Embedded</strong> We provide packages aimed at <a href="/products/rdm-embedded/" title="RDM Embedded Specifications">Embedded applications</a> for companies building solutions to run on real-time operating systems commonly found in industrial automation controllers, telecom routers &#038; switches, mission critical aerospace &#038; defense system and more.</li>
<li><strong>Desktop &#038; Server</strong> We also have packages for those developing applications for <a href="/products/rdm-workgroup/" title="RDM Workgroup Specifications">Desktop &#038; Server</a> environments such as business automation solutions, backup systems, security applications and a number of others.</li>
<li><strong>Enterprise Lite</strong> And finally, we have solutions architected to solve the needs of developers designing applications with <a href="/products/rdm-server/" title="RDM Server Specifications">Enterprise Lite</a> requirements such as Business Intelligent solutions, Network Management systems, Cloud computing applications and more.</li>
</ul>
<p>First let&#8217;s look at the general architecture and components of the core RDM database engine</p>
<h3>Comprehensive API&#8217;s</h3>
<p>RDM provides a comprehensive low-level C API for ultimate control while also providing a C++ API for object-oriented programing.  With the mobile package, an Objective C API is provided to enable seamless development on the iOS platform.  RDM also supports a powerful industry standard <a href="/sql-create-database/" title="How to Create a SQL Database with RDM">SQL API</a>. </p>
<h3>Interoperability</h3>
<p>While RDM was originally designed with low-level programmers in mind, in today&#8217;s environment it is important to provide seamless interoperability with other systems and tools through standard interfaces.  RDM meets this need by providing standard ODBC, <a href="/jdbc-tutorial/" title="JDBC Hello World Tutorial">JDBC</a> and ADO.Net Drivers.</p>
<h3>Extreme Performance</h3>
<p>RDM provides dual database modeling capabilities…</p>
<p>RDM supports the industry standard relational model while providing the option to program in the <a href="/network-model-vs-relational-model/" title="Performance of the Network Model">network or hierarchical model</a> which eliminates the need to manage and balance a relational index.  This reduces overhead, limits disk I/O and keeps performance of the application much more consistent &#8211; even when the size of the database grows exponentially.  RDM also supports a hybrid of the two, giving developers ultimate flexibility on how they model their database to meet the most stringent performance demands. </p>
<p>What&#8217;s more, RDM provides both b-tree and hash indexing for even more performance tuning flexibility.</p>
<h3>Multicore Scalability</h3>
<p>The latest architecture of RDM has gone through an extensive re-architecting effort carefully splitting up the runtime engine and its transaction system to take full advantage of today&#8217;s, and future, <a href="/rdm-embedded-distributed-architecture/" title="Video | Maximizing Database Performance on Multi-disk &#038; Multi-core Hardware">multi-core architectures</a> resulting in greater performance and scalability.</p>
<h3>In-Memory and Persistent Hybrid</h3>
<p>RDM can be configured to run completely <a href="/in-memory-database/" title="View In-Memory Specifications">in-memory</a>, on-disk, or a hybrid of the two where the application designer places part of the implementation in-memory and the other on-disk in a single system.  This enables additional performance gains while at the same allowing you to persist your most critical data.</p>
<h3>Multi-Versioning Concurrency Control (MVCC)</h3>
<p>The MVCC support in RDM allows a database reader at any time to have access to a consistent view of the database while a database writer simultaneously changes its state.  This means readers no longer interfere with writers removing deadlocks and scaling performance dramatically. </p>
<h3>MicroHTTP Server</h3>
<p>RDM&#8217;s lightweight MicroHTTP Server enables the developer to set up the application to monitor the activity taking place within multiple Raima databases deployed throughout various geographical locations from one central location through a web browser.  It can be designed in such a way that you can have a graphical display of your data and watch the changes in near real-time.  </p>
<p>What&#8217;s more, you can also update, delete or invoke changes to those databases from your central command center.  </p>
<h3>Replication</h3>
<p>RDM provides replication technology enabling near real-time movement of information, collected on any Raima-based application, to any other device, computer system or corporate enterprise that must have immediate access to that information so that proper decisions and actions can be taken.</p>
<h3>High-Availability</h3>
<p>RDM provides mirroring functionality, a key building block for implementing a fault-tolerant 24&#215;7 fail-over system when downtime is not an option.  With partner products we are able to further enhance the capabilities of this <a href="/rdme-high-availability-database/" title="View High-Availability Features">high-availability</a> offering.</p>
<h3>Distributed &#038; Data Partitioning</h3>
<p>RDM offers the components needed to develop complex distributed applications and allows any application to connect to one or more databases and query them as if they were one.  With this distributed functionality there are also methods that allow you to partition your data.</p>
<h3>Conclusion:</h3>
<p>Thanks for allowing me a moment of your time to introduce you to <a href="/products/" title="Compare RDM 11.0 Products">Raima&#8217;s Database Management System</a>.  As you look into your roadmap for current or future development initiatives, we hope you will consider the value RDM can bring to your overall project.  </p>
<p>We encourage you to visit us at www.raima.com to learn more about our company and data management solutions.  There you can download a <a href="/developer-tools/download-table/" title="RDM Evaluation Download">free copy of RDM</a> to start to get familiar with what the database has to offer.</p>
<p>We believe you will find RDM to be an extremely powerful data management system for your next <a href="/database-specialists/aerospace-and-defense/" title="View our Customers' Software Development Projects">software development project</a>.</p>
<p><a href="/developer-tools/videos-and-webinars/" title="Videos and Webinars">View More videos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.raima.com/rdm11-0-database-manager-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn JDBC in 10 minutes</title>
		<link>http://www.raima.com/jdbc-tutorial/</link>
		<comments>http://www.raima.com/jdbc-tutorial/#comments</comments>
		<pubDate>Wed, 09 May 2012 10:30:09 +0000</pubDate>
		<dc:creator>Kevin Hooks</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.raima.com/?p=12023</guid>
		<description><![CDATA[Learn JDBC in 10 minutes and create your first JDBC application.  This comprehensive JDBC Tutorial can be used for all products, including MySQL, Oracle and RDM. <a class="read_more" href="http://www.raima.com/jdbc-tutorial/"><span class="meta-nav">Learn More... </span></a>]]></description>
			<content:encoded><![CDATA[<p>Creating a good JDBC application can be a very tough job. If you are new to JDBC, or even Java itself, this is a good place to start. Below is a guide to create your very first JDBC application using the famous Hello World! JDBC Tutorial.</p>
<h3 class="blogPostHeading">Free Badge</h3>
<p><img src="http://www.raima.com/wp-content/uploads/jdbc_badge.png" alt="" title="Complete the tutorial for this badge!" width="141" height="50" class="alignleft size-full wp-image-12542" /><br />
<strong>Complete this JDBC tutorial to receive this <a href="http://www.raima.com/jdbc-tutorial/#freeBadge">free badge</a>.</strong></p>
<h3 class="blogPostHeading">Before you Begin</h3>
<p>There are a few things you should make sure you understand/obtain before you begin. Take a look below:</p>
<ul>
<li>Basic understanding of object oriented programming fundamentals.</li>
<li>Limited Database knowledge including SQL Syntax.</li>
<li><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html" title="Download Official Java Development Kit">JDK 1.6</a> or greater installed and ready to go.</li>
<li>A text editor.</li>
<li>A JDBC Database Driver contained in products such as <a href="http://dev.mysql.com/downloads/connector/j/" title="Download the MySQL JDBC Driver">MySQL</a>, <a href="http://jdbc.postgresql.org/download.html" title="Download the PostgreSQL JDBC Driver">PostgreSQL</a> or <a href="/developer-tools/download-table/?product=rdm-workgroup" title="Free trial JDBC Driver">RDM Workgroup</a></li>
</ul>
<h3 class="blogPostHeading">Steps to Creating your Application</h3>
<p>This JDBC tutorial is meant for those using a command line interface. <a href="/wp-content/uploads/supplemental_code/HelloWorldExample.java">Here is the Full .java File</a> to use during the tutorial.</p>
<h3 class="stepHeader">Step 1 <span class="stepHeaderText">Open a command line prompt</span></h3>
<p>If using a Windows operating system, click the start menu and where it says, &#8220;search for programs or files&#8221;, type cmd.   Then press return.<br />
For a Unix based system, find the application labeled &#8220;Terminal&#8221;. Open that application.</p>
<h3 class="stepHeader">Step 2 <span class="stepHeaderText">Creating your .java file</span></h3>
<p>Using your text editor, create a new .java file called <strong>HelloWorld_JDBCTutorial_main.java</strong></p>
<h3 class="stepHeader">Step 3 <span class="stepHeaderText">Creating your class</span></h3>
<p>Your class must contain the same name as the .java file you just created. Create your class exactly like the code snippet below.</p>
<div class="codingArea"><span class="mainCode">public class HelloWorld_JDBCTutorial_main {</span></div>
<p>This class is a public class because it has the ability to be accessed outside the scope of this class. In this example everything is done within this class.</p>
<h3 class="stepHeader">Step 4 <span class="stepHeaderText">Creating your main method</span></h3>
<p>The main method is the entry point for your program. For this simple example we are only using one .java file. Therefore, <strong>HelloWorld_JDBCTutorial_main {</strong> will contain the main method as shown below. For this example we will throw the outermost <strong>SQLException</strong> (The exception related to the Connection object) for simplicity.</p>
<div class="codingArea"><span class="mainCode">public static void main(String[] args) throws SQLException {</span></div>
<h3 class="stepHeader">Step 5 <span class="stepHeaderText">Creating and initializing your Connection Object</span></h3>
<p>You will need to initialize your <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html" title="Connection Class Documentation">Connection</a> object before you have access to any of the methods it contains. You will retrieve the connection object by calling a method from the DriverManager class called <strong>DriverManager.getConnection({Connection URL})</strong>. The return from this method is your Connection object. </p>
<p>It is good practice to start a new try block for every object that you initialize. When you are done with the object, simply add a finally block that performs the corresponding <strong>close()</strong> method, and the outermost block will contain your catch block to handle all possible SQLExceptions. This will be easier to see with the full code.</p>
<p><strong>*Note:</strong> The URL will change depending on the Driver you are using, in this case, the RDM JDBC driver is being used. The comments are specific to this driver.</p>
<div class="codingArea"><span class="commentCode">// Note that you can use TCP/IP by using this URL<br />
// &#8220;jdbc:raima:rdm://localhost&#8221;<br />
// The rdmsqlserver must be running to use TCP/IP</span><br />
<span class="mainCode">Connection Conn = DriverManager.getConnection(&#8220;jdbc:raima:rdm://local&#8221;);<br />
try {<br />
&#8230;</span></div>
<h3 class="stepHeader">Step 6 <span class="stepHeaderText">Creating your Statement Object</span></h3>
<p>The newly created <strong>Connection object Conn</strong> has a method in it called <strong>createStatement()</strong> that will return a <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html" title="Statement Class Documentation">Statement</a> object. You will then use with this Connection to the database.</p>
<div class="codingArea"><span class="commentCode">/* Creates the Statement object to be used for future SQL Statement executions */</span><br />
<span class="mainCode">Statement Stmt = Conn.createStatement();<br />
try {<br />
&#8230;</span></div>
<h3 class="stepHeader">Step 7 <span class="stepHeaderText">Execute Statements with your newly created Statement Object</span></h3>
<p>Using the <strong>Statement object Stmt</strong> you just created <strong>(Stmt)</strong> you can execute several different methods depending on the type of statement you want to execute. For example, if you would like to execute a statement such as <strong>&#8220;OPEN database_name&#8221;</strong> or <strong>&#8220;DELETE * FROM table_name&#8221;</strong> you would perform a <strong>Statement.execute()</strong> method. You can see <strong>execute()</strong> used in the code snippet below. In this example we will create the database programmatically, and we want it to be self contained (if it is run twice the database will be deleted before being created again). <a href="#step9" title="Skip to Step 9">See step 9</a> for committing changes.</p>
<p><strong>*Note:</strong> This database is created programatically. There are tools out there to create your database separate from your program. View a quick <a href="/sql-create-database/">&#8220;How to Create a SQL Database&#8221;</a> tutorial on how to do this.</p>
<div class="codingArea"><span class="mainCode"><br />
try { </span> <span class="commentCode"> //Since the database is created here, it cannot be created twice</span><br />
<span class="mainCode">    Stmt.execute(&#8220;DROP DATABASE hello_db&#8221;);<br />
} catch (SQLException exception) {}<br />
Stmt.execute(&#8220;CREATE DATABASE hello_db&#8221;);<br />
Stmt.execute(&#8220;CREATE TABLE hello_table (f00 char(31))&#8221;);<br />
Conn.commit();<br />
&#8230;</span></div>
<h3 class="stepHeader">Step 8 <span class="stepHeaderText">Creating a Prepared Statement Object and using it in your program</span></h3>
<p>A good way to insert data into your database is to use a <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html" title="Prepared Statement Documentation">Prepared Statement</a>. This statement will be prepared at compile time and have numerous other advantages. The main advantage being that you can dynamically tell the program what data values you would like to insert into your database. This is done using setter and getter methods from the <strong>Prepared Statement object</strong>. A setter method is a method that is used to set a specific field or in this case a parameter to a given value. You will be able to see this used below. A getter method is used to retrieve a field or value, but we are not going to be using that here.</p>
<div class="codingArea"><span class="mainCode">PreparedStatement PrepStmt = Conn.prepareStatement(&#8220;INSERT INTO hello_table (f00) VALUES (?)&#8221;);<br />
try {  <span class="commentCode">//Sets parameter value to a string</span><br />
<span class="mainCode">    PrepStmt.setString(1, &#8220;Hello World!&#8221;);</span><br />
<span class="mainCode">    PrepStmt.execute();<br />
&#8230;</span></div>
<p>What is happening here is that you first create the Object and it contains your <strong>Prepared SQL Statement</strong> inside of it. In this example the Statement is an insert statement that inserts into the table at a single row with an unknown value (?). By performing the next <strong>prepStmt.setString(1, &#8220;Hello World!&#8221;)</strong>, you are setting this parameter to the value &#8220;Hello World!&#8221;. When the <strong>prepStmt.execute()</strong> is called, that string is inserted into the database.</p>
<h3 class="stepHeader" id="step9">Step 9 <span class="stepHeaderText">Committing Changes</span></h3>
<p>In order to have your changes finalized in the database you must perform a commit. In JDBC this is done through a method using the <strong>Connection object</strong>. The method we will be using is <strong><a href="http://docs.raima.com/rdm/Content/JAVARM/Connection/Method/commit.htm">Connection.commit()</a></strong> and that will finalize any changes you made during a transaction.</p>
<div class="codingArea"><span class="mainCode">&#8230;<br />
Conn.commit();</span> <span class="commentCode">//Commits all changes</span><br />
<span>&#8230;</span></div>
<h3 class="stepHeader">Step 10 <span class="stepHeaderText">Creating your Result Set Object (retrieving data from the database)</span></h3>
<p>In JDBC, when you want to retrieve data from the database, you perform a SQL Select Statement using your <strong>Statement object </strong>with an execute method that returns a <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html" title="Result Set Object Documentation">Result Set object</a>. This method is called <strong><a href="http://docs.raima.com/rdm/Content/JAVARM/Statement/Method/executeQuery.htm">Statement.executeQuery()</a></strong>. This means it will execute the specified Query and return the Query results in the given Result Set.</p>
<div class="codingArea"><span class="mainCode">ResultSet RS = Stmt.executeQuery(&#8220;SELECT * FROM hello_table&#8221;);<br />
try {<br />
&#8230;</span></div>
<h3 class="stepHeader">Step 11 <span class="stepHeaderText">Accessing the Result Set</span></h3>
<p>In order to access every piece of data in your <strong>Result Set</strong>, you must iterate through it. A method is provided within the <strong>Result Set</strong> to check if the next result in the <strong>Result Set</strong> is <strong>NULL</strong>, meaning no more data. If the method <strong>ResultSet.next()</strong> returns <strong>TRUE</strong> then there is data in the database and you can retrieve it from your result set. </p>
<p>To access the data inside the Result Set you must perform a getter method, similar to the setter method you performed above. There are numerous getter methods available to retrieve the specific data type from the Result Set. In this example we want a string, therefore we use the ResultSet.getString() method, with the parameter being the column you are retrieving from. </p>
<p>Take a look at the code below to see an example of how this can be done.</p>
<div class="codingArea"><span class="mainCode">while(rs.next() != false)<br />
{<br />
System.out.println(RS.getString(1));<br />
}</span></div>
<h3 class="stepHeader">Step 12 <span class="stepHeaderText">Deallocating Resources</span></h3>
<p>Here you will deallocate all of the resources you used above. In this case your resources are each object that you used above, being your <strong>Connection object, Statement, Prepared Statement and Result Set objects</strong>. For each nested <strong>try block</strong> you will have a <strong>finally block</strong>, which performs the corresponding <strong>close</strong> method. In this example we dropped the database to clean up resources and keep the program self contained. This would normally not be necessary. Look at the code snippet below.</p>
<div class="codingArea"><span class="mainCode">} finally {<br />
           RS.close();<br />
        }<br />
    } finally {<br />
        Stmt.execute(&#8220;DROP DATABASE hello_db&#8221;);<br />
        PrepStmt.close();<br />
    }<br />
} finally {<br />
    Stmt.close();<br />
}</span></div>
<h3 class="stepHeader">Step 13 <span class="stepHeaderText">Final Catch and Finally block</span></h3>
<p>The very last block contains both a <strong>catch block</strong> and a <strong>finally block</strong>. The <strong>catch block</strong> determines what to do if an exception was thrown in the code above. In this case just displaying the exception to standard out is sufficient. The <strong>finally block</strong> will be executed regardless of an exception being thrown. Here we will deallocate our <strong>Connection object</strong>. In this example, if your <strong>Connection object</strong> does throw an exception for some reason, it is &#8220;thrown&#8221; out of the method. In a normal situation you could either add another <strong>try catch block</strong>, or declare this program as a separate method and handle it elsewhere.</p>
<div class="codingArea"><span class="mainCode">&#8230;<br />
} catch (SQLException exception) {<br />
    System.err.println(&#8220;SQLException : &#8221; + exception.toString());<br />
} finally {<br />
    Conn.close();<br />
}<br />
&#8230;</span></div>
<h3 class="stepHeader">Step 14 <span class="stepHeaderText">Compiling your application</span></h3>
<p>If your <strong>JDK</strong> is installed correctly you should have access to the Java Compiler, called <strong>javac</strong>. In order to have your program successfully compile, you must first set your <strong>CLASSPATH</strong> to contain all of your class files, including .jar files that you are using. Since the JDBC driver is usually a .jar file you will need to include this in your <strong>CLASSPATH</strong>. If you are using command line you will perform operations similar to this:</p>
<p>Linux: CLASSPATH=$CLASSPATH;{Current working directory};{Direct Path to .jar file}</p>
<div class="commandLineArea">CLASSPATH=$CLASSPATH;/home/users/kevin/workspace/;/home/users/kevin/workspace/rdmjdbc11.jar</div>
<p><strong>*Note:</strong> ./ can be used to signify current working directory</p>
<p>Windows: set CLASSPATH=%CLASSPATH%:{Current working directory}:{Direct path to .jar file}</p>
<div class="commandLineArea">set CLASSPATH=%CLASSPATH%:C:\users\kevin\workspace:C:\users\kevin\workspace\rdmjdbc11.jar</div>
<p>After you have set up your <strong>CLASSPATH</strong> you should be ready to compile. In order to do this you must use the <strong>javac compiler</strong>. On all platforms the compile will be the same. The format looks like this:<br />
javac {main_class.java (entry point to program)}</p>
<p>In this case you would type:</p>
<div class="commandLineArea">javac HelloWorld_JDBCTutorial_main.java</div>
<p>You should see no warnings, and after completion a .class file will have been generated. You directory should contain:</p>
<div class="commandLineArea">HelloWorld_JDBCTutorial_main.java<br />
HelloWorld_JDBCTutorial_main.class</div>
<h3 class="stepHeader">Step 15 <span class="stepHeaderText">Running the program</span></h3>
<p>Running the program is as simple as typing &#8220;java {executable name}&#8221;. In this case you would have <strong>&#8220;java HelloWorld_JDBCTutorial_main&#8221;</strong> as that is the entry point to your program. If everything works as expected you should see this displayed on your screen:</p>
<p><img src="http://www.raima.com/wp-content/uploads/HelloWorld_JDBC_Tutorial_Printout.jpg" alt="JDBC Tutorial &quot;Hello World!&quot; Printout" title="&quot;Hello World!&quot; Printout" width="572" height="110" class="aligncenter size-full wp-image-12145" /></p>
<p><a href="/wp-content/uploads/supplemental_code/HelloWorldExample.java">Here is the Full .java File</a> to compare to your own.</p>
<h3 class="stepHeader" id="freeBadge">Done! &nbsp;&nbsp;<span class="stepHeaderText">Get Your Free Badge Below</span></h3>
<p>Congratulations! You have just finished your first JDBC application. This specific JDBC Tutorial is very simple, and your future endeavors may prove to be much more difficult.</p>
<p><img src="http://www.raima.com/wp-content/uploads/jdbc_badge.png" alt="" title="Get this Badge! --&gt;" width="141" height="50" class="alignleft size-full wp-image-12542" /></p>
<p>Copy and paste this snippet onto your website or blog.<br />
<textarea class="embedBadge" onclick="javascript:select();"><a href="http://www.raima.com/jdbc-tutorial/" title="I am a JDBC Master" style="background:url('http://www.raima.com/wp-content/uploads/jdbc_badge.png');height:50px;width:141px;display:block"></a></textarea></p>
]]></content:encoded>
			<wfw:commentRss>http://www.raima.com/jdbc-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Create a SQL Database with RDM</title>
		<link>http://www.raima.com/sql-create-database/</link>
		<comments>http://www.raima.com/sql-create-database/#comments</comments>
		<pubDate>Tue, 01 May 2012 06:31:40 +0000</pubDate>
		<dc:creator>Kevin Hooks</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql database]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.raima.com/?p=11966</guid>
		<description><![CDATA[This tutorial shows you how to initialize a database using RDM Workgroup 11. <a class="read_more" href="http://www.raima.com/sql-create-database/"><span class="meta-nav">Learn More... </span></a>]]></description>
			<content:encoded><![CDATA[<p>Every database management system has their way of creating a database. This <strong>5 minute</strong> tutorial is aimed at initializing a database using <a title="View RDM Workgroup" href="/products/rdm-workgroup/">RDM Workgroup 11</a>. This tutorial covers using the rdmsql tool to create a database via importing a .sdl file and executing SQL Statements directly<br />
through the command line tool.</p>
<p>If you do not have the SDK for RDM, you can download the <a title="Evaluation Download" href="/developer-tools/download-table/?product=rdm-workgroup">trial version here</a>.</p>
<h3 class="blogPostHeading">Creating a database via importing a .sdl file</h3>
<p>This section will show you how to define and create a .sdl file. You will then use the RDM tool rdmsql to import the file and execute the statements, in return creating the database. </p>
<h3 class="redHeading">Structure a .sdl File</h3>
<p>Inside of an .sdl file, you will define a series of SQL Statements, such as the SQL CREATE DATABASE statement, to execute to define and create your database including the tables and rows. The format will look similar to this.</p>
<div class="codingArea"><span class="commentCode">/* First SQL Statement (SQL CREATE DATABASE Statement) */</span><br />
<span class="mainCode">CREATE DATABASE hello_worldJDBC;</span><br />
<span class="commentCode">/* Second SQL Statement (SQL CREATE TABLE Statement) */</span><br />
<span class="mainCode">CREATE TABLE hello_table<br />
(<br />
F00 char(31)<br />
);</span></div>
<p>Taking a look at the above SQL Statements, you can see that it starts by creating a database with the SQL Statement format &#8220;CREATE DATABASE {database_name}&#8221;. The next statement creates the table &#8220;hello_table&#8221; with f00 being the only row in the table. Be sure to save the file, then proceed to the next step.</p>
<h3 class="redHeading">Compile a .sdl File</h3>
<p>Raima Database Manager has a tool for executing SQL statements, which is exactly what the file above is doing. It is executing the required statements to create a simple database. The name of this tool is rdmsql. You will be using this tool through command line operations, which will be the same regardless of what platform you are on.</p>
<p><strong>Step 1)</strong> Open a cmd prompt or terminal and navigate to the RDM installation directory. &#8220;<strong>/opt/Raima on linux or C:\Raima on Windows</strong>&#8220;.</p>
<p><strong>Step 2)</strong> Set up the RDM environment by running &#8220;<strong>rdm.bat</strong>&#8221; on Windows or &#8220;<strong>. ./rdm.sh</strong>&#8221; on Linux.</p>
<p><strong>Step 3)</strong> Navigate to the location of where you want your database stored.</p>
<p><strong>Step 4)</strong> Run rdmsql –b &#8220;<strong>name_sdl_file</strong>&#8220;. The –b signifies that you will be passing the arguments in through a text file.</p>
<p>Ex: <strong>rdmsql –b hello_worldJDBC.sdl</strong><br />
*Note: hello_worldJDBC.sdl can be found in the Raima Install directory under &#8220;**\RDM\11.0\GettingStarted\tutorials\HelloWorldJDBC\&#8221;<br />
This will generate all of the necessary database files under a folder call hello_worldJDBC.</p>
<p><img src="http://www.raima.com/wp-content/uploads/Kevin_Screenshot.jpg" alt="" title="SQL Screenshot" width="570" height="183" class="aligncenter size-full wp-image-12010" /></p>
<h3 class="blogPostHeading">Alternate Method: Execute SQL Statements Directly | Using the rdmsql Tool</h3>
<p>The rdmsql tool can also be used to execute SQL statements directly via the command line interface to the tool.</p>
<p>Simply run the following command on the command line to start up the tool :</p>
<div class="commandLineArea">rdmsql</div>
<p>This will bring up the interface. The interface will look like the screenshot below.</p>
<p><img src="http://www.raima.com/wp-content/uploads/screenshot1KevinBlog.jpg" alt="" title="screenshot1KevinBlog" width="571" height="158" class="aligncenter size-full wp-image-12014" /></p>
<p>Begin by creating a connection by typing this command into the tool:</p>
<div class="commandLineArea">.c 1</div>
<p>This creates connection handle 1.</p>
<h3 class="redHeading">Next, Execute your SQL Statements in order using the above statements from the .sdl as an example</h3>
<p>Type the following:</p>
<div class="commandLineArea">CREATE DATABASE hello_worldJDBC;<br />
CREATE TABLE hello_table(F00 char(31));<br />
Commit;</div>
<p>*Note: make sure to add the commit on rdmsql otherwise your database will not be created*</p>
<p>Finally quit the tool by typing &#8220;<strong>.q</strong>&#8221; and your database will be ready to go! <strong>View the screenshot below for further reference.</strong></p>
<p><img src="http://www.raima.com/wp-content/uploads/screenshot2KevinBlog.jpg" alt="" title="SQL Create Database Screenshot" width="569" height="268" class="aligncenter size-full wp-image-12009" /></p>
<p>You have now successfully initialized your database!</p>
<p>Now to <a href="/jdbc-tutorial/" title="Quick JDBC Tutorial">create your first JDBC application</a>.</p>
<h3 class="blogPostHeading">References</h3>
<p>Click the links below to view more information about SQL.<br />
<a href="http://msdn.microsoft.com/en-us/library/aa258257(v=sql.80).aspx" title="MSDN Create Database Reference" target="_blank">MSDN SQL Create Database Reference</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.raima.com/sql-create-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Truth About Database Benchmarks</title>
		<link>http://www.raima.com/database-benchmarks-truth/</link>
		<comments>http://www.raima.com/database-benchmarks-truth/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 06:00:06 +0000</pubDate>
		<dc:creator>Randy Merilatt</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.raima.com/?p=11930</guid>
		<description><![CDATA[Vendors of database management systems are able to highlight strengths and hide shortfalls.  Here is a brief guide on how to make sure that your application meets your expectations in data management. <a class="read_more" href="http://www.raima.com/database-benchmarks-truth/"><span class="meta-nav">Learn More... </span></a>]]></description>
			<content:encoded><![CDATA[<p>We at Raima are often asked to provide database benchmark results that prospective customers can use to evaluate the performance of our database systems. We, of course, have several ready-made benchmarks that we can provide.  However, just as any other database vendor, the benchmark tests that we provide highlight our strengths. After all it&#8217;s natural to want to show off what you do best. With this in mind we encourage people evaluating database solutions to utilize the following benchmark guidelines.</p>
<h3 class="blogPostHeading">The Database Benchmark Rule of Thumb</h3>
<p>The only truly meaningful benchmarks are those that are based on <strong>your own database application requirements!</strong></p>
<h3>Why?</h3>
<ul>
<li>There are no &#8220;standard&#8221; database benchmarks that mimic and stress a DBMS in the same manner that your application will. Your application is unique. The reason you are developing it is to fill a need that is not being met by an existing solution. You are looking to differentiate your product from competitors. It only follows that your database requirements are going to be unique so why would you rely on so call standard benchmarks that measure performance of features and functionality that is not even remotely relevant to what your application will do? </li>
<li>Most reputable DBMS will perform well under a group of common use cases and perform less well under other more complicated use cases. We have rarely found an application with requirements limited to just the most common use cases. Most applications are going to stress the DBMS in multiple different scenarios and under multiple different loads and conditions. It would be nice if one size “solution” fit all but this isn&#8217;t reality.</li>
<li>Benchmarks provided by a DBMS vendor usually focus on those usage scenarios that demonstrate their system&#8217;s strengths. This is why you should never rely solely on database benchmark results provided by any database vendor in deciding which DBMS is best for your application.</li>
</ul>
<h3 class="blogPostHeading">Suggested Guidelines</h3>
<ul>
<li><strong>Define</strong> those use cases that will be core to your specific application requirements. The more specific you can be the better chance that you will be able to truly represent your application&#8217;s performance requirements. If you cannot articulate your application&#8217;s requirements you should hold off on performing any benchmarking until you can. The risk of making an incorrect database selection based on irrelevant benchmarks is too high.</li>
<li><strong>Plan</strong> on making the investment to create a test database that most closely represents the one that will be needed for your resulting application. This is not cheap but it is truly a case of &#8220;pay me now or pay me later.&#8221; Designing your database while writing your application can lead to many iterations of the design and rework of your application. To avoid this it makes sense to spend the time now to create a test database to avoid costly project delays later.</li>
<li><strong>Elicit</strong> the assistance of the DBMS vendors, once you have clearly defined your database requirements and have identified the relevant use cases. They can be a valuable resource for aiding in the development of your own unique database benchmarks.
<ul>
<li>This will allow you to evaluate not only the system itself but the kind of support you can expect to receive from the DBMS vendor.</li>
<li>It also allows the vendor to show you ways to get more out of their products which you would not necessarily have discovered by doing a simple &#8220;out of the box&#8221; test.</li>
</ul>
</li>
</ul>
<p>If you follow these guidelines when analyzing <a href="/developer-tools/download-table/" title="Evaluation Download">database vendors</a>, your projects will definitely benefit. Raima welcomes the opportunity to work with you on your next project.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.raima.com/database-benchmarks-truth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing RDM Server Performance</title>
		<link>http://www.raima.com/optimizing-rdm-server-performance/</link>
		<comments>http://www.raima.com/optimizing-rdm-server-performance/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 21:30:06 +0000</pubDate>
		<dc:creator>Jason Flores</dc:creator>
				<category><![CDATA[RDM Server]]></category>
		<category><![CDATA[Whitepapers]]></category>

		<guid isPermaLink="false">http://www.raima.com/?p=11921</guid>
		<description><![CDATA[This article helps users to boost the performance of their RDM-based application. Included are suggested ways to modify the initialization parameters, achieving higher performance without having to modify your application code. <a class="read_more" href="http://www.raima.com/wp-content/uploads/Optimizing_Performance_for_RDM_Server_2012.pdf"><span class="meta-nav">Learn more... </span></a>]]></description>
			<content:encoded><![CDATA[This article helps users to boost the performance of their RDM-based application. Included are suggested ways to modify the initialization parameters, achieving higher performance without having to modify your application code. <a class="read_more" href="http://www.raima.com/wp-content/uploads/Optimizing_Performance_for_RDM_Server_2012.pdf"><span class="meta-nav">Learn more... </span></a>]]></content:encoded>
			<wfw:commentRss>http://www.raima.com/optimizing-rdm-server-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

