// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans 电子商务教程 - 设置指导
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans 电子商务教程 - 设置指导 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans 电子商务教程 - 设置指导



1. link:intro.html[+简介+]
2. link:design.html[+设计应用程序+]
3. link:setup-dev-environ.html[+设置开发环境+]
4. link:data-model.html[+设计数据模型+]
5. link:page-views-controller.html[+准备页面视图和控制器 Servlet+]
6. link:connect-db.html[+将应用程序与数据库连接+]
7. link:entity-session.html[+添加实体类和会话 Bean+]
8. link:manage-sessions.html[+管理会话+]
9. link:transaction.html[+集成事务性业务逻辑+]
10. link:language.html[+添加语言支持+]
11. link:security.html[+保护应用程序+]
12. link:test-profile.html[+测试和性能分析+]
13. link:conclusion.html[+小结+]

image::../../../../images_www/articles/68/netbeans-stamp-68-69.png[title="此页上的内容适用于 NetBeans IDE 版本 6.8 和 6.9"]

如果要在未完成前一教程单元的情况下继续学习下一单元，则需要执行一些预备步骤，以设置开发环境。

1. *设置 MySQL 数据库服务器*。按照link:setup-dev-environ.html#communicate[+与数据库服务器进行通信+]中所述的步骤操作。
2. *在数据库服务器上创建 `affablebean` 方案，并使用样例数据填充数据库：*
1. 单击 link:https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaEE%252Fecommerce%252Faffablebean.sql[+affablebean.sql+] 并复制（Ctrl-C；在 Mac 上为 ⌘-C）文件的所有内容。
2. 打开 IDE 的 SQL 编辑器。在 "Services"（服务）窗口（按 Ctrl-5 组合键；在 Mac 上为 ⌘-5 组合键）中，右键单击 `affablebean` 数据库连接 (image::images/db-connection-node.png[]) 节点，然后选择 "Execute Command"（执行命令）。
image::images/execute-command.png[title="从连接节点中选择 "] 
IDE 的 SQL 编辑器打开。
3. 将 `affablebean.sql` 文件的所有内容粘贴（Ctrl-V；在 Mac 上为 ⌘-V）至编辑器。
4. 在编辑器的工具栏中单击 "Run SQL"（运行 SQL）(image::images/run-sql-btn.png[]) 按钮。此脚本在 MySQL 服务器上运行。为数据库生成表，并将样例数据添加到 `product` 和 `category` 表。
3. *在 GlassFish 上创建连接池和 JDBC 源。*
1. 在 "Services"（服务）窗口（Ctrl-5 组合键；在 Mac 上为 ⌘-5 组合键）中，展开 "Servers"（服务器）> "GlassFish Server 3" 节点，并选择 "Properties"（属性）。在显示的 "Servers"（服务器）窗口中，请确保选中 "Enable JDBC Driver Deployment"（启用 JDBC 驱动程序部署）。如果项目需要 MySQL link:http://www.mysql.com/downloads/connector/j/[+Connector/J+] 驱动程序，则此选项会确保在部署项目时将驱动程序部署到 GlassFish 上。（如果服务器已在运行，则需要重新启动服务器。）
2. 在 "Services"（服务）窗口中，右键单击 "GlassFish Server 3" 节点并选择 "Start"（启动）。
3. 运行该服务器之后，右键单击 "GlassFish Server 3" 节点，然后选择 "View Admin Console"（查看管理控制台）。
4. 登录到（默认用户名/口令为：`admin/adminadmin`）。
5. 在管理控制台左侧的树中，展开 "Resources"（资源）> "JDBC" 节点，然后单击 "Connection Pools"（连接池）节点。
6. 在 "Connection Pools"（连接池）接口中，单击 "New"（新建）按钮，并输出以下详细信息：
* *Name（名称）：*`AffableBeanPool`
* *Resource Type（资源类型）：*`javax.sql.ConnectionPoolDataSource`
* *Database Vendor（数据库供应商）：*`MySql`
image::images/connection-pool.png[title="指定设置以创建连接至 MySQL 数据库的连接池"]
7. 单击 "Next"（下一步）。接受所有默认值，然后单击 "Finish"（完成）。
8. 在 "Connection Pools"（连接池）接口中，单击新创建的 `AffableBeanConnectionPool`，在 "General"（常规）标签下进行以下更改：
* *Datasource Classname（数据源类名）：*`com.mysql.jdbc.jdbc2.optional.MysqlDataSource`
image::images/datasource-classname.png[title="为连接池设置数据源类名"]
9. 单击 "Save"（保存）。
10. 单击 "Additional Properties"（附加属性）标签，并确保已设置以下三个属性。（可能还列出其他属性，这些是默认设置，但是以下三个设置必须进行手动设置。）
* *User（用户）：*`root`
* *Password（口令）：*`nbuser`
* *URL：*`jdbc:mysql://localhost:3306/affablebean`
image::images/additional-properties.png[title="设置用户名、口令和指向数据库的 URL"]
11. 单击 "Save"（保存）。
12. 单击 "General"（常规）标签，然后单击 "Ping"。应会看到一则指示 ping 已成功的消息。`AffableBeanPool` 连接池现在可以连接到 MySQL 数据库服务器。 
image::images/ping-succeeded.png[title="对 MySQL 服务器执行 ping 操作以确定连接池能否连接"]
13. 在左侧列中的管理控制台树中，单击 "Resources"（资源）> "JDBC" > "JDBC Resources"（JDBC 资源）节点。在主窗口中打开 "JDBC Resources"（JDBC 资源）界面。
14. 单击 "New"（新建）按钮以创建新的 JDBC 资源，然后输入以下详细信息：
* *JNDI Name（JNDI 名称）：*`jdbc/affablebean`
* *Connection Pool（连接池）：*`AffableBeanPool`
image::images/jdbc-resource.png[title="指定 JNDI 名称和连接池以创建 JDBC 资源"]
15. 单击 "OK"（确定）。

已经设置 MySQL 服务器，并且可以从 IDE 的 "Services"（服务）窗口连接到此服务器。创建了名为 `affablebean` 的数据库，并使用样例数据填充了数据库的 `product` 和 `category` 表。然后，启动了 GlassFish Server，并创建一个连接池，服务器可通过它连接到 `affablebean` 数据库。最后，创建了一个 JDBC 资源，应用程序可使用它来引用服务器连接池的。

现在，可以打开并运行教程单元中提供的任何项目屏幕快照。

link:/about/contact_form.html?to=3&subject=Feedback: NetBeans E-commerce Tutorial - Setup Instructions[+请将您的反馈意见发送给我们+]


