1.工作表模板使用方法:

//获取模板文件,路径为存放模板文件的路径
HSSFWorkbook wb = new HSSFWorkbook( new FileInputStream(rootpath+"/make/xlsprint/tFACTORY.xls"));

2.动态生成目录代码:
先获取服务器跟目录:
//获得服务器根目录String rootpath = ServletActionContext.getRequest().getRealPath("/");

再用UtilFuns类中的sysDate方法获取返回的当前日期值,再在根路径下的web下创建临时文件夹tmp,这个dir表示的就是              //D:\apache-tomcat-7.0.40\webapps\ROOT\/web/tmp/2013-12-25/
 String dir = rootpath+"/web/tmp/"+ UtilFuns.sysDate() + "/";

  static public String sysDate(){String s = "";java.util.Date date=new java.util.Date();SimpleDateFormat dformat=new SimpleDateFormat("yyyy-MM-dd");s = dformat.format(date);return s;}

//new一个路径为dir的文件对象File file = new File(dir);if(!file.exists()){         //不存在时,才创建目录file.mkdirs();           //创建多级目录,只要前面的目录不存在,自动创建。}

String xlsFile = fu.newFile(dir, "factory.xls");

//目录下已经有同名文件,则文件重命名,增加文件序号,工具类方法只返回文件名public String newFile(String sPath, String sFile){String newFileName = new String();String withoutExt = new String();File curFile = new File(sPath + "\\" + sFile);if (curFile.exists()) {for(int counter = 1; curFile.exists(); counter++){withoutExt = this.getNameWithoutExtension(curFile.getName());if(withoutExt.endsWith(counter-1 + ")")){withoutExt = withoutExt.substring(0,withoutExt.indexOf("("));      //idea}newFileName = withoutExt + "(" + counter + ")" + "." + getFileExt(curFile.getName());curFile = new File(sPath + "\\" + newFileName);}}else{newFileName = curFile.getName();}return newFileName;}

最后一步,获取到了最重要的完整路径:
FileOutputStream fOut = new FileOutputStream(new File(dir + xlsFile));
//将之前第281行创建的路径和第287行返回的文件名组成了完整的文件路径

