版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、11 eclipse 的数据库开发 应用程序的开发少不了数据库,很多应用程序都包括了对数据库数据的检索、更新、插入和删除等操作。因此,一个简单易用并且功能强大的数据库管理系统就成为应用软件开发不可或缺的一部分。mysql是一个多用户、多线程并且能够支持多平台的数据库服务器。由于它是免费的数据库,便成为开发基于数据库的 用软件的不错选择。 本章将介绍如何在eclipse 环境下使用mysql,主要包括mysql 数据库的安装与配置, mysql 数据库基本操作命令的使用,使用jdbc 访问数据库,如何使用quantum 插件连接数据库和对数据库进行操作。11.1 mysql 简介 mysql 是
2、一个精巧的sql 数据库管理系统,以操作简便著称。由于其强大的功能、丰富的应用编程接口以及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛 用。 作为一个完全免费的数据库,mysql 可以自由地用于个人和商业而不必支付任何费用。作为一个数据库管理系统,mysql 是客户机/服务器模式的分布式系统,由sql 服务器、客户端、管理工具和应用编程接口等一整套工具组成。它的平台无关性优点使其能在多个操作系统上运行,其中包括unix、linux 、solaris、sunos 、freebsd、bsdi、sgiirix 和aix 等。此外,mysql 还是多线程的,不仅具有运行速度快,可处理大批
3、量数据等特点,还支持多cpu 使用。 11.2 mysql 的安装与配置 mysql 可以运行于多种操作系统平台,其在不同操作系统下的安装配置方法也不尽相同。本节主要介绍windows 操作系统下安装配置mysql 的过程。 11.2.1 安装mysql mysql 的安装步骤如下。 (1)由于mysql 是免费的,可以从mysql 的官方网站自由获取数据库的安装文件,下载的url 为 。mysql 目前发布的最高版本是mysql5.0 ,此处使用官方站点推荐的版本 mysql-4.1.13a 。从一系列发布版本中找到用于windows 的版本mysql-4.1.13a-win32,这里有两个
4、发布压缩包,一个是安装版本,一个是非安装(without installer)版本,选择安装版本并下载。 (2)将下载的压缩包解压,找到其中的setup.exe ,双击开始安装。可将mysql 数据库安装在f:mysqlmysql server 4.1 目录下。基本上是一路next ,除了选择自定义安装改变一下默认路径。 11.2.2 配置mysql mysql 的配置步骤如下。 (1)数据库安装好以后复选框“configure the mysql server now”默认处于选中状态,如果此时点击【finish】按钮,会弹出用于对mysql 服务器进行配置的“mysql server in
5、stanceconfiguration wizard ”对话框,如图11-1 所示。 (2)点击【next 】按钮,在出现的对话框里选择“standard configuration”。继续点击【next 】 按钮,出现如图11-2 所示画面。将复选框“include bin directory in windows path ”勾选, 这样就可以从命令行对数据库进行操作了。 按照这种方法配置path 环境变量,省去了自己将mysql 数据库的bin 目录 注意 加入到path 中的诸多麻烦。当然,“mysql server instance configuration wizard” 复选框
6、可以不选中,这样要手动配置path 环境变量。 (3)点击【next 】按钮,在出现的对话框中设置root 用户的初始密码,密码设为“admin”。 如图11-3 所示。设好密码后点击【next 】,在出现的对话框中点击【execute 】按钮,开始配 置mysql 服务器。配置完成后,点击【finish】关闭配置向导。 11.3 mysql 的基本操作命令 mysql 数据库的操作界面为命令行界面,可以选择 【开始mysqlmysql server 4.1 mysql command line client 】打开数据库自带的客户端shell 对数据库进行数据的插入、删 除、修改、查询等操作
7、。由于上一节已经配置好path 环境变量,也可以进入windows 的命令 行界面对数据库进行操作。本节主要介绍一些基本的数据库操作命令。 11.3.1 登录数据库 登录数据库使用如下命令: shell> mysql h hostname -u username p enter password:* 其中hostname 为mysql 的服务器名或服务器的ip ,username 为用户名 ,*为用户密码 。举例如下: shell>mysql h localhost u root p enter password admin 如果用户名和密码正确,就会成功登录数据库,如图11-4
8、所示。 11.3.2 启动和停止数据库服务 启动和停止mysql 数据库服务的命令比较简单,命令如下: shell>net start mysql shell>net stop mysql 第一条命令用于启动服务,第二条则为停止服务。 11.3.3 创建用户 一个数据库服务器支持很多用户访问,而这些用户又各自具备不同的数据库访问权限。 在mysql 中有两种增加用户的方法,一是通过使用grant (授权)语句,二是通过直接操作mysql 授权表。比较常用的方法是第一种。第二种创建用户的方法较繁琐而且易出错,有兴趣的读者可以参考mysql 附带的帮助文件。创建用户必须使用root 用
9、户连接数据库。 选择 【开始运行】,在打开的对话框里输入 “cmd ”,进入命令界面。 shell> mysql h localhost u root p enter password:admin mysql> grant all privileges on *.* to user1”localhost” ->identified by user1; mysql> grant all privileges on *.* to user1"%" ->identified by user1; mysql> grant reload proce
10、ss on *.* to user2localhost ->identified by user2; 上述grant 语句新建了两个用户。 (1)用户user1 是一个可以从任何地方连接服务器的超级用户,密码设置为user1 。 (2)用户user2 是可以从localhost 连接服务器并且被授予reload 和process 管理权限的用户。 有了这两个权限,用户可以执行mysqladmin reload、mysqladmin refresh 和mysqladminflush-*等命令,但是没有对数据库操作的权限。 11.3.4 修改密码 修改用户密码也有两种方法。一种是直接修改数据
11、库服务器中 mysql 数据库的表user ,此表用来存储与用户相关的信息,如用户登录的主机名、用户名,密码等。示例如下: shell> mysql h localhost u root p enter password:admin mysql>use mysql mysql>update user set password=password(“admin1”) where user='root' and host='localhost' mysql>flush priviledges; 另一种方法就是使用set password 语句,
12、示例如下: mysql> set password for rootlocalhost =password(“admin1”); 11.3.5 创建数据库 在创建数据库之前,可以先用show databases 命令查看一下服务器中可用的数据库。 mysql>show databases 执行完此命令后,可以看到两个默认存在的数据库mysql 和test,其中 mysql 用来保存系统数据,test 用来进行测试,如图11-5 所示。 下面来建立自己的数据库,创建数据库使用如下命令: mysql> drop database if exists studentinfo; my
13、sql> create database studentinfo; 在创建数据库之前必须保证没有与所创建数据库同名的数据库,如果存在,需要用drop命令删掉,第一行命令就做了上述判断。数据库创建完成以后,再用show databases 命令查看,可以看到服务器中多了一个数据库studentinfo,如图11-6 所示。 11.3.6 创建表 数据库建好以后,就可以为数据库创建表了。创建表的步骤如下。 (1)使用数据库studentinfo,键入如下命令: mysql>use studentinfo; (2)创建表之前先判断此表是否存在,如果存在,删除重建。假设建立一个名为stud
14、ent的表,命令如下; mysql>drop table if exists student; (3)创建名为student 的表。 mysql>create table student ( ->id int not null auto_increment, ->name varchar (20) not null default 'name', ->math int not null default 60, ->primary key (id); 表中有3 个属性,学号 “id”、姓名“name ”和数学成绩 “math ”,其中 “id”
15、属性作为 表的主键。 (4)表创建完成以后,可以通过命令desc student 来查看表的具体描述,如图11-7 所示。 mysql>desc stuent; 11.3.7 插入操作 表建立好以后,就可以向表中插入数据了。插入数据使用如下命令: myaql>insert into student values(1,"liyinglin",98); 上面的语句为每一条属性都指定了一个值,也可以为某些特定的属性插入值,其余保留默认值,举例如下: mysql>insert into student (id,name) values(1,"liying
16、lin"); 上述插入操作必须一条一条进行,如果要插入大量数据,要写很多条类似的insert 语句,比较繁琐。mysql 支持另外一种数据插入方式,使用load data infile 语句可以将一个文本文件中的数据高速读入一个表中。如果指定了local 关键字,则表示从客户机读文件;如果local没指定,文件必须位于服务器上。 当在服务器主机上寻找文件时,服务器使用下列规则。 (1)如果给出一个绝对路径名,服务器使用该路径名。 (2)如果给出一个相对路径名,服务器相对服务器的数据目录搜索文件。 (3)如果只给出一个文件名,服务器在当前数据库的数据库目录寻找文件。 为了从文件中读取数
17、据,首先把要插入的数据写入一个文件中。如果在student 表中插入数据,可以创建一个文本文件“student.txt ”,每行包含一条记录,用定位符 (tab)把值分开,并且以create table 语句中列出的列次序给出。比如在文本文件中写入如下内容: 1 lixiongying 98 2 leijianbing 60 3 zhaodongchu 89 4 limingliang 99 5 wanghanling 78 6 lingyuchun 88 保存文件后,将文件放到数据库安装路径下data 文件夹下的studentinfo 文件夹中,键入如下命令: mysql>load d
18、ata infile "student.txt" into table student; 执行完以后,键入命令 “mysql>select * from student; ”(此命令为查询命令,下一节将讲到),表中出现了文件中的6 行数据,如图11-8 所示。 11.3.8 查询操作 利用上一节介绍的数据插入方法,向数据库studentinfo 的表student 中插入如下几条记录: myaql>insert into student values(1,"liyinglin",98); myaql>insert into studen
19、t values(2,"jiangshan",79); myaql>insert into student values(3,"wangjiawu",100); myaql>insert into student values(4,"xingweiqi",89); myaql>insert into student values(5,"lingsheng",61); 记录插入完以后就可以对数据库进行查询操作了,查询数据库中所有信息的命令如下: mysql>select * from stud
20、ent; 键入上述命令,mysql 数据库会显示查询结果,如图11-9 所示。 除了查询全部信息,常用的查询命令还有条件查询,如查询id 为3 的学 的信息。 mysql>select * from student where id=3; 查询数据库中所有学 的姓名。 mysql>select name from student; 以上两条命令的执行结果如图11- 10 所示。 11.3.9 删除与修改操作 除了插入和查询,还可以对数据库中的记录进行删除和修改。 (1)记录的删除操作。要从表中删除一条记录,不仅要指定删除记录的表的名字,还要指出删除哪条记录,可以在命令中用where
21、 指定。比如使用如下命令从student 表中删除数学成绩为 “61”的学 记录。 mysql>delete from student where math=61; 执行完上述命令后再执行查询操作,发现数学成绩为 “61 ”的学 记录被删除了,如图11- 11 所示。 使用如下命令可以完成对表中所有数据的删除操作: mysql>delete from student; (2)记录的修改操作。要修改数据库表中的一条记录,比如将名为 “ji angshan”学 的 数学成绩修改为 “85”,可以使用如下命令: mysql>update student set math=85 wh
22、ere name=”jiangshan”; 修改完,键入查询命令“select * from student ”,发现名为“ji angshan”的记录项已经修 改,如图11-12 所示。 不仅可以修改单条记录,还可以同时修改整个表的数据,比如将所有学 的“math ”即数学成绩都减1,命令如下: mysql>update student set math=math-1; 执行完命令后查询,结果如图11- 13 所示。 11.3.10 修改表结构 表创建完成以后,仍可以对表的结构进行更改,如 加属性、修改属性的数据类型和默 认值等。 (1)为表student 增加一列english。使用
23、如下命令: mysql>alter table student add (english int not null default 60); (2)修改列name 的数据类型。使用如下命令: mysql>alter table student modify name varchar(30) not null; (3)修改列engliah 的默认值。使用如下命令: mysql>alter table student alter english set default 100; (4)删除english 的默认值。使用如下命令: mysql>alter table stud
24、ent alter english drop default; 11.4 使用mysql administrator 管理数据库 可能有人不习惯mysql 数据库的命令行操作方式,更喜欢可视化操作界面。低版本的mysql 提供了一个可视化的小工具winmysqladmin.exe ,此工具在数据库安装路径的bin目录下。可能是开发者觉得用处不大,在高版本中这个工具就不提供了,读者可以在 4.0 版本中找到。此外,还可以使用其他工具,如mysql administrator 管理数据库,该工具对数据库建立和维护提供了友好的可视化操作界面。 mysql administrator 可以在 mysq
25、l 的官方网站下载,地址是 /download/index.html 。目前推荐的稳定版本是1.0。 下面简述一下安装过程。从上述 url下载安装文件到本地机器上,文件名为 mysql- administrator- 1.1.1-rc-win.msi。由于是windows 版本的安装文件,一路next , 好改一下默认安装路径,把它和mysql 数据库安装在同一目录下,这样方便管理。 下面简单看一下mysql administrater 的使用。 (1)安装好以后,选择 【开始所有程序mysql mysql administrater 】,启动 administrater,如图11- 14 所
26、示。 (2)在 “server host”一栏填上localhost,端口默认为3306,在“username ”一栏填上用户名“root ”,在“password ”一栏填上root 用户的密码“admin”。点击【ok 】按钮,出现如图11- 15 所示界面。 (3)点击左边窗口的“catalogs ”选项,下面的窗口中出现了服务器中现有的3 个数据库,其中studentinfo 是前面用命令建立的数据库,其余都是系统自带的。选中studentinfo 数据库,在右边窗口中列出了此数据库中所有的表,如图11- 16 所示。 (4)选中表student 并且双击,就会出现表的编辑器,可以在此
27、编辑器中方便地更改表的 结构,比如修改属性类型,添加属性值,删除属性值等操作。修改完成以后只需点击【apply changes 】按钮应用这些变化即可。如图11- 17 所示即为编辑表结构的界面。 (5)在图11-16 所示的界面中点击【create table 】按钮还可以方便地创建表。 mysql administrater 的功能比较多,难以一一详细介绍,有兴趣的读者可以阅读该工具 的帮助文档。 11.5 jdbc 简介 使用java 语言编写基于数据库的应用程序少不了jdbc ,本节就来介绍jdbc 的基础知识以及如何使用jdbc 连接数据库。 11.5.1 jdbc 的概念 jdbc
28、 (java database connectivity)称为java 数据库连接,它是一种用于数据库访问的应用程序api,由一组用java 语言编写的类和接口组成。有了jdbc ,就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。换言之,有了 jdbc ,就不必为访问mysql 数据库专门写一个程序,为访问oracle 数据库又专门写一个程序,只需一个数据库访问程序,就可以实现对各种不同数据库的访问,这充分体现了java 语言的平台无关性。 jdbc 提供了一组类和接口用于对数据库的访问,用jdbc 访问数据库要经过以下几个步骤。首先要打开数据库连接,接着执行sq
29、l 语句以便对数据库进行各种操作,然后执行查询操作从数据库返回的结果,最后关闭数据库连接。 jdbc api 不仅支持数据库访问的两层模型,同时也支持三层模型。所谓两层模型,就是应用程序通过jdbc 驱动程序直接与所访问的数据库管理系统进行通信。而在三层模型中,命令先是被发送到服务的 “中间层”,sql 语句由中间层负责发送给数据库,数据库将处理结果通过中间层送回给用户。三层模型的优点在于用户可以使用易用的高级 api,相应的低级调用的转换由中间层来完成。 11.5.2 常用的jdbc 类与方法 1drivermanager 类 drivermanager 类用于管理jdbc 驱动程序。在使用
30、jdbc 驱动程序之前,必须先将驱动程序加载并向drivermanager 注册后才可以使用,drivermanager 类不仅提供了注册jdbc 驱动的方法,同时也提供与数据库建立连接的方法。drivermanager 类提供的主要方法如下。 (1)class.forname(string driver) :用于加载注册驱动程序。 (2)static connection getconnection(string url,string user,string password) throws sql- exception:用来取得对数据库的连接。 (3)static driver getdr
31、iver (string url)throws sqlexcetion:用于在已经向drivermanager注册的驱动程序中寻找一个能够打开url 所指定的数据库的驱动程序。 2connection 类 connection 类用于维护java 数据库 用程序和数据库之间的连接。它的方法比较多,主要方法如下。 (1)statement createstatement() throws sqlexception :用于创建statement 类对象。 (2)databasemetadata getmetadata() throws sqlexception:用于创建databasemetada
32、ta类对象。 (3)preparedstatement preparestatement(string sql) throws sqlexception :用于创建preparedstatement 类对象。 (4)boolean getautocommit() throws sqlexception :用于返回 connection 类对象的autocommit 状态。 (5)void setautocommit(boolean autocommit) throws sqlexception:用于设定connection类对象的autocommit 状态。 (6)void commit()
33、throws sqlexception:确定执行对数据库新 、删除或修改记录的操作。 (7)void rollback() throws sqlexception:取消执行对数据库新 、删除或修改记录的操作。 (8)void close() throws sqlexception:关闭connection 对象与数据库的连接。 (9)boolean isclosed() throws sqlexception:用于测试是否已经关闭了和数据库的连接。 3statement 类 通过statement 类所提供的方法,可以执行标准的sql 语句,用来完成对数据库插入、删除或修改等操作。 (1)re
34、sultset executequery(string sql) throws sqlexception:使用select 命令对数据库进行查询,sql 语句作为字符串参数传递给此方法。 (2)int executeupdate(string sql) throws sqlexception :使用insert 、delete 、update 命令对数据库进行插入、删除和修改操作,参数传递方法同上。 (3)void close() throws sqlexception:关闭statement 类对象和数据库的连接。 4databasemetadata 类 databasemetadata 类
35、保存了数据库的所有属性,并且提供了获取这些属性信息的方法。 (1)string getdatabaseproductname() throws sqlexception:用于取得数据库名称。 (2)string getdatabaseproductversion() throws sqlexception:用于取得数据库版本。 (3)string getdrivername() throws sqlexception:用于取得jdbc 驱动程序的名称。 (4)string getdriverversion() throws sqlexception:用于取得jdbc 驱动程序的版本。 (5)s
36、tring geturl() throws sqlexception:用于取得连接数据库的jdbc url 。 (6)string getusername() throws sqlexception:用于取得登录数据库的使用者帐号。 5resultset 类 resultset 类负责存储数据库查询的结果。同时,它还提供一些方法对数据库进行随机插入、删除和修改操作,这种随机性是通过它维护的一个记录指针 (cursor)的适当移动来实现的。 (1)boolean absolute(int row) throws sqlexception:移动记录指针到指定的记录。 (2)boolean firs
37、t() throws sqlexception:移动记录指针到第一条记录。 (3)boolean last() throws sqlexception:移动记录指针到最后一条记录。 (4)boolean next() throws sqlexception:移动记录指针到下一条记录。 (5)boolean previous() throws sqlexception:移动记录指针到前一条记录。 (6)void deleterow() throws sqlexception:删除记录指针指向的记录。 (7)void movetoinsertrow() throws sqlexception:移动
38、记录指针以便新 一条记录。 (8)void movetocurrentrow() throws sqlexception:移动记录指针至当前记录。 (9)void insertrow() throws sqlexception:新 一条记录到数据库中。 (10)void updaterow() throws sqlexception:修改数据库中的一条记录 (11)void updatexxx(int columnindex,xxx x) throws sqlexception:修改数据库中指定字段的值。 (12)int getxxx(int columnindex) throws sqlex
39、ception:取得数据库中指定字段的值。 11.5.3 jdbc 驱动程序的类型 jdbc 的数据库访问要通过jdbc 驱动程序来完成,jdbc 驱动程序在java应用程序与物理数据库之间架起了一座桥梁。 jdbc 驱动分为以下几种类型。 (1)jdbc-odbc 桥接驱动程序。这类驱动程序负责将jdbc 转换为odbc ,然后通过jdbc-odbc 的方法调用odbc 驱动程序来存取数据库。以下为此类驱动程序访问数据库的简单流程:应用程序jdbc-odbc 桥jdbc-odbc 库odbc 驱动数据库。 (2)jdbc-原始数据库api 驱动程序。这类驱动程序部分采用java 语言编写,部
40、分采用本地代码编写。这种jdbc 驱动会将客户机的jdbc 调用转换为对特定数据库驱动程序的调用,进而存取数据库,因此必须先在客户机上安装好特定的数据库的数据访问驱动库才能使用。以下为此类驱动程序访问数据库的简单流程: 用程序jdbc驱动原始数据库访问驱动库数据库。 (3)jdbc- 中间层驱动程序。这种类型的驱动程序把客户端的jdbc 调用转换为一种独立于特定数据库的协议,然后将数据库访问请 传输给服务器组件,最后该服务器组件将访问请 转换为特定数据库的协议。这类型的驱动程序 大的优点就是无需在客户机上安装任何驱动程序,只需在服务器端安装好中间件,而中间件会处理所有存取数据库所要做的转换。
41、以下为此类驱动程序访问数据库的简单流程:应用程序jdbc 驱动java 中间件jdbc 驱动数据库。 (4)纯jdbc 驱动程序。这种类型的驱动程序是 成熟的jdbc 驱动程序,不需要在客户机上 装任何额外的驱动程序,也不需要在服务器端安装任何中间件。客户端的jdbc 请可以直接转换成特定数据库的协议,所有存取数据库的操作,都直接由驱动程序来完成。以下为此类驱动程序访问数据库的简单流程: 用程序jdbc 驱动数据库引擎数据库。 11.5.4 使用jdbc 连接数据库的过程 使用jdbc 连接数据库的步骤如下。 (1)首先要在应用程序中加载jdbc 驱动程序。通常使用class.forname(
42、)方法加载,需要注意的一点就是要设好类路径classpath,确保jdbc 驱动在类路径中。不同的数据库加载驱动程序的方法不尽相同,下面列出了几种常见的数据库驱动程序的加载方法: oracle 数据库驱动程序的加载方法: class.forname ("oracle.jdbc.driver.oracledriver"); db2 数据库驱动程序的加载方法: class.forname ("com .ibm .db2.jdbc.app.db2driver "); sql server 2000 数据库驱动程序的加载方法: class.forname (&q
43、uot;com .microsoft.jdbc.sqlserver.sqlserverdriver"); sybase 数据库驱动程序的加载方法: class.forname ("com .sybase.jdbc.sybdriver"); informix 数据库驱动程序的加载方法: class.forname ("com .informix.jdbc.ifxdriver"); mysql 数据库驱动程序的加载方法: class.forname ("org.gjt.mm.mysql.driver"); (2)成功加载jdbc
44、 驱动程序后,负责管理jdbc 驱动程序的类drivermanager 会识别加载的驱动程序。接着要用drivermanager 的方法getconnection()来创建一个数据库连接类的实例。该方法以一个数据库的 string类型的 url为参数,返回一个连接数据库的接口类connection。以下是与几种常见数据库建立连接的方法。 与oracle 数据库建立连接的方法: string url="jdbc:oracle:thin:localhost:1521:orcl"/orcl 为数据库的sid string user="test" string
45、password="test" connection con= drivermanager.getconnection (url,user,password); 与db2 数据库建立连接的方法: string url="jdbc:db2:/localhost:5000/sample" /sample 为数据库名 string user="admin" string password="" connection con= drivermanager.getconnection (url,user,password);
46、 与sql server 2000 数据库建立连接的方法: string url="jdbc:microsoft:sqlserver:/localhost:1433;databasename=mydb" /mydb 为数据库名 string user="sa" string password="" connection con= drivermanager.getconnection (url,user,password); 与sybase 数据库建立连接的方法: string url ="jdbc:sybase:tds:l
47、ocalhost:5007/mydb"/mydb 为数据库名 properties sysprops = system .getproperties(); sysprops.put ("user","userid"); sysprops.put ("password", "user_password"); connection con= drivermanager.getconnection (url, sysprops); 与mysql 数据库建立连接的方法: string url ="jdb
48、c:mysql:/localhost/mydb"/mydb 为数据库名 string user="root" string password="admin" connection con= drivermanager.getconnection (url,user,password); (3)获取connection 对象以后,可以用connection 对象的方法创建一个statement 对象的实例。statement 对象可以执行标准的sql 语句,用来完成对数据库插入、删除或修改等操作,还可以使用statement 对象的方法来创建表。
49、举例如下: /con 为一个connection 对象的实例,用con 的方法创建一个statement 对象的实例 statement sql = con.createstatement (); /执行了sql语句 成了一个名为student 的表 sql.executeupdate ("create table student (id int not null auto_increment,name varchar(20) not null default 'name',math int not null default 60,primary key (id);
50、"); /向表中插入数据 sql.executeupdate ("insert student values(1,'liyinglin',98)"); 表中有数据以后,可以用 statement对象执行一个查询,查询的结果可以通过一个resultset 对象返回。举例如下: /执行查询数据库的sql 语句 string query = "select * from student" /返回一个结果集 resultset result = sql.executequery (query); (4)返回的结果及对象resultset
51、 包含一些用来从结果集中获取数据并保存到java 变量中的方法。利用此方法可以将查询所得的数据保存到变量中,以便以某种格式输出给用户。 (5)使用与数据库相关的对象非常耗内存,因此在完成数据库访问后要关闭与数据库的连接,同时还 该关闭statement 对象。两个对象可以分别使用关闭连接的方法close。 11.6 简单的数据库查询实例 有了上述介绍,相信读者能够对于使用 java开发基于数据库的应用程序,尤其是使用jdbc 连接数据库的过程有了大致的了解。本节将通过一个简单的例子介绍在eclipse 中开发基于数据库的应用程序的过程。本例中数据库使用前面介绍的mysql 数据库。 (1)在e
52、clipse 中建立一个名为“chapter 11”的新项目,在项目里创建一个名为databasetest的类,向类中加入如下代码。 【实例11-1 】类databasetest (databasetest.java) package com.example.eclipse.java1; import java.sql.*; public class databasetest public static connection getconnection () throws sqlexception, java.lang.classnotfoundexception /取得连接的url stri
53、ng url = "jdbc:mysql:/localhost:3306/studentinfo" /加载mysql 的jdbc 驱动 class.forname ("com.mysql.jdbc.driver"); /使用能访问mysql数据库的用户名root string username = "root" /使用口令 string password = "admin" /打开数据库连接 connection con = drivermanager.getconnection (url, username, p
54、assword); return con; public static void main (string args) try /取得数据库的连接 connection con = getconnection (); /创建一个声明,用来执行sql 语句 statement sql = con.createstatement(); /如果同名数据库存在,删除掉 sql.executeupdate ("drop table if exists student"); /执行了一个sql 语句 成了一个名为student 的表 sql.executeupdate("cr
55、eatetable student (idintnotnull auto_increment, name varchar (20) not null default 'name',math int not null default 60,primary key (id); "); /向表中插入数据 sql.executeupdate ("insert student values(1,'liyinglin',98)"); sql.executeupdate ("insert student values(2,'ji
56、angshan',79)"); sql.executeupdate ("insert student values(3,'wangjiawu',100)"); sql.executeupdate ("insert student values(4,'xingweiqi',89)"); sql.executeupdate ("insert student values(5,'lingsheng',61)"); /执行查询数据库的sql语句 string query = &
57、quot;select * from student" /返回一个结果集 resultset result = sql.executequery(query); system.out.println ("student表中的数据如下:"); /使用了一个while循环打印出了student表中的所有的数据 system.out.println ("-"); system.out.println ("学号 " + " " + "姓名" + " " + "数学成绩"); system.out.pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药用甘草项目营销计划书
- 肚脐穿孔器械项目运营指导方案
- 空贵金属制粉饼盒细分市场深度研究报告
- 自行车曲柄市场发展前景分析及供需格局研究预测报告
- 医用抗真菌霜产品供应链分析
- 成比例的模型车产品供应链分析
- 尿素合成塔产业链招商引资的调研报告
- 家用电净水器产品供应链分析
- 牛奶均质机项目营销计划书
- 冰球守门员用保护垫产品供应链分析
- 英语书写标准三线格可A4纸双面打印
- 《基础会计学》教案(共70页)
- 自己编制的表格-两孔箱涵(结构、配筋、裂缝、基底应力)箱涵结构计算(恒载+活载)
- 小型雕刻机结构设计说明书
- 小流量多头泵中文说明书C
- 最高法裁定:已付全款但尚未过户的商品房可以对抗该房抵押权
- 管理经济学计算题及参考答案(已分类整理)
- 自喷漆(环氧乙烷)化学品安全技术说明书(MSDS)
- 全省各市及县(市)城镇土地使用税地段等级划分及税额标准
- cpk原始数据生成器
- 金属的磷酸盐转化膜
评论
0/150
提交评论