<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Databases</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Databases</h1>
            <p class="xintro">
                <a href="../../images_www/v7/3/features/ide-database-full.png"><img
                        src="../../images_www/v7/3/features/ide-database-cut.png"
                        alt="Java editor features in NetBeans IDE"
                        ><br>
                    <span class="font-11">Click image for fullscreen preview</span></a> 
            </p>
            <p class="intro">
                NetBeans IDE provides drivers for the Java DB, MySQL, Oracle,
                and PostgreSQL database servers so that you can connect to
                these databases very easily. You can also register any other 
                JDBC driver with the IDE, so that you can explore 
                any database that provides a JDBC driver.
            </p>
            <div class="line">&nbsp;</div>

            <!-- left text section start -->
            <a name="o1"></a>
            <span id="im1" class="overview-right"><img src="../../images_www/v7/3/features/ide-database-explorer-cut.png" alt="Database Explorer"  /></span>
            <h2>Database Explorer</h2>
            <p>The Database Explorer lets you connect to databases
                and view their content.</p>
            <p>You can create, modify, and delete 
                tables, columns, and indices
                in your databases directly
                from the IDE.</p>
            <a href="../../kb/docs/ide/oracle-db.html" class="arr-link">
                Connecting to Oracle Database</a>
            <br/><a href="../../kb/docs/ide/java-db.html" class="arr-link">
                Connecting to JavaDB Database</a>
            <br/><a href="../../kb/docs/ide/mysql.html" class="arr-link">
                Connecting to MySQL Database</a>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <!-- right text section start -->
            <a name="o2"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/ide-database-full.png" class="cbox" title="SQL Editor"><img src="../../images_www/v7/3/features/ide-database-sql.png" width="320" alt="SQL Editor" /></a></span>
            <h2>SQL Editor</h2>
            <p>
                The SQL Editor helps you view and change
                data in your databases. You can open, edit, and run
                your SQL scripts in the SQL Editor.</p><p>The editor is richly
                featured with code completion and syntax coloring to
                help you write scripts quickly and correctly.</p>
            <p>The editor is customizable
                and you can extend it with new features via plugins.
            </p>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o3"></a>
            <span id="im1" class="overview-right"><a href="../../images_www/v7/3/features/rest-services-support.png" class="cbox" title="Create REST Web Service"><img src="../../images_www/v7/3/features/rest-services-support-cut.png" width="320" alt=""  /></a></span>
            <h2>Wizard Based Client Generation</h2>
            <p>
                Use the JSF CRUD application generator (Create/Read/Update/Delete) to create complete 
                functional JSF pages for manipulating data from a database.</p>
            <p>The "Entity Classes from Database" wizard and
                the "RESTful Web Services from Database" wizard can
                quickly generate complex applications from databases
                registered in the IDE. Similarly, you can generate a
                JavaScript frontend for a RESTful web service, so that
                databases can be exposed easily in HTML5 application.</p> 
            <p>Use the customizable HTML and 
                JSF component palettes to drag and drop HTML and JSF forms into web pages and to generate 
                JSF data tables from entities.</p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="../../community/releases/81/index.html">NetBeans IDE 8.1 Release Page</a> for a list of highlighted features in the latest stable release.</li>                
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li> 
            </ul>

        </div>
    </body>
</html>
