NetBeans自带一个名为JavaDB的内置SQL数据库系统,但也与一系列其他数据库兼容。在本课程中,我选择了MySQL数据库服务器。MySQL的社区版是赢博体育主流操作系统都可以使用的免费软件,并且可以自由地重新分发。MySQL为Java SQL编程提供了良好的支持。
MySQL软件的主要下载页面位于dev.mysql.com/downloads/
Mac用户应该首先点击主下载页面上MySQL社区服务器的链接。这将把您带到服务器的下载页面。在该页面上,您需要选择8.0.41版本,然后选择正确的操作系统版本。如果您使用的是Apple Silicon Mac (M1或更高版本),请确保选择ARM版本。如果你用的是英特尔的Mac电脑,你就需要英特尔的版本。
该页面将为您提供几个版本的软件包-选择DMG存档版本下载。
下载MySQL磁盘镜像时,可以双击dmg文件打开安装目录。在里面你会发现一个包文件。双击它来运行安装包。在安装过程中,安装程序将提示您创建根密码。请把这个根密码写下来,并保存在一个安全的地方。
接下来,回到主下载页面,单击链接下载MySQL Workbench赢博体育程序。下载后双击dmg文件,并将MySQL工作台图标从该文件夹拖到赢博体育程序文件夹中。
Windows上的MySQL安装程序是一个统一的安装程序包,它将安装MySQL服务器和您需要的其他工具。从主下载页面单击Windows安装程序的链接。下载安装程序并双击它来运行安装程序。当安装程序启动时,首先选择Developer Default安装类型。
安装程序将安装MySQL开发所需的赢博体育工具。
MySQL服务器安装完成后,安装程序将引导您完成一系列配置屏幕。在其中一个屏幕上,安装程序将要求您设置根密码。把这个密码写下来,放在安全的地方。
将最终屏幕集中的选项保留原样。这些选项将确保MySQL在您的计算机启动时自动启动,因此它将始终可用。
当您安装MySQL服务器软件时,安装程序应该提示您为root帐户创建密码。
因为每个人都有不同的根密码,我们永远不会使用根帐户从我们的Java程序连接到MySQL。相反,每个人都将设置第二个用户帐户,我们都将使用该帐户与MySQL进行赢博体育交互。
要设置第二个帐户,首先启动MySQL Workbench赢博体育程序。当它启动时应该看到一个欢迎屏幕,看起来像这样。
单击该按钮连接到本地MySQL服务器
单击左侧导航器中的Administration选项卡,然后单击Users and Privileges链接。
单击Add Account按钮创建一个新的用户帐户,并填写如下所示的帐户详细信息。将这个新帐户的密码设置为“Cmsc250!”(没有引号)。
单击Administrative Roles选项卡,然后单击DBManager角色。
单击架构特权选项卡,然后单击添加条目…按钮。
在出现的对话框中,保持默认设置并单击OK。
最后,点击选择“全部”按钮并点击赢博体育。
现在,您已经使用用户名“student”和密码“cmsc250!”设置了一个用户帐户。我们将在赢博体育示例中使用此帐户以一致的方式连接到MySQL。
要创建一个可以与MySQL交互的NetBeans项目,我们需要在我们的项目中添加一个特殊的MySQL连接器库。
对于赢博体育与MySQL交互的项目,我们将使用Maven作为构建系统。Maven的一个很好的特性是,我们可以向pom.xml文件添加依赖项,该依赖项告诉Maven下载并使用指定的库。对于任何未来需要与MySQL对话的项目,我们需要在pom.xml中添加以下依赖项:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>
接下来,您可能希望获得一个预先构造的示例数据库来使用。我将在剩下的笔记中使用学生数据库。您可以通过单击这些注释顶部的按钮下载今天的示例项目来获得该数据库的副本。在该项目文件夹中,您将找到一个数据库文件夹,其中包含示例数据库的文件。本指南将解释如何将该数据库导入MySQL。
下面是今天的示例程序的源代码。这个程序演示了如何使用JDBC连接到数据库并从中提取一些信息。
进口java.sql。*;公共类SimpleJDBC{公共静态void main(String[] args)抛出SQLException, ClassNotFoundException{//加载JDBC驱动程序class . forname ("com.mysql.jdbc.Driver");system . out。println(“驱动程序加载”);//建立连接connection connection = DriverManager。getConnection (" jdbc: mysql: / / localhost: 3306 /学生?用户= student&password = Cmsc250 !”);system . out。println(“数据库连接”);//创建语句statement = connection.createStatement();//执行语句ResultSet ResultSet = statement。executeQuery ("select firstName, mi, lastName from Student where lastName " + " = 'Smith'");//遍历结果并打印学生姓名while (resultSet.next()) System.out.println(resultSet.getString(1) + "\t" + resultSet.getString(2) + "\t" + resultSet.getString(3));//关闭连接connection. Close ();}}
有了数据库和JDBC驱动程序,我们就可以运行这个程序了。该程序建立到学生数据库的连接,并对该数据库运行SQL查询。查询要求数据库返回数据库的Student表中姓为Smith的赢博体育条目的名、中间首字母和姓氏。查询的结果以结果集的形式返回。然后,程序遍历结果集,打印姓氏为Smith的赢博体育学生的名字。
这个程序的输出应该是这样的:
驱动程序加载数据库连接雅各布R史密斯乔治K史密斯让K史密斯约什R史密斯
在使用MySQL时,您会发现另一个有用的工具是MySQL Workbench。
Workbench包含方便的工具,可以直接创建数据库、表和表中的条目。您会发现Workbench对于测试SQL代码很方便。
在这个类中,除了select语句之外,通常只需要三条SQL语句就可以处理数据库。
要在表中插入新条目,请使用SQL insert语句。
insert into student (ssn,firstName,lastName,deptId) values ('100','Joe','Gregg','CS')
若要更改现有行的一个或多个字段,请使用update语句。
更新学生zipCode = ‘54911‘,其中ssn = ’100’
要从表中删除一行或多行,请使用带有where子句的delete语句来标识要删除的行。
删除SSN = '100'的student
你可以在教科书的第34章找到更多关于SQL的信息。第34章不是印刷教科书的一部分。相反,您可以从配套网站下载第34章的PDF文件。