pstmt.setString(i+1,param[i]);//为预编译sql设置参数
}
}
num=pstmt.executeUpdate();//执行SQL语句
}catch(ClassNotFoundExceptione){
e.printStackTrace();//处理ClassNotFoundException异常
}catch(SQLExceptione){
e.printStackTrace();//处理SQLException异常
}finally{
closeAll(conn,pstmt,null);//释放资源
}
returnnum;
}
}
5.详细设计
(1)JSP概述
网上书店系统中把数据库的连接参数写在dbconn.properties文件中,再用一个Java类来生成一个数据库连接对象以供其他程序使用。
网上书店的首页显示的内容最多,但源代码并不长,原因是:
一是因为一些多个页面共用的代码被放入另一个文本文件或JSP文件中,在需要的地方包含进来,减少了代码量,提高了代码的可复用程度;二是系统较好地进行了模块化的设计与开发,在JSP页面中很少用到Java代码,所有业务逻辑都用Java类来完成,JSP页面中只是简单的展现数据。
JSP是Sun公司在Java和Servlet技术基础上推出的一种新型的服务器端动态脚本技术。
它已经逐渐成为架设电子商务网站的主流技术。
它的以下特点决定了本系统为什么采用JSP作为Web应用程序的开发工具。
⒈JSP将内容的生成和显示进行分离
2.JSP程序运行在服务端
3.高性能的编译运行机制
4.继承了Java的跨平台特性
5.可重用组件
6.可扩展标签库
7.强大的数据库支持
(2)封装的操作;
*/
publicclassbookTypeOPBeanextendsdbOpertaion{
publicArrayListbookTypeArray=newArrayList();
publicStringbookTypeIdStr=newString("");
/**。
(3)构造函数,将所有书藉类型信息查询出来:
*/
publicbookTypeOPBean(){
StringsqlString="select*frombook_type";
ResultSetrs=this.executeQuery(sqlString);
try{
inti=0;
while(rs.next()){
bookTypeBeanbookType=newbookTypeBean();
bookType.setBookTypeId(rs.getInt("type_id"));
bookType.setBookTypeName(rs.getString("type_name"));
bookTypeArray.add(i,bookType);
i++;
}
}catch(SQLExceptione){
e.printStackTrace();
bookTypeArray=null;
}
}
/**
(4)通过书藉分类名称查找类型信息:
*/
publicbookTypeBeanselectBookTypeByName(StringbookTypeName){
if(bookTypeName==null)returnnull;
bookTypeBeanbookType=newbookTypeBean();
StringsqlString="select*frombook_typewheretype_name='"+bookTypeName+"'";
ResultSetrs=this.executeQuery(sqlString);
try{
inti=0;
if(rs.next()){
bookType.setBookTypeId(rs.getInt("type_id"));
bookType.setBookTypeName(rs.getString("type_name"));
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnbookType;
}
/**
(5)根据属性bookTypeIdStr查找书藉类型信息:
*/
publicbookTypeBeanselectBookTypeId(){
intbookTypeId=0;
if(bookTypeIdStr!
=null&&bookTypeIdStr.length()>1)
try{
bookTypeId=Integer.parseInt(bookTypeIdStr);
}catch(Exceptione){
e.printStackTrace();
}
if(bookTypeId==0)returnnull;
bookTypeBeanbookType=newbookTypeBean();
StringsqlString="select*frombook_typewheretype_id="+bookTypeId;
ResultSetrs=this.executeQuery(sqlString);
try{
if(rs.next()){
bookType.setBookTypeId(rs.getInt("type_id"));
bookType.setBookTypeName(rs.getString("type_name"));
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnbookType;
}
/**
(6)更新书藉分类:
*@parambookTypeId:
类型ID号
*@parambookTypeName:
类型名称
*@returnint:
返回更新的行数
*/
publicintupdateBookType(intbookTypeId,StringbookTypeName){
if(bookTypeId==0||bookTypeName==null||bookTypeName.length()<=0)
return0;
//------构造SQL语句------
StringsqlString="updatebook_typesettype_name='"+bookTypeName+
"'wheretype_id="+bookTypeId;
//------执行SQL语句------
inti=this.executeUpdate(sqlString);
returni;
}
/**
(7)新增一个书藉类型:
*/
publicintinsertBookType(StringbookTypeName){
inti=0;
//------构造SQL语句------
StringsqlString="insertintobook_type(type_name)values('"+bookTypeName+"')";
//------执行SQL语句------
i=this.executeUpdate(sqlString);
returni;
}
/**
(8)删除一个书藉类型:
*@parambookTypeId:
要删除的类型ID号
*@returnint:
返回删除的类型个数
*/
publicintdeleteBookType(intbookTypeId){
inti=0;
//------构造SQL语句------
StringsqlString="deletebook_typewheretype_id="+bookTypeId;
//------执行SQL语句------
i=this.executeUpdate(sqlString);
returni;
}
publicArrayListgetBookTypeArray(){
returnbookTypeArray;
}
publicvoidsetBookTypeArray(ArrayListbookTypeArray){
this.bookTypeArray=bookTypeArray;
}
publicStringgetBookTypeIdStr(){
returnbookTypeIdStr;
}
publicvoidsetBookTypeIdStr(StringbookTypeIdStr){
this.bookTypeIdStr=bookTypeIdStr;
}
}
(9)网上书店系统中所有的报错信息都保存在一个“.properties”文件中,文件内容如下:
book.bookNameNull=书藉名没有输入!
book.typeIdNull=书藉所属类型没有选择!
book.priceNotFloat=价格不为数字!
book.priceRebateNotFloat=折扣输入不正确!
book.publishDateError=出版日期输入有误!
book.pageCountError=页数不为数字!
addbook.insertError=插入新书时出错!
updatebook.updateError=更新书藉信息时出错!
bookType.bookTypeHaved=书藉类型已存在!
bookType.insertError=插入新的书藉类型时出错!
booktype.updateError=更新书藉类型信息时出错!
user.userNameNull=用户名输入为空!
user.userPasswordNull=用户密码输入为空!
user.passwordNotEqual=两次输入的密码不一致!
user.insertError=插入新的用户时出错!
user.certCodeError=验证码不对!
user.userError=用户名或密码输入有误!
user.sessionError=用户会话已失效!
orderform.newError=生成新的订单时出错!
orderform.saveError=保存订单时出错!
(10):
CREATETABLEmembers(
member_idintauto_incrementprimarykey,
member_loginvarchar(20)NOTNULL,
member_pas