11 Eclipse 的数据库开发文档格式.docx
《11 Eclipse 的数据库开发文档格式.docx》由会员分享,可在线阅读,更多相关《11 Eclipse 的数据库开发文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
(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为用户名,*****为用户密码。
举例如下:
mysqlhlocalhosturootpEnterpasswordadmin如果用户名和密码正确,就会成功登录数据库,如图11-4所示。
11.3.2启动和停止数据库服务启动和停止MySQL数据库服务的命令比较简单,命令如下:
netstartmysqlshell>
netstopmysql第一条命令用于启动服务,第二条则为停止服务。
11.3.3创建用户一个数据库服务器支持很多用户访问,而这些用户又各自具备不同的数据库访问权限。
在MySQL中有两种增加用户的方法,一是通过使用GRANT(授权)语句,二是通过直接操作MySQL授权表。
比较常用的方法是第一种。
第二种创建用户的方法较繁琐而且易出错,有兴趣的读者可以参考MySQL附带的帮助文件。
创建用户必须使用root用户连接数据库。
选择【开始→运行】,在打开的对话框里输入“cmd”,进入命令界面。
mysqlhlocalhosturootpEnterpassword:
adminmysql>
grantallprivilegeson*.*touser1@”localhost”->
identifiedby‘user1’;
mysql>
grantallprivilegeson*.*touser1@"
%"
->
grantreloadprocesson*.*touser2@localhost->
identifiedby‘user2’;
上述GRANT语句新建了两个用户。
(1)用户user1是一个可以从任何地方连接服务器的超级用户,密码设置为user1。
(2)用户user2是可以从localhost连接服务器并且被授予reload和process管理权限的用户。
有了这两个权限,用户可以执行mysqladminreload、mysqladminrefresh和mysqladminflush-*等命令,但是没有对数据库操作的权限。
11.3.4修改密码修改用户密码也有两种方法。
一种是直接修改数据库服务器中mysql数据库的表user,此表用来存储与用户相关的信息,如用户登录的主机名、用户名,密码等。
示例如下:
usemysqlmysql>
updateuserSETpassword=password(“admin1”)whereuser='
root'
andhost='
localhost'
;
flushpriviledges;
另一种方法就是使用setpassword语句,示例如下:
setpasswordforroot@localhost=password(“admin1”);
11.3.5创建数据库在创建数据库之前,可以先用showdatabases命令查看一下服务器中可用的数据库。
showdatabases执行完此命令后,可以看到两个默认存在的数据库mysql和test,其中mysql用来保存系统数据,test用来进行测试,如图11-5所示。
下面来建立自己的数据库,创建数据库使用如下命令:
dropdatabaseifexistsstudentinfo;
createdatabasestudentinfo;
在创建数据库之前必须保证没有与所创建数据库同名的数据库,如果存在,需要用drop命令删掉,第一行命令就做了上述判断。
数据库创建完成以后,再用showdatabases命令查看,可以看到服务器中多了一个数据库studentinfo,如图11-6所示。
11.3.6创建表数据库建好以后,就可以为数据库创建表了。
创建表的步骤如下。
(1)使用数据库studentinfo,键入如下命令:
usestudentinfo;
(2)创建表之前先判断此表是否存在,如果存在,删除重建。
假设建立一个名为student的表,命令如下;
droptableifexistsstudent;
(3)创建名为student的表。
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,"
);
上述插入操作必须一条一条进行,如果要插入大量数据,要写很多条类似的insert语句,比较繁琐。
MySQL支持另外一种数据插入方式,使用loaddatainfile语句可以将一个文本文件中的数据高速读入一个表中。
如果指定了local关键字,则表示从客户机读文件;
如果local没指定,文件必须位于服务器上。
当在服务器主机上寻找文件时,服务器使用下列规则。
(1)如果给出一个绝对路径名,服务器使用该路径名。
(2)如果给出一个相对路径名,服务器相对服务器的数据目录搜索文件。
(3)如果只给出一个文件名,服务器在当前数据库的数据库目录寻找文件。
为了从文件中读取数据,首先把要插入的数据写入一个文件中。
如果在student表中插入数据,可以创建一个文本文件“student.txt”,每行包含一条记录,用定位符(Tab)把值分开,并且以createtable语句中列出的列次序给出。
比如在文本文件中写入如下内容:
1lixiongying98
2leijianbing603zhaodongchu894limingliang995wanghanling786lingyuchun88保存文件后,将文件放到数据库安装路径下data文件夹下的studentinfo文件夹中,键入如下命令:
loaddatainfile"
student.txt"
intotablestudent;
执行完以后,键入命令“mysql>
select*fromstudent;
”(此命令为查询命令,下一节将讲到),表中出现了文件中的6行数据,如图11-8所示。
11.3.8查询操作利用上一节介绍的数据插入方法,向数据库studentinfo的表student中插入如下几条记录:
98);
insertintostudentvalues(2,"
jiangshan"
79);
insertintostudentvalues(3,"
wangjiawu"
100);
insertintostudentvalues(4,"
xingweiqi"
89);
insertintostudentvalues(5,"
lingsheng"
61);
记录插入完以后就可以对数据库进行查询操作了,查询数据库中所有信息的命令如下:
键入上述命令,MySQL数据库会显示查询结果,如图11-9所示。
除了查询全部信息,常用的查询命令还有条件查询,如查询id为3的学的信息。
select*fromstudentwhereid=3;
查询数据库中所有学的姓名。
selectnamefromstudent;
以上两条命令的执行结果如图11-10所示。
11.3.9删除与修改操作除了插入和查询,还可以对数据库中的记录进行删除和修改。
(1)记录的删除操作。
要从表中删除一条记录,不仅要指定删除记录的表的名字,还要指出删除哪条记录,可以在命令中用where指定。
比如使用如下命令从student表中删除数学成绩为“61”的学记录。
deletefromstudentwheremath=61;
执行完上述命令后再执行查询操作,发现数学成绩为“61”的学记录被删除了,如图11-11所示。
使用如下命令可以完成对表中所有数据的删除操作:
deletefromstudent;
(2)记录的修改操作。
要修改数据库表中的一条记录,比如将名为“jiangshan”学的数学成绩修改为“85”,可以使用如下命令:
updatestudentsetmath=85wherename=”jiangshan”;
修改完,键入查询命令“select*fromstudent”,发现名为“jiangshan”的记录项已经修改,如图11-12所示。
不仅可以修改单条记录,还可以同时修改整个表的数据,比如将所有学的“math”即数学成绩都减1,命令如下:
updatestudentsetmath=math-1;
执行完命令后查询,结果如图11-13所示。
11.3.10修改表结构表创建完成以后,仍可以对表的结构进行更改,如加属性、修改属性的数据类型和默认值等。
(1)为表student增加一列english。
使用如下命令:
altertablestudentadd(englishintnotnulldefault60);
(2)修改列name的数据类型。
altertablestudentmodifynamevarchar(30)notnull;
(3)修改列engliah的默认值。
altertablestudentalterenglishsetdefault100;
(4)删除english的默认值。
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