《第7章 在JSP中使用数据库.ppt》由会员分享,可在线阅读,更多相关《第7章 在JSP中使用数据库.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、12022/12/27第7章 在在JSP中使用数据库中使用数据库 本章导读本章导读1.知知识识点点:掌掌握握怎怎样样在在JSP中中使使用用JDBC实实现现数数据据库库的的连连接接、查查询询、修修改等操作改等操作。2.重点:重点:掌握连接数据库的常用方式:掌握连接数据库的常用方式:JDBC-ODBC桥接器方式和加载桥接器方式和加载Java数数据库驱动程序方式。据库驱动程序方式。4.关关键实键实践:践:编写编写JSP页面,使用页面,使用JavaBean实现数实现数据库表的分页查询据库表的分页查询。3.难难点:点:怎样实现数据库表的分页查询怎样实现数据库表的分页查询。7.2 JDBC JDBC 7.
2、3数据库连接的常用方式数据库连接的常用方式 7.4查询操作查询操作 7.5更新、添加与删除操作更新、添加与删除操作 7.6使用预处理语句使用预处理语句 7.7基于基于CachedRowSetCachedRowSet分分 页显示记录页显示记录 7.8 常见数据库的连接常见数据库的连接 7.1 SQL Server 2000数数据库管理系统据库管理系统 22022/12/27 Web应用程序最常用的数据管理方式就是使用数据库,数据库已经成为Web程序开发的一个重要组成部分。本章将学习在JSP中怎样使用数据库。本章大部分例子采用的模式是JSP+JavaBean模式,即JSP页面调用bean来完成对数
3、据库的操作,如图7.1所示。为了便于教学,我们使用的数据库管理系统是SQL Server 2000。概述概述 32022/12/277.1 SQL Server 2000SQL Server 2000数据数据库库管理系管理系统统 SQL Server 2000是一个网络数据库管理系统,也简称为数据库服务器。1.启动SQL Server 2000 为了能让Tomcat服务器上的Web应用程序访问SQL Server 2000管理的数据库,必须启动SQL Server 2000提供的数据库服务器。如果已经安装SQL Server 2000,可以用如下方式启动SQL Server 2000提供的数据
4、库服务器:“开始”“程序”“Microsoft SQL Server”“服务器管理器”,出现如图7.2所示的窗口。42022/12/27 2.2.建立数据库建立数据库 打开“企业管理器”,出现如图所示7.3界面。“数据库”目录下是已有的数据库的名称,右键单击“数据库”可以建立新的数据库,我们新建立的数据库名称是“Student”。52022/12/27 3.3.创建表创建表 在数据库Student中创建名字为score的表。打开“企业管理器”,选择“数据库”下的Student,在Student管理的“表”的选项上单击右键,创建新的用户表:score。score表的字段(属性)为:学号(char
5、),姓名(char),数学成绩(float),物理成绩(float),英语成绩(float)其中,“学号”字段为主键,如图7.4和图7.5所示。62022/12/277.2 JDBC JDBC JDBC(Java DataBase Connectivity)是Java数据库连接API,它由一些Java类和接口组成。在JSP中可以使用JDBC实现对数据库中表记录的查询、修改和删除等操作。JDBC技术在JSP开发中占有很重要的地位。我们经常使用JDBC进行如下操作:与一个数据库建立连接 向已连接的数据库发送SQL语句 处理SQL语句返回的结果。使用JDBC时不需要知道底层数据库的细节,JDBC操作
6、不同的数据库仅仅是连接方式上的差异而已。使用JDBC的应用程序一旦与数据库建立连接,就可以使用JDBC提供的API操作数据库,如图7.6所示。72022/12/277.3 数据库连接的常用方式数据库连接的常用方式 应用程序必须首先与数据库建立连接,这也是与数据库交互信息所必须的。本节介绍常用的两种连接方式建建立立JDBC-ODBC桥接器桥接器和加加载纯载纯Java数据数据库驱动库驱动程序程序。82022/12/27 JDBC和数据库建立连接的一种常见方式是建立起一个JDBC-ODBC桥接器。ODBC(Open DataBase Connectivity)驱动程序被广泛的使用,建立这种桥接器后,
7、使得JDBC有能力访问几乎所有类型的数据库。如果使用JDBC-ODBC桥桥接接器器访问数据库,事先必须设置数据源,因为ODBC通过数据源来管理数据,所以必须将某个数据库设置成ODBC的一个数据源,如图如图7.7所示所示。使用JDBC-ODBC桥接器方式与数据库建立连接,需要经过3个步骤:创建ODBC数据源。建立JDBC-ODBC桥接器。和ODBC数据源指定的数据库建立连接。假设应用程序所在的计算机要访问本地或远程的SQL Server 2000服务器上数据库,应用程序所在的计算机负责设置数据源,即将本地或远程的SQL Server服务器上的数据库设置成自己要访问的数据源。7.3.1 JDBC-
8、ODBCJDBC-ODBC桥接器桥接器92022/12/27 图图7.7 ODBC的数据源的数据源 102022/12/27 添加、修改或删除数据源 选择“控制面板”“管理工具”“ODBC数据源”,双击ODBC数据源图标,出现如图7.8所示界面。选择“用户DSN”,就可以完成添加、修改或删除数据源。1.1.创建创建ODBCODBC数据源数据源-112022/12/27 为数据源选择驱动程序 在图7.8所示的界面上选择单击【添加】按钮,出现为新增的数据源选择驱动程序界面(如图7.9所示),因为要访问SQL Server数据库,选择SQL Server,然后单击【完成】按钮。1.1.创建创建ODB
9、CODBC数据源数据源_ _122022/12/27 数据源名称及所在位置 在图7.9所示界面中单击【完成】按钮,将出现设置数据源具体项目的对话框,如图7.10所示。1.1.创建创建ODBCODBC数据源数据源_ _ 在“名称”栏里为数据源起一个自己喜欢的名字,这里起的名字是mymoon。这个数据源就是指若干个数据库。在你想连接哪个SQL Server?栏中选择或输入一个数据库服务器,这里选择网络上的一台机器GXY。然后单击【下一步】按钮。132022/12/27 设置ID与密码 在图7.10所示界面中单击【下一步】按钮,出现设置SQL Server的ID和密码的界面(如图7.11所示),选择
10、“使用用户输入登录标识号和密码的SQL Server验证”选项,这里设置用户名为“sa”、密码为“sa”(安装SQL Server 2000数据库服务器时设置的用户和密码)。然后单击“下一步”按钮。1.1.创建创建ODBCODBC数据源数据源_ _142022/12/27 选择数据库 在图7.12所示界面中选中“更改默认的数据库为”复选框,在其下拉菜单中选择用户sa有权限操作的Student数据库。当然,用户sa还可能有权操作其他数据库,这取决于SQL server 2000的有关设置,这里不再赘述。然后单击【下一步】按钮。1.1.创建创建ODBCODBC数据源数据源_ _152022/12/
11、27 创建数据源 在图7.13所示界面中单击【完成】按钮,就创建了一个新的数据源mymoon。1.1.创建创建ODBCODBC数据源数据源_ _162022/12/27 现在我们有了一个数据源mymoon,这个数据源就是一个数据库Student。为了连接这个数据库,首先要建立一个JDBC-ODBC桥接器:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Class是包java.lang中的一个类,该类通过调用它的静态方法forName加载sun.jdbc.odbc包中的JdbcOdbcDriver类来建立JDBC-ODBC桥接器。建立桥接器时可能发生异常,
12、因此捕获这个异常。所以建立桥接器的标准如下:try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)2.2.建立建立JDBC-ODBCJDBC-ODBC桥接器桥接器 172022/12/27 编写连接数据库代码不会出现数据库的名称,只能出现数据源的名字。先使用java.sql包中的Connection类声明一个对象,然后再使用类DriverManager调用它的静态方法getConnection创建这个连接对象:Connection con=DriverManager.getConnectio
13、n(jdbc:odbc:数据源名字,login name,password);为了能与数据源mymoon交换数据,建立Connection对象如下:Connection con=DriverManager.getConnection(jdbc:odbc:mymoon,sa,sa);建立连接时应捕获SQLException异常:try Connection con=DriverManager.getConnection(jdbc:odbc:mymoon,sa,sa);catch(SQLException e)这样就与数据源mymoon建立了连接。应用程序一旦与某个数据源建立连接,就可以通过SQL
14、语句与该数据源所指定的数据库中的表交互信息,如查询、修改、更新表中的记录。例7-1是一个简单的JSP页面,该页面中的Java程序片代码负责连接到数据源mymoon,查询score表中的全部记录。效果如图7.14所示。3.与与ODBCODBC数据源指定的数据库建立连接数据源指定的数据库建立连接 182022/12/27 例题例题7-1 效果图效果图7.14192022/12/27 用Java语言编写的驱动程序称为纯Java驱动程序。JDBC提供的API通过将纯Java驱动程序转换为DBMS(数据库管理系统)所使用的专用协议来实现和特定的DBMS交互信息,简单地说,JDBC可以调用本地的纯Java
15、驱动程序和相应的数据库建立连接,如图7.15所示。使用纯Java数据库驱动程序方式和数据库建立连接需要经过两个步骤 加载纯Java驱动程序 指定的数据库建立连接。7.3.2 使用纯使用纯JavaJava数据库驱动程序数据库驱动程序 202022/12/27 使用纯Java驱动程序访问数据库不需要设置数据源,由于不依赖于ODBC,使得应用程序具有很好的移植性。目前,许多数据库厂商都提供了自己的相应的纯Java驱动程序。当使用纯Java驱动程序访问数据库时,必须要保证在连接数据库的应用程序所驻留的计算机上安装相应DBMS提供的纯Java驱动程序。可以登录到http:/下载并安装Microsoft公
16、司提供的驱动程序sqljdbc_1.1.1501.101_enu.exe,在安装目录的enu子目录中可以找到驱动程序文件sqljdbc.jar,将该驱动程序复制到Tomcat服 务 器 所 使 用 的 JDK的 文 件 夹 jrelibext中,如D:jdk1.5jrelibext,或复制到Tomcat服务器安装目录的文件夹 commonlib中,如D:apache-tomcat-5.5.20commonlib。应用程序加载SQLServer驱动程序代码如下:try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newI
17、nstance();catch(Exception e)1.1.加载纯加载纯JavaJava驱动程序驱动程序 212022/12/27 假 设 SQL Server数 据 库 服 务 器 所 驻 留 的 计 算 机 的 IP地 址 是192.168.100.1,SQL Server数据库服务器占用的端口是1433。应用程序要与SQL Server数据库服务器管理的数据库Student建立连接,而有权访问数据库Student的用户的id和密码分别是sa、sa,那么建立连接的代码如下:try String uri=jdbc:sqlserver:/192.168.100.1:1433;Databas
18、eName=Student;String user=sa;String password=sa;con=DriverManager.getConnection(uri,user,password);catch(SQLException e)应用程序一旦与某个数据库建立连接,就可以通过SQL语句与该数据库中的表交互信息,如查询、修改、更新表中的记录。注注:如果应用程序要连接SQL Server 2000服务器驻留在同一计算机上,使用的IP地址可以是127.0.0.1 如果应用程序无法与SQL Server 2000服务器建立连接,可能需要更新SQL Server 2000服务器,登录到http:
19、/下载SQL Server 2000的补丁SQLsp4.rar,安装该补丁即可。例 7-2是 一 个 简 单 的 JSP页 面,该 页 面 中 的 Java程 序 片 代 码 负 责 加 载SQLServer2000的Java驱动程序,并连接到数据库Student,查询score表中的数学成绩大于80的全部记录。效果如图7.16所示。2.2.与与指定的数据库建立连接指定的数据库建立连接 222022/12/27 例题例题7-2 效果图效果图7.16232022/12/277.4 查询操作查询操作_ _步骤步骤 1 1 与数据库建立连接后,就可以使用JDBC提供的API和数据库交互信息,如查询、
20、修改和更新数据库中的表等。JDBC与数据库表进行交互的主要方式是使用SQL语句,JDBC提供的API可以将标准的SQL语句发送给数据库,实现与数据库的交互。本书中后续的例子采用的数据库连接方式为JDBC-ODBC桥接器方式和使用纯Java驱动程序方式。使用的数据源的名字为mymoon,数据库为Student。进行查询操作的具体步骤如下:进行查询操作的具体步骤如下:(1 1)向数据库发送)向数据库发送SQLSQL查询语句查询语句 首先使用Statement声明一个SQL语句对象,然后利用7.1节创建的连接对象con调用方法createStatment()创建这个SQL语句对象。try State
21、ment sql=con.createStatement();try Statement sql=con.createStatement();catch(SQLException e)catch(SQLException e)242022/12/277.4 查询操作查询操作_ _步骤步骤 2 2 (2 2)处理查询结果)处理查询结果 有了SQL语句对象后,这个对象就可以调用相应的方法,实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。SQL查询语句对数据库的查询操作将返回一个ResultSet对象。ResultSet对象是以统一形式的列组织的数据行组成。例如
22、对于 ResultSet rs=sql.executeQuery(SELECT*FROM score)ResultSet rs=sql.executeQuery(SELECT*FROM score);内存的结果集对象rs如图图7.177.17(a a)所示。对于 ResultSet rs=sql.executeQuery(SELECT ResultSet rs=sql.executeQuery(SELECT 姓名姓名,物理成绩物理成绩,英语成绩英语成绩 FROM score);FROM score);内存的结果集对象rs如图图7.177.17(b b)所示。ResultSet对象一次只能看到一
23、个数据行,使用next()方法走到下一数据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段值,将位置索引(第一列使用1,第二列使用2,)或字段名传递给getXxx方法的参数即可。表7.1给了出了ResultSet对象的若干方法。252022/12/27 图图7.177.17(a a),图图7.177.17(b b)262022/12/27 表表7.17.1 ResultSetResultSet类的若干方法类的若干方法 注注:无论字段是何种属性,总可以使用getSring()方法返回字段值的串表示;当使用ResultSet的getXxx方法查看一行记录时,不可以颠倒字段
24、的顺序,例如:rs.getFloat(5);/错误错误 rs.getFloat(4);/错误错误272022/12/27 通过使用JDBC提供的API,可以在查询之前知道表中的字段的个数和名字。当和数据库建立连接之后,比如:con=DriverManager.getConnection(jdbc:odbc:mymoon,sa,sa);那么,该连接对象调用getMetaData()方法可以返回一个DatabaseMetaData对象,例如:DatabaseMetaData metadata=con.getMetaData();metadata对象再调用getColumns()可以将score表的
25、字段信息以行列的形式存储在一个ResultSet对象中,例如 ResultSet tableMessage=metadata.getColumns(null,null,score,null);若score表有n个字段,tableMessage就刚好有n行,每行4列。每列分别含有信息的次序为数据库名、数据库扩展名、表名、字段名。score表有5个字段,那么上述tableMessage有5行,每行有4列,如图图7.18所示。tableMessage对象调用next方法使游标向下移动一行(游标的初始位置在第1行之前),然后tableMessage调用getXxx方法可以查看该行中列的信息,其中最重要
26、的信息是第4列,,该列上的信息为字段的名字。例例7-3中有两个bean,其中一个使用JDBC-ODBC桥接器方式连接数据库、查询表,另一个使用加载纯Java数据库驱动程序方式连接数据库、查询表。用户可以通过JSP页面main.jsp提供的表单输入数据库(数据源)以及表的名字。JSP页面inquireOne.jsp和inquireTwo.jsp分别显示两个bean查询的有关结果。效果图效果图。7.4.1 顺序查询顺序查询 282022/12/27 图图7.18292022/12/27 例题例题7-3 效果效果图图7.19,图图7.20,图图7.21,302022/12/27 如果需要在结果集中前
27、后移动,显示结果集指定的一条记录,或随机显示若干条记录等,则必须返回一个可滚动的结果集。为了得到一个可滚动的结果集,需使用下述方法先获得一个Statement对象:Statement stmt=con.createStatement(int type,int concurrency);然后根据参数type、concurrency的取值情况,stmt返回相应类型的结果集:ResultSet re=stmt.executeQuery(SQL语句);type的取值决定滚动方式的取值决定滚动方式,取值可以是:取值可以是:ResultSet.TYPE_FORWORD_ONLY 结果集的游标只能向下滚动。
28、ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变。ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,当数据库变化时,当前结果集同步改变。Concurrency的取值决定是否可以用结果集更新数据库,取值可以是的取值决定是否可以用结果集更新数据库,取值可以是:ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表。ResultSet.CONCUR_UPDATABLE 能用结果集更新数据库中的表。滚动查询经常用到滚动查询经常用到ResultSet的方法(的方法(链
29、接查看链接查看)例例7-47-4中中,负责查询数据库的bean首先将游标移动到最后一行,然后再获取最后一行的行号,以便获得表中的记录数目,该bean能随机输出若干条记录。效果图图7.22,7.237.22,7.23。7.4.2 随机查询随机查询 312022/12/27滚动查询经常用到ResultSet的下述方法public boolean previous()将游标向上移动,该方法返回boolean型数据,当移到结果集第一行之前时返回false.public void beforeFirst()将游标移动到结果集的初始位置,即在第一行之前。public void afterLast()将游标
30、移到结果集最后一行之后。public void first()将游标移到结果集的第一行。public void last()将游标移到结果集的最后一行。public boolean isAfterLast()判断游标是否在最后一行之后。public boolean isBeforeFirst()判断游标是否在第一行之前public boolean ifFirst()判断游标是否指向结果集的第一行。public boolean isLast()判断游标是否指向结果集的最后一行。public int getRow()得到当前游标所指行的行号,行号从1开始,如果结果集没有行,返回0。public b
31、oolean absolute(int row)将游标移到参数row指定的行号。注注意意:如果row取负值,就是倒数的行数,absolute(-1)表示移到最后一行,absolute(-2)表示移到倒数第2行。当移动到第一行前面或最后一行的后面时,该方法返回false。滚动查询经常用到滚动查询经常用到ResultSet的下述方法的下述方法322022/12/27 例题例题7-4 效果图效果图7.22,图,图7.23332022/12/27 例例7-5中,客户通过JSP页面输入查询条件,如按姓名查询成绩或按分数段查询score表中的记录等。该例子中的bean可以根据JSP页面提交的数据进行相应的
32、数据库查询操作。效果图图7.24,7.24,图图7.25,7.25,图图7.26,7.26,图图7.247.24。7.4.3 条件查询条件查询 342022/12/27 例题例题7-5 效果图效果图7.24,图,图7.25352022/12/27 例题例题7-5 效果图效果图7.26,图,图7.27362022/12/27 可以在SQL语句中使用ORDER BY子语句,对记录排序。例如,按总成绩排序查询的SQL语句如下:SELECT*FROM score ORDER BY SELECT*FROM score ORDER BY 数学成绩数学成绩+物理成绩物理成绩+英语成绩英语成绩 例例7-67-
33、6中中,通过JSP页面可以选择按3科的总分从低到高排列记录、按姓氏拼音排序或英语成绩排序记录。bean根据JSP页面的选择的排序方式,使用SQL语句的ORDER BY子语句排序记录。效果图7.28。7.4.4 排序查询排序查询 372022/12/27 可以用SQL语句操作符LIKE进行模式般配,使用“%”代替一个或多个字符,用一个下划线“_”代替一个字符。比如,下述语句查询姓氏是“王”的记录:rs=sql.executeQuery(SELECT*FROM students WHERE rs=sql.executeQuery(SELECT*FROM students WHERE 姓名姓名 LI
34、KE LIKE 王王%);%);例例7-77-7中中,JSP页面负责选择模糊查询条件,bean负责连接数据库查询记录。效果图7.29,图7.30。7.4.5 模糊查询模糊查询 382022/12/277.5 更新、添加与删除操作更新、添加与删除操作 Statement对 象 调 用 方 法 如 下public public int int executeUpdate(String executeUpdate(String sqlStatement);sqlStatement);通过参数sqlStatement指定的方式实现对数据库表中记录的更新、添加和删除操作。更新、添加和删除记录的SQL语法
35、分别如下:UPDATE UPDATE SET SET =新值新值 WHERE WHERE INSERT INTO score(INSERT INTO score(字段列表字段列表)VALUES)VALUES(对应的具体的记录)(对应的具体的记录)或 INSERT INTO score(VALUES INSERT INTO score(VALUES(对应的具体的记录)(对应的具体的记录)DELETE FROM DELETE FROM WHERE WHERE 将score表中姓名字段值为张三的记录的数学成绩字段和物理成绩字段的值更新为88和99 UPDATE score SET UPDATE sc
36、ore SET 数学成绩数学成绩=88,=88,物理成绩物理成绩=99 WHERE=99 WHERE 姓名姓名=张三张三 向score表中添加一条新的记录(0007,li,68,90,78):INSERT INSERT INTO INTO score(score(学学号号,姓名姓名,数学成绩数学成绩,物理成绩物理成绩,英语成绩英语成绩)VALUES)VALUES(0007,li,68,90,780007,li,68,90,78)删除score表中的学号字段值为0002的记录DELETE DELETE FROM FROM score score WHERE WHERE 学学号号=00020002
37、 例例7-87-8中中,通过JSP页面mainPage.jsp可以看到数据库Student的score表中的全部记录,在该页面单击更新操作、添加操作或删除操作可链接到相应的JSP页面renew.jsp、add.jsp和delete.jsp,这些页面使用相应的bean完成更新,添加和删除操作。在这个例子中,除了新写的bean外,还用到了例例7-37-3中中的的bean(QueryBeanOne.java),该bean帮助查询score表中的记录。效果图7.31,图7.32,图7.33,图7.34。392022/12/27 例题例题7-8 效果图效果图7.31,图,图7.32402022/12/2
38、7 例题例题7-8 效果图效果图7.33,图,图7.34412022/12/277.6 使用预处理语句使用预处理语句 Java提供了更高效率的数据库操作机制,就是PreparedStatement对象,该对象被习惯地称作预处理语句对象。422022/12/27 当向数据库发送一个SQL语句,如“SELECT*FROM score”,数据库中的SQL解释器负责将把SQL语句生成地层的内部命令,然后执行该命令,完成有关的数据操作。不断地向数据库提交SQL语句势必增加数据库中SQL解释器的负担,影响执行的速度。如果应用程序能针对连接的数据库,事先就将SQL语句解释为数据库地层的内部命令,然后直接让数
39、据库去执行这个命令,显然不仅减轻了数据库的负担,而且也提高了访问数据库的速度。对于JDBC,若使用Connection和某个数据库建立了连接对象con,那么con就可以调用 prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库地层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行:ResultSet executeQuery()boolean execute()int executeUpdate()只要编译好了PreparedStatement对象,那么
40、该对象可以随时地执行上述方法,显然提高了访问数据库的速度。例7-9中的bean使用预处理语句来查询数据库表中的全部记录。7.6.1 预处理语句优点预处理语句优点 432022/12/27 在对SQL进行预处理时,可以使用通配符?来代替字段的值,在预处理语句执行之前再设置通配符所表示的具体值。例如:sql=con.prepareStatement(SELECT*FROM score WHERE 数学成绩?);在sql对象执行之前,必须调用相应的方法设置通配符?代表的具体值,例如:sql.setInt(1,89);void setInt(int parameterIndex,int x)设置通配符
41、的值。参数parameterIndex用来表示SQL语句中从左到右的第parameterIndex个通配符号,x是该通配符所代表的具体值。虽然虽然sql=con.prepareStatement(SELECT*FROM score WHERE 数学成绩?);sql.setInt(1,89);的功能等同于的功能等同于sql=con.prepareStatement(SELECT*FROM score WHERE 数学成绩”字样的登录效果,如图7.39所示。如果想退出MySql监视程序,输入“exit”即可。3.3.启动启动MySqlMySql监视程序监视程序 502022/12/27 登录MyS
42、ql服务器后,就可以使用SQL语句创建数据库、建表等操作。也可以下载相应的图形界面的MySql管理工具进行创建数据库、建表等操作。本节将讲述怎样在JSP中和MySql建立连接,在MS-DOS命令行窗口中输入SQL语句建立数据库和创建表。MySql要求SQL语句必须用“;”号结束,在编辑SQL语句的过程中,可以使用“c”终止当前SQL语句的编辑。在登录后的MS-DOS窗口界面创建一个名字为Car的数据库,如图7.40所示。4.4.创建数据库创建数据库 512022/12/27 进入数据库命令为 user 数数据据库库名名。进入数据库Car的操作如图7.41所示。建立一个名为message的表(建
43、表操作如图7.42所示),该表的字段为 number(varchar),name(varchar),madeTime(date),price(float)建表之后,就可以使用SQL语句对表进行添加、更新和查询操作。现在我们向表message中添加3条记录,并使用SQL语句查询我们添加到表中的记录。如图7.43和图7.44所示。5.5.为数据库建表为数据库建表 522022/12/27 图图7.43,图,图7.44532022/12/27 启动MySql数据库服务器,默认的该数据库服务器占用的端口是3306。使用纯Java数据库驱动程序方式与数据库建立连接需要经过两个步骤两个步骤。(1)加载纯J
44、ava驱动程序 下载并文件解压至硬盘,将纯Java驱动程序复制到Tomcat服务器所使用的JDK的 jrelibext文件夹中,或复制到Tomcat服务器安装目录的commonlib文件夹中。应用程序加载MySql驱动程序代码如下:try Class.forName(com.mysql.jdbc.Driver)catch(Exception e)(2)和指定的数据库建立连接 假设应用程序和MySql服务器在同一台计算机上,那么应用程序和数据库Car建立连接的代码如下:try String uri=jdbc:mysql:/localhost/Car;String user=root;String
45、 password=123;con=DriverManager.getConnection(uri,user,password);catch(SQLException e)root用户有权访问数据库Car,root用户的密码是123.若root用户没有设置密码,那么将上述String password=123;更改为String password=;例例7-13中的中的JSP页面连接MySql数据库Car、查询message表。例例7-14中中,bean加载纯Java数据库驱动程序连接数据库、查询表。用户可以通过JSP页面main.jsp输入数据库名和表名。效果图7.45。6.6.使用纯使用纯JavaJava数据库驱动程序连接数据库驱动程序连接MySqlMySql数据库数据库 542022/12/27 例题例题7-14 效果图效果图7.45552022/12/27