blob: aca080004936e1d550752842d47230c83f02577c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="author" content="troy.giunipero@sun.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="description" content="This tutorial unit introduces the IDE's interface, describes how to create a web project, and demonstrates how to set up and connect to the MySQL database server.">
<meta name="keywords" content="NetBeans, IDE, integrated development environment,
Java, Java EE, open source, web technology, e-commerce">
<link rel="stylesheet" type="text/css" href="../../../../netbeans.css">
<link rel="stylesheet" type="text/css" href="../../../../print.css" media="print">
<link rel="stylesheet" type="text/css" href="../../../../lytebox.css" media="screen">
<script type="text/javascript" src="../../../../images_www/js/lytebox-compressed.js"></script>
<title>NetBeans 电子商务教程 - 设置开发环境</title>
</head>
<body>
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<h1>NetBeans 电子商务教程 - 设置开发环境</h1>
<div style="margin-left:-3px">
<div class="feedback-box margin-around float-left" style="margin-right:15px">
<h4>教程目录</h4>
<ol>
<li><a href="intro.html">简介</a></li>
<li><a href="design.html">设计应用程序</a></li>
<li><strong>设置开发环境</strong>
<ul style="margin: 5px 0 0 -2em">
<li><a href="#create">创建 Web 项目</a></li>
<li><a href="#run">运行 Web 项目</a></li>
<li><a href="#communicate">与数据库服务器进行通信</a></li>
<li><a href="#seeAlso">另请参见</a></li>
</ul></li>
<li><a href="data-model.html">设计数据模型</a></li>
<li><a href="page-views-controller.html">准备页面视图和控制器 Servlet</a></li>
<li><a href="connect-db.html">将应用程序与数据库连接</a></li>
<li><a href="entity-session.html">添加实体类和会话 Bean</a></li>
<li><a href="manage-sessions.html">管理会话</a></li>
<li><a href="transaction.html">集成事务性业务逻辑</a></li>
<li><a href="language.html">添加语言支持</a></li>
<li><a href="security.html">保护应用程序</a></li>
<li><a href="test-profile.html">测试和性能分析</a></li>
<li><a href="conclusion.html">小结</a></li>
</ol>
</div>
</div>
<p><img alt="此页上的内容适用于 NetBeans IDE 版本 6.8 和 6.9" class="stamp" src="../../../../images_www/articles/68/netbeans-stamp-68-69.png" title="此页上的内容适用于 NetBeans IDE 版本 6.8 和 6.9"></p>
<p>以下步骤描述了如何设置开发环境。在该过程中,您将了解 IDE 的一些主要窗口,以及 IDE 如何使用 <a href="http://ant.apache.org/" target="_blank">Ant</a> 构建脚本对项目执行常见操作。在本教程单元结束时,您将创建好 Web 应用程序项目,确认可以成功构建项目,并将其部署到开发服务器,然后从 IDE 中运行该项目。</p>
<p>此外,您还学习了如何将 IDE 与 MySQL 数据库服务器相连、如何创建数据库实例,以及如何从 IDE 的 "Services"(服务)窗口连接至数据库实例。在本单元中,将创建一个名为 <code>affablebean</code> 的新数据库,该数据库将在整个教程中使用。</p>
<p>您可以查看此教程中构建的应用程序的实时演示:<a href="http://dot.netbeans.org:8080/AffableBean/" target="_blank">NetBeans 电子商务教程演示应用程序</a></p>
<br style="clear:left">
<br>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">软件或资源</th>
<th class="tblheader" scope="col">要求的版本</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td>
<td class="tbltd1">Java 包,6.8 或 6.9</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java 开发工具包 (JDK)</a></td>
<td class="tbltd1">版本 6</td>
</tr>
<tr>
<td class="tbltd1"><a href="#glassFish">GlassFish Server</a></td>
<td class="tbltd1">v3 或 Open Source Edition 3.0.1</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://dev.mysql.com/downloads/mysql/" target="_blank">MySQL 数据库服务器</a></td>
<td class="tbltd1">版本 5.1</td>
</tr>
</tbody>
</table>
<p class="notes"><strong>注:</strong></p>
<ul>
<li>NetBeans IDE 需要 Java 开发工具包 (JDK) 才能正常运行。如果不具备上面列出的任何资源,则应首先下载并安装 JDK。</li>
<li>NetBeans IDE Java 包包含在本教程中构建的应用程序所需的 Java Web 和 Java EE 技术。</li>
<li id="glassFish">NetBeans IDE Java 包还包含本教程所需的 GlassFish Server。可以<a href="https://glassfish.dev.java.net/public/downloadsindex.html" target="_blank">单独下载 GlassFish Server</a>,但是 NetBeans 下载中附带的版本具有在 IDE 中自动注册的额外好处。</li>
</ul>
<br>
<h2 id="create">创建 Web 项目</h2>
<ol>
<li>启动 NetBeans IDE。如果是首次运行 IDE,则会看到 IDE 的 "Start Page"(起始页)。 <br> <img alt="NetBeans IDE 起始页" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/ide-start-page.png" title="NetBeans IDE 起始页"></li>
<li>单击 "New Project"(新建项目)(<img alt="新建项目图标" src="../../../../images_www/articles/73/javaee/ecommerce/common/new-project-btn.png">) 按钮(Ctrl-Shift-N 组合键;在 Mac 上为 ⌘-Shift-N 组合键)以创建新的 Java Web 项目。此时,将打开新建项目向导,以指导您完成该过程。在 "Categories"(类别)下选择 "Java Web",并在 "Projects"(项目)下选择 "Web Application"(Web 应用程序)。 <br> <img alt="新建项目向导" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/new-project-wzd.png" title="使用新建项目向导创建项目" width="688px"></li>
<li>单击 "Next"(下一步)。</li>
<li>在“步骤 2:Name and Location(名称和位置)”中,将项目命名为 <code>AffableBean</code>。在此步骤中,还可以指定计算机上项目的所在位置。默认情况下,IDE 将在主目录中创建 <code>NetBeansProjects</code> 文件夹。如果要更改位置,请在 "Project Location"(项目位置)文本字段中输入相应路径。</li>
<li>单击 "Next"(下一步)。</li>
<li>在步骤 3 "Server and Settings"(服务器和设置)中,将 GlassFish v3 指定为服务器。在开发期间,项目将部署到该服务器上。由于 NetBeans 安装中已包括 GlassFish v3,因此您会看到 "GlassFish v3" 在 "Server"(服务器)下拉字段中列出。 <br><br>
<p class="tips">如果要部署到尚未在 IDE 中注册的服务器上,则可以单击 "Add"(添加)按钮,然后逐步执行添加服务器实例向导。您可以在 "Servers"(服务器)窗口(从主菜单中选择 "Tools"(工具)> "Servers"(服务器))中查看在 IDE 中注册的所有服务器。</p></li>
<li>选择 "Java EE 6 Web" 作为 Java EE 版本。<br><br> 创建的应用程序将使用各种 Java EE 6 功能,即 Servlet 标注(<a href="http://jcp.org/en/jsr/summary?id=315" target="_blank">Servlet 3.0 规范</a>中的新增内容),以及直接在 Servlet 容器中使用的 EJB(<a href="http://jcp.org/en/jsr/summary?id=318" target="_blank">EJB 3.1 规范</a>中的新增内容)。Servlet 3.0 和 EJB 3.1 都是 Java EE 6 平台的一部分,因此,您需要与 EE-6 兼容的服务器(如 GlassFish v3)才能完成本教程的学习。有关详细信息,请参见<a href="entity-session.html#specification">关于规范和实现</a></li>
<li>确保取消选中 "Enable Contexts and Dependency Injection"(启用上下文和依赖关系注入)选项。此选项是特定于上下文和依赖关系注入 (CDI) 技术的,由 <a href="http://jcp.org/en/jsr/detail?id=299" target="_blank">JSR-299</a> 指定,不在本教程中使用。有关详细信息,请参见<a href="../cdi-intro.html">上下文和依赖关系注入以及 JSF 2.0 入门指南</a><br> <img alt="新建 Web 应用程序向导的 "Step 3: Server and Settings"(步骤 3:服务器和设置)" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/new-project-wzd2.png" title="指定开发服务器、EE 版本以及是否包含 CDI 支持" width="688px"> <br><br> 请注意,默认情况下,应用程序的上下文路径是项目的名称。这是应用程序在部署到服务器之后可以访问的路径。例如,GlassFish 使用 8080 作为默认端口号,因此在开发期间,您可以通过以下路径在浏览器窗口中访问项目:
<pre class="examplecode">http://localhost:8080/AffableBean/</pre></li>
<li>单击 "Finish"(完成)。IDE 将生成名为 <code>AffableBean</code> 的框架项目,该项目遵循 <a href="http://java.sun.com/blueprints/code/projectconventions.html#99632" target="_blank">J2EE BluePrints Web 应用程序结构约定</a>。IDE 将按照其默认布局显示各种窗口。 <br> <a href="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/ide-default-layout.png" rel="lytebox" title="Java Web 项目的默认布局"> <img alt="NetBeans IDE - 默认布局" class="b-all margin-around" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/ide-default-layout.png" width="688px"></a></li>
<li>检查 IDE 的默认布局。下面简要介绍了所显示的窗口和标签:
<ul style="margin: 5px 0 0 -1.5em">
<li><strong>Editor(编辑器):</strong>编辑器(Ctrl-0 组合键;在 Mac 上为 ⌘-0 组合键)是 IDE 的中心组件,可能也是您花费时间最多的地方。编辑器可自动根据所使用的语言调整,同时提供了文档支持、代码完成以及特定于编码时采用的技术的提示和错误消息。</li>
<li><strong>"Projects"(项目)窗口:</strong>"Projects"(项目)窗口(Ctrl-1 组合键;在 Mac 上为 ⌘-1 组合键)是项目源的入口点。它提供了重要项目内容的<em>逻辑</em>视图,并根据文件功能(例如 <code>Configuration Files</code>)将其组合在一起。在 "Projects"(项目)窗口中右键单击文件节点时,可以调用对开发任务通用的操作(即 <code>Build</code><code>Clean</code><code>Deploy</code><code>Run</code>)。</li>
<li><strong>"Files"(文件)窗口:</strong>"Files"(文件)窗口(Ctrl-2 组合键;在 Mac 上为 ⌘-2 组合键)提供了基于目录的项目视图。换而言之,该窗口使您可以查看项目的结构,因为它位于计算机的文件系统中。在此窗口中,可以查看与项目有关的所有文件,包括 Ant 构建脚本 (<code>build.xml</code>),以及 IDE 处理项目所需的文件(包含在 <code>nbproject</code> 文件夹中)。如果已运行项目,则可以看到编译的 Java 文件(<code>build</code> 文件夹)的位置。如果已明确构建项目(方法是:在 "Projects"(项目)窗口中右键单击项目节点,然后从弹出式菜单中选择 "Build"(构建)或 "Clean and Build"(清理并构建)),则可以查看项目的可分发 WAR 文件(包含在 <code>dist</code> 文件夹中)。</li>
<li><strong>Navigator(导航器):</strong>"Navigator"(导航器)(Ctrl-7 组合键;在 Mac 上为 ⌘-7 组合键)提供了在编辑器中打开的文件的结构概述。例如,如果显示 HTML Web 页,则 "Navigator"(导航器)将采用与该页的文档对象模型 (DOM) 相对应的方式列出标记节点。如果在编辑器中打开 Java 类,则 "Navigator"(导航器)将显示与该类有关的属性和方法。您可以使用 "Navigator"(导航器)在编辑器内导航至相关项。例如,在 "Navigator"(导航器)中双击节点时,光标将在编辑器中直接转至该元素。</li>
<li><strong>"Tasks"(任务)窗口:</strong>"Tasks"(任务)窗口(Ctrl-6 组合键;在 Mac 上为 ⌘-6 组合键)将自动扫描代码,并列出包含编译错误、快速修复和样式警告的代码行。对于 Java 类,还列出包含 "<code>TODO</code>" 或 "<code>FIXME</code>" 等字样的注释行。</li>
<li><strong>"Services"(服务)窗口:</strong>"Services"(服务)窗口(Ctrl-5 组合键;在 Mac 上为 ⌘-5 组合键)提供了一个界面,用于管理服务器、Web 服务、数据库及其连接,以及其他与团队开发有关的服务。</li>
<li><strong>"Output"(输出)窗口:</strong><em>(未显示)</em>"Output"(输出)窗口(Ctrl-4 组合键;在 Mac 上为 ⌘-4 组合键)在调用操作(用于调用通常来自服务器等外部资源的服务)时自动显示,可以镜像服务器日志文件。对于 Web 项目,该窗口还让您可以查看与 Ant 任务(例如 <code>Build</code><code>Clean and Build</code><code>Clean</code>)有关的信息。</li>
<li><strong>Palette(组件面板):</strong><em>(未显示)</em>"Palette"(组件面板)(Ctrl-Shift-8 组合键;在 Mac 上为 ⌘-Shift-8 组合键)提供了各种可拖放至编辑器中的简便代码片段。"Palette"(组件面板)中包含很多片段,它们还可以通过在编辑器中调用代码完成来访问,如该教程后面所述。</li>
</ul>
<p class="notes"><strong>注:</strong>所有的 IDE 窗口都可以通过 "Window"(窗口)菜单项进行访问。</p>
</li>
</ol>
<h2 id="run">运行 Web 项目</h2>
<ol>
<li>运行新的 <code>AffableBean</code> 项目。为此,可在 "Projects"(项目)窗口中,右键单击项目节点,然后选择 "Run"(运行);否则,在 IDE 的主工具栏中单击 "Run Project"(运行项目)(<img alt="运行项目图标" src="../../../../images_www/articles/73/javaee/ecommerce/common/run-project-btn.png">) 按钮(F6 键;在 Mac 上为 fn-F6 组合键)。<br><br> 此时将打开一个浏览器窗口,以显示项目的欢迎页。<br> <img alt="显示在浏览器中的项目欢迎页" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/hello-world.png" title="项目会自动部署到服务器并显示在浏览器中"> <br> 那么,刚才发生了什么情况?运行 Web 项目时,IDE 将调用项目构建脚本中的 <code>run</code> Ant 目标。您可以在编辑器中打开项目的 <code>build.xml</code> 文件进行调查。</li>
<li>切换至 "Files"(文件)窗口(Ctrl-2 组合键;在 Mac 上为 ⌘-2 组合键),展开项目节点,然后双击项目中包含的 <code>build.xml</code> 文件。在编辑器中打开 <code>build.xml</code> 文件时,"Navigator"(导航器)会列出该脚本中的所有可用 Ant 目标。 <br> <img alt="显示 build.xml 的 Ant 目标的导航器" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/navigator-ant-targets.png" title="导航器列出了 build.xml 脚本的所有可用 Ant 目标">
<p class="tips">使用常规目标 (<img alt="正常 Ant 目标图标" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/ant-normal-icon.png">) 图标显示正常 Ant 目标。<em>强调的</em> Ant 目标 (<img alt="强调的 Ant 目标图标" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/ant-emphasized-icon.png">) 图标仅指示目标包含显示为工具提示的描述(如上图所示)。有关详细信息,请参见<a href="../../java/project-setup.html">创建、导入和配置 Java 项目</a></p></li>
<li>双击 <code>run</code> 目标。<code>build-impl.xml</code> 文件在编辑器中打开,并显示目标定义。
<pre class="examplecode">&lt;target depends=&quot;run-deploy,run-display-browser&quot; description=&quot;Deploy to server and show in browser.&quot; name=&quot;run&quot;/&gt;</pre>
我们单击 <code>build.xml</code> 中的目标时,为何打开了 <code>build-impl.xml</code> 文件?如果切换回 <code>build.xml</code>(按 Ctrl-Tab 组合键)并查看文件内容,则会看到以下行:
<pre class="examplecode">&lt;import file=&quot;nbproject/build-impl.xml&quot;/&gt;</pre>
<p>项目的构建脚本基本上是一个空文件,用于从 <code>nbproject/build-impl.xml</code> 中导入 NetBeans 定义的目标。</p>
<p class="alert">您可以添加新目标,也可以覆盖 NetBeans 定义的现有目标,以自由编辑项目的标准脚本 <code>build.xml</code>。不过,您不能编辑 <code>build-impl.xml</code> 文件。</p>
通过 <code>run</code> 目标的定义,您可以看到它取决于以下目标:
<ul style="margin: 5px 0 0 -1.5em">
<li><code>run-deploy</code></li>
<li><code>run-display-browser</code></li>
</ul>
以上这两个目标又取决于其他目标,您可以在 <code>build-impl.xml</code> 文件中的其他地方查看这些目标。但从根本上讲,调用 <code>run</code> 目标时会执行以下操作:
<ol style="margin: 5px 0 0 -1em">
<li>编译项目。</li>
<li>创建 WAR 文件。</li>
<li>启动服务器(如果尚未运行)。</li>
<li>将 WAR 文件部署到指定服务器上。</li>
<li>打开浏览器,以显示服务器的 URL 和应用程序的上下文路径。</li>
</ol>
<p class="tips">有关使用 Ant 的详细信息,请参见正式的 <a href="http://ant.apache.org/manual/index.html" target="_blank">Ant 手册</a></p>
</li>
<li>要为项目构建可分发的 WAR 文件,请从 IDE 的 "Run"(运行)菜单中,选择 "Clean and Build Project"(清理并构建项目)(或 "Clean and Build Main Project"(清理并构建主项目))。</li>
<li>在 "Files"(文件)窗口(Ctrl-2 组合键;在 Mac 上为 ⌘-2 组合键)中,展开项目节点。<code>dist</code> 文件夹中包含项目的 WAR 文件。<code>build</code> 文件夹中包含编译的项目。 <br> <img alt=""Files"(文件)窗口" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/files-window.png" title=""Files"(文件)窗口提供基于目录的项目视图">
<p class="notes"><strong>注:</strong>如果清理项目(在 "Projects"(项目)窗口中,右键单击项目节点,然后从弹出式菜单中选择 <em>Clean</em>(清理)),则会删除这两个文件夹。</p></li>
<li>切换至 "Services"(服务)窗口(Ctrl-5 组合键;在 Mac 上为 ⌘-5 组合键),然后展开 "Servers"(服务器)> "GlassFish Server 3" > "Applications"(应用程序)节点。 <br> <img alt=""Services"(服务)窗口 - GlassFish v3" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/services-win-deployed-app.png" title=""Services"(服务)窗口显示服务器状态、已部署的应用程序和资源">
<p class="notes"><strong>注:</strong>对于 NetBeans 6.8 用户,"GlassFish v3" 是默认服务器名称。</p>
GlassFish Server 节点上的绿色箭头图标 (<img alt=""Services"(服务)窗口中的 GlassFish Server 节点" src="../../../../images_www/articles/73/javaee/ecommerce/common/gf-server-running-node.png">) 指示服务器正在运行。Applications 文件夹列出了所有部署的应用程序;您可以看到,<code>AffableBean</code> 应用程序已成功部署。</li>
</ol>
<p>在此阶段,您已在 IDE 中创建了 Java Web 项目,并确认可以成功构建该项目并将其部署到开发服务器上,且已在运行时在浏览器中将其打开。</p>
<br>
<h2 id="communicate">与数据库服务器进行通信</h2>
<p>下载并安装 MySQL 数据库服务器之后,可以通过 IDE 与其连接。默认安装使用 "<code>root</code>" 和 ""(空字符串)作为连接至数据库服务器的用户帐户和口令。不过,鉴于存在 GlassFish 连接问题,建议您将帐户与非空口令结合使用。<sup><a href="#footnote1" id="1" style="text-decoration:none">[1]</a></sup>以下说明介绍了如何通过 MySQL 命令行运行数据库服务器并将 <code>root</code> 帐户的口令更改为 "<code>nbuser</code>"。"<code>root</code>"/"<code>nbuser</code>" 组合将在整个 NetBeans 电子商务教程中使用。如果数据库服务器处于运行状态并已正确配置,则可以在 IDE 中对其进行注册,并创建数据库实例。</p>
<p class="notes"><strong>注:</strong>下面的命令行说明假定,您已将 <code>mysql</code> 命令添加到 <code>PATH</code> 环境变量中。(如果尚未这样做,则在命令行中输入 <code>mysql</code> 命令时,将会收到 "<code>mysql: command not found</code>" 错误。)<br><br> 如果尚未将 <code>mysql</code> 添加到 <code>PATH</code> 中,则可以输入 MySQL 安装的 <code>bin</code> 目录的完整路径,以调用命令。例如,如果 <code>mysql</code> 命令位于计算机上的 <code>/usr/local/mysql/bin</code>,则可以输入以下内容:</p>
<pre class="examplecode" style="width: 700px; margin-left:30px">shell&gt; <strong>/usr/local/mysql/bin/</strong>mysql -u root</pre>
<p style="margin-left:30px">有关详细信息,请参见正式的 MySQL 参考手册:</p>
<ul>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/general-installation-issues.html" target="_blank">2.1. 一般安装指南</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html" target="_blank">2.13.2. 确保初始 MySQL 帐户安全</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/invoking-programs.html" target="_blank">4.2.1. 调用 MySQL 程序</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/setting-environment-variables.html" target="_blank">4.2.4. 设置环境变量</a></li>
</ul>
<br>
<p>请执行以下步骤。</p>
<ul>
<li><a href="#check">检查 MySQL 服务器是否正在运行</a></li>
<li><a href="#start">启动数据库服务器</a></li>
<li><a href="#password">更改口令</a></li>
<li><a href="#register">在 IDE 中注册服务器</a></li>
<li><a href="#database">创建数据库实例</a></li>
</ul>
<div class="indent">
<h3 id="check">检查 MySQL 服务器是否正在运行</h3>
<p>从 IDE 中连接到 MySQL 服务器之前,需要确保该服务器正在运行。要完成此操作,一种方法是使用 <a href="http://dev.mysql.com/doc/refman/5.1/en/mysqladmin.html" target="_blank"><code>mysqladmin</code></a> 客户端的 <code>ping</code> 命令。</p>
<ol>
<li>打开命令行提示符,然后键入以下内容:
<pre class="examplecode" style="width:660px">shell&gt; mysqladmin ping</pre>
如果服务器正在运行,您会看到类似于以下内容的输出:
<pre class="examplecode" style="width:660px">mysqld is alive</pre>
如果服务器没有运行,则会看到类似于以下内容的输出:
<pre class="examplecode" style="width:660px">
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!</pre>
</li>
</ol>
<h3 id="start">启动数据库服务器</h3>
<p>如果 MySQL 服务器没有运行,则可以从命令行中启动该服务器。如需简单的跨平台概述,请参见 <a href="http://dev.mysql.com/doc/refman/5.1/en/automatic-start.html" target="_blank">2.13.1.2. 自动启动和停止 MySQL</a>。以下步骤提供了一般性指导,具体视操作系统而定。</p>
<h4>类 Unix 系统:</h4>
<p>对于类 Unix 系统,建议您通过调用 <a href="http://dev.mysql.com/doc/mysql-startstop-excerpt/5.1/en/mysqld-safe.html" target="_blank"><code>mysqld_safe</code></a> 启动 MySQL 服务器。</p>
<ol>
<li>打开命令行提示符,然后运行 <code>mysqld_safe</code> 命令:
<pre class="examplecode" style="width:660px">shell&gt; sudo ./mysqld_safe</pre>
将看到类似于以下内容的输出:
<pre class="examplecode" style="width:660px">090906 02:14:37 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data</pre></li>
</ol>
<h4>Windows:</h4>
<p>通过 MySQL Windows 安装程序,可以将数据库服务器安装为 Windows 服务,MySQL 可通过该服务自动随同操作系统一起启动和停止。如果需要手动启动数据库,请从安装目录的 <code>bin</code> 文件夹中运行 <a href="http://dev.mysql.com/doc/mysql-startstop-excerpt/5.1/en/mysqld.html" target="_blank"><code>mysqld</code></a> 命令。</p>
<ol>
<li>打开 Windows 控制台窗口(从 "Start"(开始)菜单中,选择 "Run"(运行),然后在文本字段中键入 <code>cmd</code>)。此时将显示一个命令行窗口。</li>
<li>输入此命令(指定的路径假定您已将版本 5.1 安装到默认安装位置):
<pre class="examplecode" style="width:660px">C:\&gt; &quot;C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld&quot;</pre></li>
</ol>
<p>有关详细信息,请参见正式的 MySQL 参考手册:<a href="http://dev.mysql.com/doc/refman/5.1/en/windows-start-command-line.html" target="_blank">2.4.5.5. 从 Windows 命令行中启动 MySQL</a></p>
<h3 id="password">更改口令</h3>
<p>要将 <code>root</code> 帐户的口令设置为 "<code>nbuser</code>",请执行以下步骤。</p>
<ol>
<li>打开命令行提示符,然后键入以下内容:
<pre class="examplecode" style="width:660px">
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('nbuser') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;</pre>
</li>
</ol>
<p>有关详细信息,请参见正式的 MySQL 参考手册:《<a href="http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html" target="_blank">2.13.2. 确保初始 MySQL 帐户安全</a>》。</p>
<h3 id="register">在 IDE 中注册服务器</h3>
<p>通过 IDE 的 "Services"(服务)窗口,可以执行以下操作:连接到服务器、启动和停止服务器、查看数据库实例和其中的数据,以及在服务器上运行外部管理工具。</p>
<ol>
<li>在 "Services"(服务)窗口中,右键单击 "Databases"(数据库)节点,然后选择 "Register MySQL Server"(注册 MySQL 服务器)。<br> <img alt=""Services"(服务)窗口 - 右键单击 "Databases"(数据库)节点上的选项" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/register-mysql-server.png" title="在 IDE 的 "Services"(服务)窗口中注册 MySQL 服务器"> <br> 在 "MySQL Server Properties"(MySQL 服务器属性)对话框的 "Basic Properties"(基本属性)标签下方,您可以看到 MySQL 服务器安装的默认设置。它们是:
<ul style="margin: 5px 0 0 -2em">
<li><strong>Server Host Name(服务器主机名):</strong><code>localhost</code></li>
<li><strong>Server Port Number(服务器端口号):</strong><code>3306</code></li>
<li><strong>Administrator User Name(管理员用户名):</strong><code>root</code></li>
<li><strong>Administrator Password(管理员口令):</strong><code>nbuser</code></li>
</ul></li>
<li>选中 "Save Password"(保存口令)选项。 <br> <img alt=""MySQL Server Properties"(MySQL 服务器属性)对话框" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/mysql-server-properties.png" title="指定 MySQL 服务器设置"></li>
<li>单击 "OK"(确定)。IDE 将会连接到 MySQL 数据库服务器,并列出由该服务器维护的数据库实例。如果展开 "Drivers"(驱动程序)节点,则还可以看到 IDE 中包含 MySQL 的<a href="http://dev.mysql.com/doc/refman/5.1/en/connector-j.html" target="_blank">连接器/J JDBC 驱动程序</a><br> <img alt=""Services"(服务)窗口 - MySQL 服务器" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/services-win-mysql.png" title="在 "Services"(服务)窗口中连接到 MySQL 服务器"> <br> 应用服务器(即 GlassFish)需要驱动程序,才能实现 Java 代码与 MySQL 数据库之间的通信。由于 IDE 中已包含连接器/J 驱动程序,因此不需要进行下载。此外,如后面所述,可以在服务器设置中通过指定方式来启用 JDBC 驱动程序部署,从而将该驱动程序自动部署到 GlassFish(如果服务器上未安装该驱动程序)。<br><br> 下面的步骤 4 至 7 为可选操作。您可以将 IDE 配置为启动和停止 MySQL 服务器,以及在服务器上运行外部管理工具。</li>
<li>右键单击 MySQL 服务器节点,然后选择 "Properties"(属性)。在 "MySQL Server Properties"(MySQL 服务器属性)对话框中,选择 "Admin Properties"(管理属性)标签。</li>
<li>在 "Path/URL to admin tool"(管理工具的路径/URL)字段中,输入计算机上数据库管理工具(如 <a href="http://dev.mysql.com/doc/administrator/en/mysql-administrator-introduction.html" target="_blank">MySQL Administrator</a>)的可执行文件的路径。MySQL Administrator 包含在 <a href="http://dev.mysql.com/downloads/gui-tools/" target="_blank">MySQL GUI 工具</a>包中。</li>
<li>在 "Path to start command"(启动命令的路径)字段中,键入 MySQL 启动命令(即 <code>mysqld</code><code>mysqld_safe</code>)的路径,具体视操作系统而定。(请参见上面的<a href="#start">启动数据库服务器</a>。) <br><br>
<p class="notes"><strong>注:</strong>对于类 Unix 系统,您可能会发现,只能使用根或管理权限调用启动命令。要解决这一问题,可以创建一个脚本(如果是 Linux 和 Solaris,请使用 <a href="http://www.nongnu.org/gksu/" target="_blank">GKSu</a>;如果是 Mac,则使用 <a href="http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/osascript.1.html" target="_blank">osascript</a>),以完成此任务。有关详细信息,请参见<a href="http://davidvancouvering.blogspot.com/2008/09/starting-mysql-in-netbeans-as.html" target="_blank">此博客帖子</a></li>
<li>在 "Path to stop command"(停止命令的路径)字段中,输入 MySQL 停止命令(即 <code>mysqladmin shutdown</code>)的路径。因为该命令要求提供具有关闭权限的用户帐户,因此必须在 "Arguments"(参数)字段中输入用户名/口令凭证。例如:
<ul style="margin: 5px 0 0 -2em">
<li><strong>参数:</strong><code>-u root -pnbuser shutdown</code></li>
</ul>
</li>
</ol>
<p>设置了 "Advanced Properties"(高级属性)标签下列出的字段后,可以执行以下操作:</p>
<ul>
<li><strong>启动 MySQL 服务器:</strong>右键单击 MySQL 服务器节点,然后选择 "Start"(启动)。</li>
<li><strong>停止 MySQL 服务器:</strong>右键单击 MySQL 服务器节点,然后选择 "Stop"(停止)。</li>
<li><strong>运行外部管理工具:</strong>右键单击 MySQL 服务器节点,然后选择 "Run Administration Tool"(运行管理工具)。</li>
</ul>
<h3 id="database">创建数据库实例</h3>
<ol>
<li>创建将在本教程中使用的数据库实例。为此,请右键单击 MySQL 服务器节点,然后选择 "Create Database"(创建数据库)。</li>
<li>在显示的对话框中,键入 <code>affablebean</code>。选中 "Grant Full Access to"(将完全访问权限授予)选项,然后从下拉字段中选择 <code>root@localhost</code>。这样就可以使用 <code>localhost</code> 主机上的 <code>root</code> 帐户访问数据库了。此后,在服务器上创建连接池时,需要提供 <code>root</code> 帐户和 <code>nbuser</code> 口令作为用户名/口令凭证,才能向服务器授予数据库访问权限。 <br> <img alt=""Create MySQL Database"(创建 MySQL 数据库)对话框" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/create-mysql-db-dialog.png" title="右键单击服务器节点,然后选择 "Create Database"(创建数据库)以创建一个新的数据库实例"></li>
<li>单击 "OK"(确定)。在执行此操作后,将创建名为 <code>affablebean</code> 的数据库,并自动建立与数据库的连接。连接将通过连接节点 (<img alt="数据库连接节点" src="../../../../images_www/articles/73/javaee/ecommerce/common/db-connection-node.png">) 显示在 "Services"(服务)窗口中。
<p class="notes"><strong>注:</strong>连接节点一直保留在 "Services"(服务)窗口中。如果重新启动 IDE,则显示的连接节点 (<img alt=""Database"(数据库)连接节点 - 断开连接" src="../../../../images_www/articles/73/javaee/ecommerce/common/connection-broken.png">) 将带有锯齿线,这指示连接已中断。要重新连接到数据库,请确保数据库服务器正在运行,然后右键单击节点,并选择 "Connect"(连接)。</p></li>
<li>展开 <code>affablebean</code> 数据库的连接节点。连接中包含数据库的默认方案 (<code>affablebean</code>),其中包括表、视图和过程的节点。目前,这些节点都是空的,因为我们尚未创建任何内容。 <br> <img alt=""Services"(服务)窗口 - "affablebean" 的数据库连接" class="margin-around b-all" src="../../../../images_www/articles/73/javaee/ecommerce/setup-dev-environ/db-conn-affable-bean.png" title="数据库连接包含数据库的默认方案以及表、视图和过程的节点"></li>
</ol>
</div>
<p>在此阶段,您已从 IDE 中连接到 MySQL 服务器,并创建名为 <code>affablebean</code> 的新数据库,该数据库将在整个教程中使用。另外,您已在 IDE 中创建 Java Web 项目,并确认可以成功构建该项目并将其部署到开发服务器上,且已在运行时在浏览器中将其打开。现在,开发环境已经准备就绪,您可以开始设计应用程序的数据模型了。</p>
<div class="feedback-box">
<a href="/about/contact_form.html?to=3&amp;subject=Feedback: NetBeans E-commerce Tutorial - Setting up the Development Environment">请将您的反馈意见发送给我们</a></div>
<br style="clear:both;">
<h2 id="seeAlso">另请参见</h2>
<div class="indent">
<h3>NetBeans 资源</h3>
<ul>
<li><a href="../../java/project-setup.html" target="_blank">创建、导入和配置 Java 项目</a></li>
<li><a href="../../../articles/mysql.html" target="_blank">MySQL 和 NetBeans IDE</a></li>
<li><a href="../../ide/mysql.html" target="_blank">连接 MySQL 数据库</a></li>
<li><a href="../../web/mysql-webapp.html" target="_blank">使用 MySQL 数据库创建简单的 Web 应用程序</a></li>
</ul>
<h3>外部资源</h3>
<ul>
<li><a href="http://ant.apache.org/manual/index.html" target="_blank">Apache Ant 用户手册</a></li>
<li><a href="http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html" target="_blank">使用 Ant 生成 Hello World</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/" target="_blank">MySQL 5.1 参考手册</a></li>
<li><a href="http://dev.mysql.com/doc/administrator/en/index.html" target="_blank">MySQL 管理员参考手册</a></li>
</ul>
<h3>书籍</h3>
<ul>
<li><a href="https://netbeans.org/kb/articles/books.html" target="_blank">NetBeans 书籍</a></li>
<li><a href="http://www.apress.com/book/view/1590598954" target="_blank">专业的 NetBeans IDE 6 富客户端平台版本</a></li>
<li><a href="http://apress.com/book/view/1430219548" target="_blank">带有 GlassFish 3 的 Java EE 6 平台入门:从初学者到专业人士</a></li>
</ul>
</div>
<br>
<h2>参考</h2>
<ol>
<li id="footnote1"><a href="#1" style="text-decoration:none">^</a> 使用 GlassFish v3,可通过空口令创建到 MySQL 数据库服务器的连接池。GlassFish Open Source Edition 3.0.1 是随 NetBeans IDE 6.9 一起提供的,不支持使用空口令创建连接。请参见 <a href="https://glassfish.dev.java.net/issues/show_bug.cgi?id=12221" target="_blank">GlassFish 问题 12221</a></li>
</ol>
</body>
</html>