开发工具与关键技术:VS软件,数据的导入
作者:陈隆
撰写时间:2019年05月12日
如果日常中想从其他的文档中把一些数据导入到数据库中那样要怎么样才可以一下子就可以把数据导入到数据库中呢,或者又有的想把一些数据导入到数据库中而不知道怎样才可以把数据导入到数据库中的,这时就可以提供一个导入数据的模板让使用者下载,那样使用者就可以根据下载的模板来对着样式输入数据到某表格就可以的了,那样导入数据的时候就不会出错了,其实想要把一些数据导入到数据库中也并不是一件什么难得事情,首先需要在任意一个开发软件中创建一个项目,我这里用的开发软件时Visual Studio 2015,用其他的开发软件应该也是可以的,我就不一一测试了,创建好项目后就需要把HTML部分先写出来,HTML代码可以随便写,根据自己的心意去写就好了,写好HTML部分后就可以编写JavaScript部分了,js部分首先做的是要先弹出模态框一部分。(弹出导入模态框代码截图)
图中的注释其实也说得挺明白的了,打开表单前需要先重置一下表单,也就是把表单中的数据清除掉,再到禁用保存的按钮,为什么需要禁用呢,到了这一步并没有把需要上传的数据放入到模态框中,这时是不可以上传的,所以需要先把保存的这个按钮禁用掉,然后在清空一下临时的表,不要让表中存在以前的数据,这里就把路径设置为空,和数据设置为空就可以把表清空了,还有一个就是在打开模态框的时候,鼠标点击空白的地方和键盘按下qsc按键时模态框就会自动的退出去了,这个问题在上传数据的时候是挺烦人的,试想想如果在上传的过程中不小心点击了某一个按钮,那么上传就肯定会出问题的,这就是需要把这两个可能发生的事情要屏蔽掉,屏蔽也是很简单的,只需要把这两个按钮的状态设置为false就可以让这两个按钮失效了,这样就可以随便点,随便按都不会自动退出去了,这样就可以有效的保护数据上传中不会被中断或则其他的什么问题了,最后获取到模态框的ID设置为显示状态就可以了。
解决了模态框弹出的问题了,然后就是到了解决格式问题,地让用户知道录入的格式才可以成功的导入数据,因为计算机读取的格式是固定的,你设计的是怎样的格式就是怎样的格式,它不会像人的大脑一样会去识别所导入的数据的内容的,计算机只会认定你所设计的某一种格式来识别的,如果不是按照设定的格式来导入的,那么肯定是不会导入成功的,这里就需要提供一个导入模板,在提供的模板填入一条或者几条正确格式的数据给使用者对着所给的格式来输入数据,那就不会出现格式不对了。(模板下载代码截图)
这里就是指定打开一个网址来下载的,这里的URL地址是需要请求控制器的。
(下载模板控制器代码截图)
控制器的代码也不是很多,控制器这里就是先要获取模板的路径,这个路径也就是你把这个表格的模板放到项目文件中的什么文件夹,路径就是这个模板的所在文件夹的所在位置,这个路径一定要写正确了,如果不正确那么就肯定是无法下载的,这里就需要写一个判断,判断模板是否存在,如果存在就可以下载,下载就需要获取到文件的名称,就比如模板的名称是考生信息导入模板,那么获取到下载的模板的名称也肯定是获取到这一个的,获取到文件后,那么就可以返回文件给用户下载了。如果没有该文件就返回一个提示框提示用户,模板文件不存在,请联系系统运维人员提示用户就可以了。这里的下载模板也没有什么难的地方,写完模板这一块后下面就可以写上传表格了,上传的表格是先要保存到临时表中的,不可能一下子就保存到数据库中的,要保存到数据库中是要写最后一步就是保存到数据库中才可以保存成功的。
那么下面就开始写上传表格的代码(上传表格代码)
function upExcel() {
//避免取消选择文件后触发上传
if ($("#fileUploadExecl").val() == “” || $("#fileUploadExecl").val() == undefined) {return; }
var layIndex = layer.load();//显示加载层
//提交表单
$("#formImportExcel").ajaxSubmit(function (Msg) {
layer.close(layIndex);
if(Msg.State){
$("#btnSaveImport").prop(“disabled”, false);//启用保存到数据库的钮
tabStudentImport.reload({//表格数据重载
url: “SelectSessImportStudent”
});
layer.alert(Msg.Text, { icon: 1, title: “提示” });
} else {
tabStudentImport.reload({//清空table
url: ‘’,
data:[] });
layer.alert(Msg.Text, { icon: 0, title: “提示” });} });}
代码就是这样就可以把数据上传到临时表中了,说明在代码中也是已经说明白的了,这里我就不再多讲了,那么就开始写保存的部分代码,保存数据到数据库的代码其实也是点击保存先要打开一个加载层,然后请求保存导入德数据的URL,然后关闭加载层,关闭模态框,输出一个提示,最后刷新表格就可以了。(保存部分代码截图)
写完上面的代码后然后到控制器部分,保存到临时表中的数据,也就是先要保存到session中的,然后在把数据从session中提取出来分页操作就可以了。最后就是需要把已经上传到临时表的数据保存到数据库中,那样就已经成功的保存已经上传数据了,那么下面就继续写控制器保存部分的代码,保存就是先要写一个记录保存成功,和保存失败的记录,然后再创建一个实体类来装数据,然后再判断session中是否存在数据,如果没有数据那么就提示一个数据异常就可以了,如果有数据,就继续往下执行,判断数据是否与数据库中已有的数据有重复,如果有重复就给用户提示有信息重复就行了,如果没有重复就新增导入的数据相关的新增,然后保存,然后再判断保存成功的数据是否大于0,如果不是大于0,那么就肯定是保存失败的,那么就需要提示什么表保存失败就可以了,如果保存的数据大于0,那么就肯定是保存成功了的,那么就相对应的添加数据就可以了,最后提示一个保存成功就可以了。