11 Eclipse 的数据库开发.docx
- 文档编号:14919171
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:34
- 大小:3.10MB
11 Eclipse 的数据库开发.docx
《11 Eclipse 的数据库开发.docx》由会员分享,可在线阅读,更多相关《11 Eclipse 的数据库开发.docx(34页珍藏版)》请在冰点文库上搜索。
11Eclipse的数据库开发
11Eclipse的数据库开发应用程序的开发少不了数据库,很多应用程序都包括了对数据库数据的检索、更新、插入和删除等操作。
因此,一个简单易用并且功能强大的数据库管理系统就成为应用软件开发不可或缺的一部分。
MySQL是一个多用户、多线程并且能够支持多平台的数据库服务器。
由于它是免费的数据库,便成为开发基于数据库的用软件的不错选择。
本章将介绍如何在Eclipse环境下使用MySQL,主要包括MySQL数据库的安装与配置,MySQL数据库基本操作命令的使用,使用JDBC访问数据库,如何使用Quantum插件连接数据库和对数据库进行操作。
11.1MySQL简介MySQL是一个精巧的SQL数据库管理系统,以操作简便著称。
由于其强大的功能、丰富的应用编程接口以及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛用。
作为一个完全免费的数据库,MySQL可以自由地用于个人和商业而不必支付任何费用。
作为一个数据库管理系统,MySQL是客户机/服务器模式的分布式系统,由SQL服务器、客户端、管理工具和应用编程接口等一整套工具组成。
它的平台无关性优点使其能在多个操作系统上运行,其中包括Unix、Linux、Solaris、SunOS、FreeBSD、BSDI、SGIIRIX和AIX等。
此外,MySQL还是多线程的,不仅具有运行速度快,可处理大批量数据等特点,还支持多CPU使用。
11.2MySQL的安装与配置MySQL可以运行于多种操作系统平台,其在不同操作系统下的安装配置方法也不尽相同。
本节主要介绍Windows操作系统下安装配置MySQL的过程。
11.2.1安装MySQLMySQL的安装步骤如下。
(1)由于MySQL是免费的,可以从MySQL的官方网站自由获取数据库的安装文件,下载的URL为。
MySQL目前发布的最高版本是MySQL5.0,此处使用官方站点推荐的版本mysql-4.1.13a。
从一系列发布版本中找到用于Windows的版本mysql-4.1.13a-win32,这里有两个发布压缩包,一个是安装版本,一个是非安装(withoutinstaller)版本,选择安装版本并下载。
(2)将下载的压缩包解压,找到其中的SETUP.EXE,双击开始安装。
可将MySQL数据库安装在F:
\MySQL\MySQLServer4.1目录下。
基本上是一路Next,除了选择自定义安装改变一下默认路径。
11.2.2配置MySQLMySQL的配置步骤如下。
(1)数据库安装好以后复选框“ConfiguretheMySQLServernow”默认处于选中状态,如果此时点击【Finish】按钮,会弹出用于对MySQL服务器进行配置的“MySQLServerInstanceConfigurationWizard”对话框,如图11-1所示。
(2)点击【Next】按钮,在出现的对话框里选择“StandardConfiguration”。
继续点击【Next】按钮,出现如图11-2所示画面。
将复选框“IncludeBinDirectoryinWindowsPATH”勾选,这样就可以从命令行对数据库进行操作了。
按照这种方法配置path环境变量,省去了自己将MySQL数据库的bin目录注意加入到path中的诸多麻烦。
当然,“MySQLServerInstanceConfigurationWizard”复选框可以不选中,这样要手动配置path环境变量。
(3)点击【Next】按钮,在出现的对话框中设置root用户的初始密码,密码设为“admin”。
如图11-3所示。
设好密码后点击【Next】,在出现的对话框中点击【Execute】按钮,开始配置MySQL服务器。
配置完成后,点击【Finish】关闭配置向导。
11.3MySQL的基本操作命令MySQL数据库的操作界面为命令行界面,可以选择【开始→MySQL→MySQLServer4.1→MySQLCommandLineClient】打开数据库自带的客户端shell对数据库进行数据的插入、删除、修改、查询等操作。
由于上一节已经配置好path环境变量,也可以进入Windows的命令行界面对数据库进行操作。
本节主要介绍一些基本的数据库操作命令。
11.3.1登录数据库登录数据库使用如下命令:
shell>mysql–hhostname-uusername–pEnterpassword:
******其中hostname为mysql的服务器名或服务器的IP,username为用户名,*****为用户密码。
举例如下:
shell>mysqlhlocalhosturootpEnterpasswordadmin如果用户名和密码正确,就会成功登录数据库,如图11-4所示。
11.3.2启动和停止数据库服务启动和停止MySQL数据库服务的命令比较简单,命令如下:
shell>netstartmysqlshell>netstopmysql第一条命令用于启动服务,第二条则为停止服务。
11.3.3创建用户一个数据库服务器支持很多用户访问,而这些用户又各自具备不同的数据库访问权限。
在MySQL中有两种增加用户的方法,一是通过使用GRANT(授权)语句,二是通过直接操作MySQL授权表。
比较常用的方法是第一种。
第二种创建用户的方法较繁琐而且易出错,有兴趣的读者可以参考MySQL附带的帮助文件。
创建用户必须使用root用户连接数据库。
选择【开始→运行】,在打开的对话框里输入“cmd”,进入命令界面。
shell>mysqlhlocalhosturootpEnterpassword:
adminmysql>grantallprivilegeson*.*touser1@”localhost”->identifiedby‘user1’;mysql>grantallprivilegeson*.*touser1@"%"->identifiedby‘user1’;mysql>grantreloadprocesson*.*touser2@localhost->identifiedby‘user2’;上述GRANT语句新建了两个用户。
(1)用户user1是一个可以从任何地方连接服务器的超级用户,密码设置为user1。
(2)用户user2是可以从localhost连接服务器并且被授予reload和process管理权限的用户。
有了这两个权限,用户可以执行mysqladminreload、mysqladminrefresh和mysqladminflush-*等命令,但是没有对数据库操作的权限。
11.3.4修改密码修改用户密码也有两种方法。
一种是直接修改数据库服务器中mysql数据库的表user,此表用来存储与用户相关的信息,如用户登录的主机名、用户名,密码等。
示例如下:
shell>mysqlhlocalhosturootpEnterpassword:
adminmysql>usemysqlmysql>updateuserSETpassword=password(“admin1”)whereuser='root'andhost='localhost';mysql>flushpriviledges;另一种方法就是使用setpassword语句,示例如下:
mysql>setpasswordforroot@localhost=password(“admin1”);11.3.5创建数据库在创建数据库之前,可以先用showdatabases命令查看一下服务器中可用的数据库。
mysql>showdatabases执行完此命令后,可以看到两个默认存在的数据库mysql和test,其中mysql用来保存系统数据,test用来进行测试,如图11-5所示。
下面来建立自己的数据库,创建数据库使用如下命令:
mysql>dropdatabaseifexistsstudentinfo;mysql>createdatabasestudentinfo;在创建数据库之前必须保证没有与所创建数据库同名的数据库,如果存在,需要用drop命令删掉,第一行命令就做了上述判断。
数据库创建完成以后,再用showdatabases命令查看,可以看到服务器中多了一个数据库studentinfo,如图11-6所示。
11.3.6创建表数据库建好以后,就可以为数据库创建表了。
创建表的步骤如下。
(1)使用数据库studentinfo,键入如下命令:
mysql>usestudentinfo;
(2)创建表之前先判断此表是否存在,如果存在,删除重建。
假设建立一个名为student的表,命令如下;mysql>droptableifexistsstudent;(3)创建名为student的表。
mysql>createtablestudent(->idintnotnullauto_increment,
->namevarchar(20)notnulldefault'name',->mathintnotnulldefault60,->primarykey(id));表中有3个属性,学号“id”、姓名“name”和数学成绩“math”,其中“id”属性作为表的主键。
(4)表创建完成以后,可以通过命令descstudent来查看表的具体描述,如图11-7所示。
mysql>descstuent;11.3.7插入操作表建立好以后,就可以向表中插入数据了。
插入数据使用如下命令:
myaql>insertintostudentvalues(1,"liyinglin",98);上面的语句为每一条属性都指定了一个值,也可以为某些特定的属性插入值,其余保留默认值,举例如下:
mysql>insertintostudent(id,name)values(1,"liyinglin");上述插入操作必须一条一条进行,如果要插入大量数据,要写很多条类似的insert语句,比较繁琐。
MySQL支持另外一种数据插入方式,使用loaddatainfile语句可以将一个文本文件中的数据高速读入一个表中。
如果指定了local关键字,则表示从客户机读文件;如果local没指定,文件必须位于服务器上。
当在服务器主机上寻找文件时,服务器使用下列规则。
(1)如果给出一个绝对路径名,服务器使用该路径名。
(2)如果给出一个相对路径名,服务器相对服务器的数据目录搜索文件。
(3)如果只给出一个文件名,服务器在当前数据库的数据库目录寻找文件。
为了从文件中读取数据,首先把要插入的数据写入一个文件中。
如果在student表中插入数据,可以创建一个文本文件“student.txt”,每行包含一条记录,用定位符(Tab)把值分开,并且以createtable语句中列出的列次序给出。
比如在文本文件中写入如下内容:
1lixiongying98
2leijianbing603zhaodongchu894limingliang995wanghanling786lingyuchun88保存文件后,将文件放到数据库安装路径下data文件夹下的studentinfo文件夹中,键入如下命令:
mysql>loaddatainfile"student.txt"intotablestudent;执行完以后,键入命令“mysql>select*fromstudent;”(此命令为查询命令,下一节将讲到),表中出现了文件中的6行数据,如图11-8所示。
11.3.8查询操作利用上一节介绍的数据插入方法,向数据库studentinfo的表student中插入如下几条记录:
myaql>insertintostudentvalues(1,"liyinglin",98);myaql>insertintostudentvalues(2,"jiangshan",79);myaql>insertintostudentvalues(3,"wangjiawu",100);myaql>insertintostudentvalues(4,"xingweiqi",89);myaql>insertintostudentvalues(5,"lingsheng",61);
记录插入完以后就可以对数据库进行查询操作了,查询数据库中所有信息的命令如下:
mysql>select*fromstudent;键入上述命令,MySQL数据库会显示查询结果,如图11-9所示。
除了查询全部信息,常用的查询命令还有条件查询,如查询id为3的学的信息。
mysql>select*fromstudentwhereid=3;查询数据库中所有学的姓名。
mysql>selectnamefromstudent;以上两条命令的执行结果如图11-10所示。
11.3.9删除与修改操作除了插入和查询,还可以对数据库中的记录进行删除和修改。
(1)记录的删除操作。
要从表中删除一条记录,不仅要指定删除记录的表的名字,还要指出删除哪条记录,可以在命令中用where指定。
比如使用如下命令从student表中删除数学成绩为“61”的学记录。
mysql>deletefromstudentwheremath=61;执行完上述命令后再执行查询操作,发现数学成绩为“61”的学记录被删除了,如图11-11所示。
使用如下命令可以完成对表中所有数据的删除操作:
mysql>deletefromstudent;
(2)记录的修改操作。
要修改数据库表中的一条记录,比如将名为“jiangshan”学的数学成绩修改为“85”,可以使用如下命令:
mysql>updatestudentsetmath=85wherename=”jiangshan”;修改完,键入查询命令“select*fromstudent”,发现名为“jiangshan”的记录项已经修改,如图11-12所示。
不仅可以修改单条记录,还可以同时修改整个表的数据,比如将所有学的“math”即数学成绩都减1,命令如下:
mysql>updatestudentsetmath=math-1;执行完命令后查询,结果如图11-13所示。
11.3.10修改表结构表创建完成以后,仍可以对表的结构进行更改,如加属性、修改属性的数据类型和默认值等。
(1)为表student增加一列english。
使用如下命令:
mysql>altertablestudentadd(englishintnotnulldefault60);
(2)修改列name的数据类型。
使用如下命令:
mysql>altertablestudentmodifynamevarchar(30)notnull;(3)修改列engliah的默认值。
使用如下命令:
mysql>altertablestudentalterenglishsetdefault100;(4)删除english的默认值。
使用如下命令:
mysql>altertablestudentalterenglishdropdefault;11.4使用MySQLAdministrator管理数据库可能有人不习惯MySQL数据库的命令行操作方式,更喜欢可视化操作界面。
低版本的MySQL提供了一个可视化的小工具winmysqladmin.exe,此工具在数据库安装路径的bin目录下。
可能是开发者觉得用处不大,在高版本中这个工具就不提供了,读者可以在4.0版本中找到。
此外,还可以使用其他工具,如MySQLAdministrator管理数据库,该工具对数据库建立和维护提供了友好的可视化操作界面。
MySQLAdministrator可以在MySQL的官方网站下载,地址是/download/index.html。
目前推荐的稳定版本是1.0。
下面简述一下安装过程。
从上述URL下载安装文件到本地机器上,文件名为mysql-administrator-1.1.1-rc-win.msi。
由于是windows版本的安装文件,一路Next,好改一下默认安装路径,把它和MySQL数据库安装在同一目录下,这样方便管理。
下面简单看一下MySQLAdministrater的使用。
(1)安装好以后,选择【开始→所有程序→MySQL→MySQLAdministrater】,启动Administrater,如图11-14所示。
(2)在“ServerHost”一栏填上localhost,端口默认为3306,在“Username”一栏填上用户名“root”,在“Password”一栏填上root用户的密码“admin”。
点击【OK】按钮,出现如图11-15所示界面。
(3)点击左边窗口的“Catalogs”选项,下面的窗口中出现了服务器中现有的3个数据库,其中studentinfo是前面用命令建立的数据库,其余都是系统自带的。
选中studentinfo数据库,在右边窗口中列出了此数据库中所有的表,如图11-16所示。
(4)选中表student并且双击,就会出现表的编辑器,可以在此编辑器中方便地更改表的结构,比如修改属性类型,添加属性值,删除属性值等操作。
修改完成以后只需点击【ApplyChanges】按钮应用这些变化即可。
如图11-17所示即为编辑表结构的界面。
(5)在图11-16所示的界面中点击【Createtable】按钮还可以方便地创建表。
MySQLAdministrater的功能比较多,难以一一详细介绍,有兴趣的读者可以阅读该工具的帮助文档。
11.5JDBC简介使用Java语言编写基于数据库的应用程序少不了JDBC,本节就来介绍JDBC的基础知识以及如何使用JDBC连接数据库。
11.5.1JDBC的概念JDBC(JavaDataBaseConnectivity)称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成。
有了JDBC,就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。
换言之,有了JDBC,就不必为访问MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,只需一个数据库访问程序,就可以实现对各种不同数据库的访问,这充分体现了Java语言的平台无关性。
JDBC提供了一组类和接口用于对数据库的访问,用JDBC访问数据库要经过以下几个步骤。
首先要打开数据库连接,接着执行SQL语句以便对数据库进行各种操作,然后执行查询操作从数据库返回的结果,最后关闭数据库连接。
JDBCAPI不仅支持数据库访问的两层模型,同时也支持三层模型。
所谓两层模型,就是应用程序通过JDBC驱动程序直接与所访问的数据库管理系统进行通信。
而在三层模型中,命令先是被发送到服务的“中间层”,SQL语句由中间层负责发送给数据库,数据库将处理结果通过中间层送回给用户。
三层模型的优点在于用户可以使用易用的高级API,相应的低级调用的转换由中间层来完成。
11.5.2常用的JDBC类与方法1.DriverManager类DriverManager类用于管理JDBC驱动程序。
在使用JDBC驱动程序之前,必须先将驱动程序加载并向DriverManager注册后才可以使用,DriverManager类不仅提供了注册JDBC驱动的方法,同时也提供与数据库建立连接的方法。
DriverManager类提供的主要方法如下。
(1)Class.forName(Stringdriver):
用于加载注册驱动程序。
(2)StaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQL-Exception:
用来取得对数据库的连接。
(3)StaticDrivergetDriver(Stringurl)throwsSQLExcetion:
用于在已经向DriverManager注册的驱动程序中寻找一个能够打开url所指定的数据库的驱动程序。
2.Connection类Connection类用于维护Java数据库用程序和数据库之间的连接。
它的方法比较多,主要方法如下。
(1)StatementcreateStatement()throwsSQLException:
用于创建Statement类对象。
(2)DatabaseMetaDatagetMetaData()throwsSQLException:
用于创建DatabaseMetaData类对象。
(3)PreparedStatementprepareStatement(Stringsql)throwsSQLException:
用于创建PreparedStatement类对象。
(4)booleangetAutoCommit()throwsSQLException:
用于返回Connection类对象的AutoCommit状态。
(5)voidsetAutoCommit(booleanautoCommit)throwsSQLException:
用于设定Connection类对象的AutoCommit状态。
(6)voidcommit()throwsSQLException:
确定执行对数据库新、删除或修改记录的操作。
(7)voidrollback()throwsSQLException:
取消执行对数据库新、删除或修改记录的操作。
(8)voidclose()throwsSQLException:
关闭Connection对象与数据库的连接。
(9)booleanisClosed()throwsSQLException:
用于测试是否已经关闭了和数据库的连接。
3.Statement类通过Statement类所提供的方法,可以执行标准的SQL语句,用来完成对数据库插入、删除或修改等操作。
(1)ResultSetex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 Eclipse 的数据库开发 数据库 开发