分析

案例题 某软件公司服务端采用JSP-SQL Server技术,前端采用HTML5+CSS3+JavaScript技术,开发一个在线购物网站,主要包含商品信息管理、商品展示与销售、用户管理、订单处理等功能。

【问题1】(4分)

在SQL Server中创建一个数据库(库名为store),库中包含了在线购物网站中所需要的所有表。与商品基础信息相关的数据都存储在商品信息表中,商品信息表(表名为goods)结构如表2-1所示。

使用SQL语句创建商品信息表并设置主键、表字段的约束,请根据题目说明,将SQL语句补充完整。
(1)TABLE goods (
code char(10)(2),
name nchar(30)(3),
sort char(10)(4),
factory nvarchar(40),
price numeric(10,2)(3)
)
【问题2】(2分)
为便于管理,Web应用程序部署在Tomcat服务器时,需要设置虚拟目录访问Web服务目录中的JSP页面。假设要将D:\MyJsp\start作为Web服务目录,并让用户使用online虚拟目录访问Web服务目录下的JSP页面。需要在Tomcat的配置文件server.xml中的标记内添加如下内容。
<(5)path="(6)" docBase= "D:\MyJsp\start " debug= "0 " reloadable= "true "/>
【问题3】(9分)
DBHandle类的主要功能是网站后台商品信息管理。操作数据库使用JDBC技术来完成,数据库管理员为网站分配了访问商品信息表的用户和相应的操作权限(假如用户名为user,用户密码为password)。根据描述,完成DBHandle类中添加商品信息方法的程序片段。

正确答案
【问题1】
(1)CREATE
(2)PRIMARY KEY
(3)NOT NULL
(4)default‘日用品’
注:(1)~(4)不区分大小写
【问题2】
(5)Context
(6)/online
【问题3】
(7)java.sql.*
(8)store
(9)user
(10)password
(11)sql
(12)i+1
(13)i+1或5
(14)parameter[i]或parameter[4]
(15)finally

本题考查基于Java技术平台的在线购物网站开发,涉及Web应用部署、SQL语句、业务逻辑编码处理、编程语言应用情况等知识点。
【问题1】
根据表2-1商品信息表可知商品信息表中每一个字段的类型以及部分约束信息,题目要求使用SQL语句的方式来创建goods表,所以空(1)应填写CREATE;商品编号code字段是该表的主键,空(2)应填写PRIMARY KEY;商品名称name字段和价格price字段在插入或更新记录时不允许为空,空(3)应填写NOT NULL;因为商品类型sort字段的默认值为“日用品”,空(4)空应填写default '日用品' ,需要注意的是,在SQL语句中default后边的值应使用单引号或者是SQL的函数调用。

【问题2】
在Web应用开发中,基于安全和管理方便的考虑,通常将Tomcat服务器所在计算机的某个目录设置成一个Web服务目录,并为该web服务目录指定拟目录,即隐藏Web服务目录的实际位置,用户只能通过虚拟目录访问Web服务目录中的页面。通常的做法是,修改Tomcat服务器安装目录下conf目录中的server.xml文件,来设置新的Web服务目录。

要将D:\MyJsp\start作为Web服务目录,并让用户使用online虚拟目录访问Web服务目录下的JSP页面,首先需要用记事本打开文件夹Tomcat\conf中的主配置文件server.xml文件,找到出现“”的部分(server.xml文件尾部),然后在“”的前面加入:

< Context path=" /online" docBase= "D:\MyJsp\start " debug= "0" reloadable="true" / >
【问题3】
在Java技术平台上,实现业务逻辑的正确数据库操作通常依赖于JDBC方式。JDBC通过PreparedStatement对象来防止SQL注入问题,该对象使用占位符“?”来代替SQL语句中的参数。在将参数传递给SQL语句之前,SQL语句会进行预编译。这样,用户输入的信息就不会直接参与到SQL语句的编译过程中,从而有效避免了SQL注入的风险。
在使用JDBC操作数据库时,会涉及到几个关键的接口和类,它们都被包含在java.sql包中。这些包括DriverManager类(用于管理JDBC驱动程序并建立数据库连接)、Connection接口(代表与数据库的连接,允许执行SQL语句并返回结果)、Statement接口、CallableStatement接口、PreparedStatement接口(用于执行包含参数的SQL语句并进行预编译)以及ResultSet接口(用于处理查询结果)。因此,空(7)应填写java.sql.*。
Connection接口是JDBC API的核心部分,它负责管理数据库连接。当使用DriverManager类的getConnection()方法请求建立数据库连接时,需要指定数据库的URL、用户名和密码。这三个参数分别用于标识要连接的数据库、访问数据库的用户身份以及用户密码。连接成功后,该方法会返回一个Connection对象。所以,空(8)应填写store(数据库名),空(9)应填写user(用户名),空(10)应填写password(密码)。
PreparedStatement接口提供的prepareStatement()方法允许创建包含参数的SQL语句实例,并对这些语句进行预编译。因此,空(11)应填写sql(即要执行的SQL语句)。
在程序代码中,for循环用于通过setXxx()方法为SQL语句中的参数赋值。由于参数值存储在字符数组parameter中,且商品信息表中的前四个字段都是字符类型,而价格字段是数值型,因此在赋值时需要与字段类型相匹配。循环的终止条件是parameter.length-1,以确保不会超出数组边界。在赋值过程中,空(12)应填写i+1(代表参数的索引,从1开始计数),空(13)也可以填写i+1(但在这种情况下更准确地应该是5,因为价格字段是第五个参数),空(14)应填写parameter[i](或parameter[4],如果是直接为第五个参数赋值的话),分别代表参数的索引和值。
最后,在操作数据库时可能会遇到各种异常,如SQL语句语法错误、驱动不匹配等。为了处理这些异常,程序代码通常会使用try...catch...finally语句结构。在finally块中,可以执行必要的清理工作,如关闭数据库连接和PreparedStatement对象。因此,空(15)应填写finally。
查看解析

相关试题

刷题小程序
电子商务师题库小程序