「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」
这一篇主要讲新增电影
实现效果如下:
前端页面代码:
<body leftmargin="2" topmargin="9" background='<%=path %>/images/allbg.gif'>
<form action="<%=path %>/goodsNoTejiaAdd.action" name="formAdd" method="post" enctype="multipart/form-data">
<table width="98%" align="center" border="0" cellpadding="4" cellspacing="1" bgcolor="#CBD8AC" style="margin-bottom:8px">
<tr bgcolor="#EEF4EA">
<td colspan="3" background="<%=path %>/images/wbg.gif" class='title'><span>电影票管理</span></td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
电影类别:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<table>
<tr>
<td>
<select name="goodsCatelogId" id="goodsCatelogId" onclick="goodsCatelogSelect()">
<option value="0">--请选择电影类别--</option>
</select>
</td>
<td>
<img id="indicator" src="<%=path %>/img/loading.gif" style="display:none"/>
</td>
</tr>
</table>
</td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
电影名称:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<input type="text" name="goodsName" size="20"/>
</td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
电影介绍:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<FCK:editor instanceName="goodsMiaoshu" basePath="/fckeditor" width="500" height="200" value="请输入内容" toolbarSet="Basic">
</FCK:editor>
</td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
图片:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<input type="text" name="fujian" id="fujian" size="30" readonly="readonly"/>
<input type="button" value="上传" onclick="up()"/>
<input type="hidden" name="fujianYuanshiming" id="fujianYuanshiming"/>
</td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
价格:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<input type="text" name="goodsShichangjia" size="20" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"/>
</td>
</tr>
<tr style="display: none" align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
特格:
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<input type="text" name="goodsTejia" size="20" value="0" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"/>
(<font color="red">特格为0表示没有特价</font>)
</td>
</tr>
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td width="25%" bgcolor="#FFFFFF" align="right">
</td>
<td width="75%" bgcolor="#FFFFFF" align="left">
<input type="button" value="提交" onclick="check()"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</body>
后端代码:
public String goodsNoTejiaAdd()
{
TGoods goods=new TGoods();
goods.setGoodsCatelogId(goodsCatelogId);
goods.setGoodsName(goodsName);
goods.setGoodsMiaoshu(goodsMiaoshu);
goods.setGoodsPic(fujian);
goods.setGoodsShichangjia(goodsShichangjia);
if(goodsTejia==0)//特格为0表示没有特价
{
goods.setGoodsTejia(goodsShichangjia);// 如果不是特价苗圃。把这个苗圃的特价设置为市场价格
goods.setGoodsIsnottejia("no");
}
else
{
goods.setGoodsTejia(goodsTejia);
goods.setGoodsIsnottejia("yes");
}
goods.setGoodsKucun(goodsKucun);
goods.setGoodsDel("no");
goodsDAO.save(goods);
this.setMessage("操作成功");
this.setPath("goodsManaNoTejia.action");
return "succeed";
}
后端代码,要插入的数据是t_goods表,前端会传入电影类别,电影名称,电影介绍,电影图片(页面),价格,后端这里接收之后,把这些信息,全保存在t_goods表,首页和管理端界面都可以查询新增加的电影了。
示例:我们选择新插入电影,泰坦尼克号,我们选择电影类别为爱情,电影名称为泰坦尼克号,电影介绍,字段类型选择varchar就行,这里就有同学会问,那我选择blob,或者text类型不可以吗,不是不可以,可以,我们如果能用varchar处理这些大文本内容的话,就尽量用varchar存储,varchar可以指定上限字符varchar(4000)。如果一个表很多字段是blob,或者text类型,那么设计很有可能不合理,加载慢,耗内存,尤其是现在的电影有好多部,成千上万,如果都是用blob,或者text类型来存储,加载会卡的一批,varcahr也可以存储图片的,把图片地址存进去即可。
如上图,我这里再电影介绍里,选择了插入图片。图片上传选项,是作为宣传电影海报的,接着是定电影价格。 最后点击提交即可。
这里就可以看到新增加的电影成功了。
这里提一下文件上传功能
File serverFile = new File(fileDir.getAbsolutePath() + "/" + combinationFileName);
//输出流,读出数据
in = file.getInputStream();
//输入流,写入数据
out = new FileOutputStream(serverFile);
byte[] b = new byte[1024 * 50];// 使用缓存
int len;
//把读出的数据赋予len
while ((len = in.read(b)) > 0) {
//输出数据
out.write(b, 0, len);
}
新创建文件File fiel = new File(""),提供输入流in = file.getInputStream();,是为了读取数据的,写入文件out.write(b, 0, len);,最后记得关闭流in.close(),out.close()。
以上是电影系统中新增加电影的功能的介绍。