以下是使用poi模板做导出的完整代码!
public void export() throws IOException{//创建一个老师提供的工具类对象 FileUtil fu = new FileUtil();//获得服务器根目录String rootpath = ServletActionContext.getRequest().getRealPath("/");//先用UtilFuns类中的sysDate方法获取返回的当前日期值,再在根路径下的web下创建临时文件夹tmp,这个dir表示的就是D:\apache-tomcat-7.0.40\webapps\ROOT\/web/tmp/2013-12-25/String dir = rootpath+"/web/tmp/"+ UtilFuns.sysDate() + "/";//new一个路径为dir的文件对象File file = new File(dir);if(!file.exists()){            //不存在时,才创建目录file.mkdirs();           //创建多级目录,只要前面的目录不存在,自动创建。}String xlsFile = fu.newFile(dir, "factory.xls");     //目录下已经有同名文件,则文件重命名,增加文件序号,工具类方法只返回文件名//获取模板文件,路径为存放模板文件的路径HSSFWorkbook wb = new HSSFWorkbook( new FileInputStream(rootpath+"/make/xlsprint/tFACTORY.xls"));  //获取第一个工作表HSSFSheet sheet = wb.getSheetAt(0);HSSFRow nRow = null;                         //创建行对象 值从0开始HSSFCell nCell = null;                            //创建单元格对象   值从0开始int rowNo = 0;                                    //行号short colNo = 0;                               //列号rowNo++;rowNo++;FileOutputStream fOut = new FileOutputStream(new File(dir + xlsFile));//将之前第281行创建的路径和第287行返回的文件名组成了完整的文件路径FactoryDAO oDao = (FactoryDAO) this.getDao("daoFactory");List<Factory> dataList = oDao.find("from Factory o where o.state=1");for (Factory f : dataList) {//每次完成一次循环就把行号下移一次nRow = sheet.createRow(rowNo++);nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getFullName());/*** 这里是将文字样式与内容绑定*/nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getFactoryName());nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getContractor());nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getPhone());nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getMobile());nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getInspector());nCell.setCellStyle(this.text(wb));nCell = nRow.createCell(colNo++);nCell.setCellValue(f.getCnote());nCell.setCellStyle(this.text(wb));//每次循环结束将列号重新置0,不然会超出excel范围colNo=0;}wb.write(fOut);//将工作簿对象写入输出流fOut.flush();//刷新缓冲区fOut.close();//关闭输出流}

注意hbm.xml里面如何描述一对多以及多对一的关系:
1.购销合同表:里面有一个一对多的关系
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.entity"><class name="Contract" table="CONTRACT_C"><id name="id" type="string" column="CONTRACT_ID"><generator class="uuid"></generator></id><property name="offeror" column="OFFEROR" type="string" /><property name="contractNo" column="CONTRACT_NO" type="string" /><property name="signingDate" column="SIGNING_DATE" type="timestamp"/><property name="inputBy" column="INPUT_BY" type="string" /><property name="checkBy" column="CHECK_BY" type="string" /><property name="inspector" column="INSPECTOR" type="string" /><property name="totalAmount" column="TOTAL_AMOUNT" type="big_decimal" /><property name="crequest" column="REQUEST" type="string" /><property name="customName" column="CUSTOM_NAME" type="string"/><property name="shipTime" column="SHIP_TIME" type="timestamp"/><property name="importNum" column="IMPORT_NUM" type="integer" /><property name="deliveryPeriod" column="DELIVERY_PERIOD" type="timestamp"/><property name="remark" column="REMARK" type="string" /><property name="tradeTerms" column="TRADE_TERMS" type="string" /><property name="printStyle" column="PRINT_STYLE" type="string" /><property name="oldState" column="OLD_STATE" type="integer"/><property name="state" column="STATE" type="integer"/><property name="outState" column="OUT_STATE" type="integer"/><property name="createBy" type="string" column="CREATE_BY"/><property name="createDept" type="string" column="CREATE_DEPT"/><property name="createTime" type="timestamp" column="CREATE_TIME"/><!-- Associations --><set name="contractProducts" inverse="true" cascade="all" lazy="false" order-by="ORDER_NO"><key><column name="CONTRACT_ID" /></key><one-to-many class="cn.itcast.entity.ContractProduct" /></set></class>
</hibernate-mapping>

2.货物表,里面有两个多对一和一个一对多
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.entity"><class name="ContractProduct" table="CONTRACT_PRODUCT_C"><id name="id" type="string" column="CONTRACT_PRODUCT_ID" length="40"><generator class="uuid" /></id><property name="productName" column="PRODUCT_NAME" type="string" /><property name="productNo" column="PRODUCT_NO" type="string" /><property name="productImage" column="PRODUCT_IMAGE" type="string" /><property name="productDesc" column="PRODUCT_DESC" type="string" /><property name="loadingRate" column="LOADING_RATE" type="string" /><property name="packingUnit" column="PACKING_UNIT" type="string" /><property name="cnumber" column="CNUMBER" type="integer" /><property name="outNumber" column="OUT_NUMBER" type="integer" /><property name="finished" type="boolean" column="FINISHED"/><property name="grossWeight" column="GROSS_WEIGHT" type="big_decimal" /><property name="netWeight" column="NET_WEIGHT" type="big_decimal" /><property name="sizeLength" column="SIZE_LENGTH" type="big_decimal" /><property name="sizeWidth" column="SIZE_WIDTH" type="big_decimal" /><property name="sizeHeight" column="SIZE_HEIGHT" type="big_decimal" /><property name="productRequest" column="PRODUCT_REQUEST" type="string" /><property name="price" column="PRICE" type="big_decimal" /><property name="amount" column="AMOUNT" type="big_decimal" /><property name="cunit" column="CUNIT" type="string" /><property name="boxNum" column="BOX_NUM" type="integer" /><property name="exPrice" column="EX_PRICE" type="big_decimal" /><property name="exUnit" column="EX_UNIT" type="string" /><property name="noTax" column="NO_TAX" type="big_decimal" /><property name="tax" column="TAX" type="big_decimal" /><property name="costPrice" column="COST_PRICE" type="big_decimal" /><property name="costTax" column="COST_TAX" type="big_decimal" /><property name="orderNo" column="ORDER_NO" type="integer" /><property name="accessories" type="boolean" column="ACCESSORIES"/><!-- Associations --><many-to-one name="factory" class="cn.itcast.entity.Factory" lazy="false"><column name="FACTORY_ID" length="40" /></many-to-one><many-to-one name="contract" class="cn.itcast.entity.Contract" lazy="false"><column name="CONTRACT_ID" length="40" /></many-to-one><set name="extCproducts" inverse="true" cascade="all" lazy="false" order-by="ORDER_NO"><key><column name="CONTRACT_PRODUCT_ID" /></key><one-to-many class="cn.itcast.entity.ExtCproduct" /></set>        </class>
</hibernate-mapping>

3.货物的附件表:里面有两个多对一关系
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.entity"><class name="ExtCproduct" table="EXT_CPRODUCT_C"><id name="id" type="string" column="EXT_CPRODUCT_ID" length="40"><generator class="uuid" /></id><property name="ctype" column="CTYPE" type="integer" /><property name="typeName" type="string"  formula="(select c.NAME from SYS_CODE_B c where c.ORDER_NO=CTYPE and c.PARENT_ID='0104')" insert="false" update="false"  /><property name="productName" column="PRODUCT_NAME" type="string" /><property name="productNo" column="PRODUCT_NO" type="string" /><property name="productImage" column="PRODUCT_IMAGE" type="string" /><property name="productDesc" column="PRODUCT_DESC" type="string" /><property name="loadingRate" column="LOADING_RATE" type="string" /><property name="packingUnit" column="PACKING_UNIT" type="string" /><property name="cnumber" column="CNUMBER" type="integer" /><property name="outNumber" column="OUT_NUMBER" type="integer" /><property name="finished" type="boolean" column="FINISHED"/><property name="grossWeight" column="GROSS_WEIGHT" type="big_decimal" /><property name="netWeight" column="NET_WEIGHT" type="big_decimal" /><property name="sizeLength" column="SIZE_LENGTH" type="big_decimal" /><property name="sizeWidth" column="SIZE_WIDTH" type="big_decimal" /><property name="sizeHeight" column="SIZE_HEIGHT" type="big_decimal" /><property name="productRequest" column="PRODUCT_REQUEST" type="string" /><property name="price" column="PRICE" type="big_decimal" /><property name="amount" column="AMOUNT" type="big_decimal" /><property name="cunit" column="CUNIT" type="string" /><property name="boxNum" column="BOX_NUM" type="integer" /><property name="exPrice" column="EX_PRICE" type="big_decimal" /><property name="exUnit" column="EX_UNIT" type="string" /><property name="noTax" column="NO_TAX" type="big_decimal" /><property name="tax" column="TAX" type="big_decimal" /><property name="costPrice" column="COST_PRICE" type="big_decimal" /><property name="costTax" column="COST_TAX" type="big_decimal" /><property name="orderNo" column="ORDER_NO" type="integer" /><property name="accessories" type="boolean" column="ACCESSORIES"/><!-- Associations --><many-to-one name="factory" class="cn.itcast.entity.Factory" lazy="false"><column name="FACTORY_ID" length="40" /></many-to-one><many-to-one name="contractProduct" class="cn.itcast.entity.ContractProduct" lazy="false"><column name="CONTRACT_PRODUCT_ID" length="40" /></many-to-one></class>
</hibernate-mapping>

接下来是写dao层,和生产厂商的代码一样,然后是action层,别的都一样,就是新增的方法不一样
//保存 新增修改public String save(){ContractDAO oDao = (ContractDAO) this.getDao("daoContract");//初始化if(UtilFuns.isEmpty(model.getId())){model.setState(0);            //0草稿1已上报}oDao.saveOrUpdate(model);return list();           //转向列表}

判断的原因是,新增和修改的方法都在一个方法中了,如果判断到模型驱动里面的id是空的,那表示是新增,否则是修改。
如何获取模型驱动的id?在页面的表单属性上添加一个隐藏域即可。
注意!!!不要忘记创建strust的include文件,更不要忘记在struts中包含他,不要忘记在spring容器中添加dao层的注入!
下面是最麻烦的地方!jsp页面!!!
先改这边:
<li id="view"><a href="#" οnclick="formSubmit('/contract/contractAction_toview','_self');this.blur();">查看</a></li>
<li id="new"><a href="#" οnclick="formSubmit('/contract/contractAction_tocreate','_self');this.blur();">新建</a></li>
<li id="update"><a href="#" οnclick="formSubmit('/contract/contractAction_toupdate','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#" οnclick="formSubmit('/contract/contractAction_delete','_self');this.blur();">删除</a></li>

改表格内容:

这是改jContractList.jsp的内容
<table id="ec_table"  border="0"  cellspacing="0"  cellpadding="0"  class="tableRegion"  width="98%" ><thead><tr><td class="tableHeader"><input type="checkbox" name="selid" οnclick="checkAll('id',this)"/></td><td class="tableHeader">序号</td><td class="tableHeader">客户名称</td><td class="tableHeader">收购方</td><td class="tableHeader">合同号</td><td class="tableHeader">制单人</td><td class="tableHeader">审单人</td><td class="tableHeader">验货员</td><td class="tableHeader">交期</td><td class="tableHeader">船期</td><td class="tableHeader">签单日期</td><td class="tableHeader">总金额</td><td class="tableHeader">状态</td></tr></thead><tbody class="tableBody" ><s:iterator value="#dataList" var="dl" status="lineNo"><tr class="odd"  οnmοuseοver="this.className='highlight'"  οnmοuseοut="this.className='odd'" ><!--这是批处理的选中框--><td><input type="checkbox" name="id" value="${id}"/></td><td><s:property value="#lineNo.index+1"/></td><td>${customName}</td><td>${offeror}</td><td><a href="contractAction_toview?id=${id}">${contractNo}</a></td><td>${inputBy}</td><td>${checkBy}</td><td>${inspector}</td><!--这是将时间格式显示为如2013-12-13的格式,取消精确到时分秒--><td><s:date name="deliveryPeriod" format="yyyy-MM-dd" /></td><td><s:date name="shipTime" format="yyyy-MM-dd" /></td><td><s:date name="signingDate" format="yyyy-MM-dd" /></td><td>${totalAmount}</td><td><!--这是做一个判断,如果页面从数据库查询的状态是1,就是已上报,如果是0就是草稿--><s:if test="state==1">已上报</s:if><s:if test="state==0">草稿</s:if></td></tr></s:iterator></tbody></table>

这是新增购销合同中的内容jContractCreate.jsp
<table class="commonTable" cellspacing="1"><tr><td class="columnTitle">打印版式:</td><td class="tableContentAuto"><!--这是一个单选框,可以选择是想在一个页面显示两个货物还是一个货物,因为客户有需求,同一个厂家的合同上最多只能显示两个货物,最少一个--><input type="radio" name="printStyle" value="1" class="input"/>一款<input type="radio" name="printStyle" value="2" checked="checked" class="input"/>两款</td></tr>        <tr><td class="columnTitle">客户名称:</td><td class="tableContent"><input type="text" name="customName"/></td><td class="columnTitle">收购方:</td><td class="tableContent"><input type="text" name="offeror"/></td></tr><tr><td class="columnTitle">合同号:</td><td class="tableContent"><input type="text" name="contractNo"/></td><td class="columnTitle">签单日期:</td><td class="tableContent"><!--这里用到了一个用js写的日期插件,格式如2013-12-13,并且只读,点击出发事件--><input type="text" style="width:90px;" name="signingDate" value="" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td></tr><tr><td class="columnTitle">制单人:</td><td class="tableContent"><input type="text" name="inputBy"/></td><td class="columnTitle">审单人:</td><td class="tableContent"><input type="text" name="checkBy"/></td></tr>          <tr><td class="columnTitle">验货员:</td><td class="tableContent"><input type="text" name="inspector"/></td><td class="columnTitle">总金额:</td><td class="tableContent"><input type="text" name="totalAmount"/></td></tr><tr><td class="columnTitle">船期:</td><td class="tableContent"><!--这里用到了一个用js写的日期插件,格式如2013-12-13,并且只读,点击出发事件--><input type="text" style="width:90px;" name="shipTime" value="" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td>             <td class="columnTitle">重要程度:</td><td class="tableContentAuto"><!--这里也是一个单选框,用来选择重要程度,与业务需求相关--><input type="radio" name="importNum" value="1" class="input"/>★<input type="radio" name="importNum" value="2" class="input"/>★★<input type="radio" name="importNum" value="3" checked="checked" class="input"/>★★★</td></tr> <tr><td class="columnTitle">交货期限:</td><td class="tableContent"><!--这里用到了一个用js写的日期插件,格式如2013-12-13,并且只读,点击出发事件--><input type="text" style="width:90px;" name="deliveryPeriod" value="" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td>                 <td class="columnTitle">贸易条款:</td><td class="tableContent"><input type="text" name="tradeTerms"/></td></tr> <tr><td class="columnTitle">要求:</td><td class="tableContentAuto" colspan="3"><textarea name="crequest" style="height:100px;"></textarea></td></tr>         </table>

下面是修改购销合同:jContractUpdate.jsp
<table class="commonTable" cellspacing="1"><tr><td class="columnTitle">打印版式:</td><td class="tableContentAuto"><!--获取数据库中的值,如果为1,则value=1的变为选中状态--><input type="radio" name="printStyle" value="1" <s:if test="printStyle==1"> checked="checked"</s:if> class="input"/>一款<input type="radio" name="printStyle" value="2" <s:if test="printStyle==2"> checked="checked"</s:if> class="input"/>两款</td></tr>         <tr><td class="columnTitle">客户名称:</td><td class="tableContent"><input type="text" name="customName" value="${customName}"/></td><td class="columnTitle">收购方:</td><td class="tableContent"><input type="text" name="offeror" value="${offeror}"/></td></tr><tr><td class="columnTitle">合同号:</td><td class="tableContent"><input type="text" name="contractNo" value="${contractNo}"/></td><td class="columnTitle">签单日期:</td><td class="tableContent"><!--日期则将数据库查出来的日期格式化成如2013-12-13,然后绑定日期的js方法,单击触发--><input type="text" style="width:90px;" name="signingDate" value="<s:date name="signingDate" format="yyyy-MM-dd"/>" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td></tr><tr><td class="columnTitle">制单人:</td><td class="tableContent"><input type="text" name="inputBy" value="${inputBy}"/></td><td class="columnTitle">审单人:</td><td class="tableContent"><input type="text" name="checkBy" value="${checkBy}"/></td></tr>         <tr><td class="columnTitle">验货员:</td><td class="tableContent"><input type="text" name="inspector" value="${inspector}"/></td><td class="columnTitle">总金额:</td><td class="tableContent"><input type="text" name="totalAmount" value="${totalAmount}"/></td></tr><tr><td class="columnTitle">船期:</td><td class="tableContent"><!--日期则将数据库查出来的日期格式化成如2013-12-13,然后绑定日期的js方法,单击触发--><input type="text" style="width:90px;" name="shipTime" value="<s:date name="shipTime" format="yyyy-MM-dd"/>" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td>             <td class="columnTitle">重要程度:</td><td class="tableContentAuto"><!--获取数据库中的值,如果为1,则value=1的变为选中状态--><input type="radio" name="importNum" value="1" class="input" <s:if test="importNum==1"> checked="checked"</s:if>/>★<input type="radio" name="importNum" value="2" class="input" <s:if test="importNum==2"> checked="checked"</s:if>/>★★<input type="radio" name="importNum" value="3" class="input" <s:if test="importNum==3"> checked="checked"</s:if>/>★★★</td></tr> <tr><td class="columnTitle">交货期限:</td><td class="tableContent"><!--日期则将数据库查出来的日期格式化成如2013-12-13,然后绑定日期的js方法,单击触发--><input type="text" style="width:90px;" name="deliveryPeriod" value="<s:date name="deliveryPeriod" format="yyyy-MM-dd"/>" readonlyοnclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/></td>                  <td class="columnTitle">贸易条款:</td><td class="tableContent"><input type="text" name="tradeTerms" value="${tradeTerms}"/></td></tr> <tr><td class="columnTitle">要求:</td><td class="tableContentAuto" colspan="3"><textarea name="crequest" style="height:100px;">${crequest}</textarea></td></tr>         </table>

最后一个 查看jContractView.jsp
<table class="commonTable" cellspacing="1"><tr><td class="columnTitle">客户名称:</td><td class="tableContent">${customName}</td><td class="columnTitle">收购方:</td><td class="tableContent">${offeror}</td></tr><tr><td class="columnTitle">合同号:</td><td class="tableContent">${contractNo}</td><td class="columnTitle">签单日期:</td><!--由于只是查看,只做日期的格式化,无js事件--><td class="tableContent"><s:date name="signingDate" format="yyyy-MM-dd"/></td></tr><tr><td class="columnTitle">制单人:</td><td class="tableContent">${inputBy}</td><td class="columnTitle">审单人:</td><td class="tableContent">${checkBy}</td></tr>            <tr><td class="columnTitle">验货员:</td><td class="tableContent">${inspector}</td><td class="columnTitle">总金额:</td><td class="tableContent">${totalAmount}</td></tr><tr><td class="columnTitle">船期:</td><!--由于只是查看,只做日期的格式化,无js事件--><td class="tableContent"><s:date name="shipTime" format="yyyy-MM-dd"/></td>               <td class="columnTitle">重要程度:</td><td class="tableContentAuto"><!--从服务器获取import的数据,等于几就显示几颗星星--><s:if test="importNum==1">★</s:if><s:if test="importNum==2">★★</s:if><s:if test="importNum==3">★★★</s:if></td></tr> <tr><td class="columnTitle">交货期限:</td><!--由于只是查看,只做日期的格式化,无js事件--><td class="tableContent"><s:date name="deliveryPeriod" format="yyyy-MM-dd"/></td>                   <td class="columnTitle">贸易条款:</td><td class="tableContent">${tradeTerms}</td></tr> <tr><td class="columnTitle">要求:</td><td class="tableContentAuto" colspan="3"><pre>${crequest}</pre></td></tr>         </table>

杰信项目第三天知识点(工作表模板+动态生成目录+动态生成重名文件+购销合同增删改查)相关推荐

  1. SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建【后端篇】【快速生成后端代码、封装结果集、增删改查、模糊查找】【毕设基础框架】

    前后端分离项目快速搭建[后端篇] 数据库准备 后端搭建 1.快速创建个SpringBoot项目 2.引入依赖 3.编写代码快速生成代码 4.运行代码生成器生成代码 5.编写application.pr ...

  2. SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建【前端篇】【快速生成后端代码、封装结果集、增删改查、模糊查找】【毕设基础框架】

    前后端分离项目快速搭建[前端篇] 后端篇 前端篇 创建vue项目 安装所需工具 开始编码 1.在根目录下添加vue.config.js文件 2.编写main.js 3.编写App.vue 4.编写ax ...

  3. 商城项目16_es简介、详解倒排索引、安装es以及kibana、检索es基本信息、增删改查文档

    文章目录 ①. es - 背景.概述.功能.场景 ②. 核心概念 - 索引.类型.文档.映射 ③. es - 详解倒排索引 ④. 安装elasticSearch.kibana 7.4.2 ⑤. 索引操 ...

  4. 大数据之-Hadoop之HDFS_NameNode和Secondary NameNode工作机制_通过文件的增删改查说明---大数据之hadoop工作笔记0070

    然后我们再来说一下,hadoop的集群中的namenode节点的工作原理. 1.我们先来大体的了解一下,如果有客户端要来上传文件,这个过程,会先访问namenode,给namenode节点发送请求 2 ...

  5. Java-GUI编程实战之管理系统 Day3【学生管理系统GUI设计、学生管理系统增删改查、项目MVC结构介绍、Java技能图谱】

    视频.课件.源码[链接:https://pan.baidu.com/s/13ffqGDzH-DZib6-MFViW3Q 提取码:zjxs] Java-GUI编程实战之管理系统 Day1[项目开发流程. ...

  6. 国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  7. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之六(三十二)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...

  9. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

最新文章

  1. 【运营】运营高手的“葵花宝典”,你就是下一个东方不败
  2. 如何将bing搜索页面以HTML Mashup的方式嵌入到SAP C4C页面
  3. MySQL 使用Node.js异步查询结果为undefined的简单处理办法
  4. ShardingSphere 语句解析生成初探
  5. Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
  6. python怎么打出pi_随手写了段 Python,微信的地球居然转起来
  7. 作为测试人员,不要说有错误,要说有什么错误
  8. 380v pcb 接线端子_220V线圈的接触器改成380V线圈方法
  9. 数据通信原理_卫星通信系统原理什么 卫星通信系统原理介绍【图文】
  10. 【解决方案】视频结构化图像智能分析系统EasyNVR助力KTV视频监控建设
  11. centos7系统时间校对(和北京时间同步)
  12. 【Jquery练习】tab栏切换
  13. 零知识证明 Zero Knowledge Proof 以及 Layer2、跨链介绍
  14. 解决m3u8视频合并问题
  15. 居安思危——“非常时期”的城市生存
  16. 面试官问我 “String 的不可变真的是因为 final 吗“,我回答 “是“ 然后就被挂了。。。。。。
  17. 大数据平台架构设计案例
  18. 生物信息中的Markov链
  19. 那个给三千人算命的大师,正在给自己水滴筹
  20. 浅谈Word中文档标题及编号的设置

热门文章

  1. Matlab/simulink MIL自动化测试工具使用说明
  2. Matlab建模—狗追人、地中海鲨鱼问题
  3. 未来计算机朝着哪几个方向发展,计算机应用的现状及未来方向
  4. OKHttp3的使用和详解
  5. 财务管理 viewthread.php,厦大2017mpacc:一些个人经验和感想
  6. 【微服务与触发器 一】微服务的前世今生
  7. html前世今生以及与css和js的关系
  8. Camtasia喀秋莎2022经典版能编辑4K视频
  9. 「智能化改造项目」配电室智能环境监测系统
  10. xps in html5,好看的轻薄笔记本,戴尔XPS 13 2in-1评测