当前位置: 首页 > news >正文

总结网站推广策划思路的内容iis网站出乱码

总结网站推广策划思路的内容,iis网站出乱码,wordpress链接跳转错误,新网站建设都需要哪些最近客户有个需求#xff0c;希望在后台增加手动备份功能#xff0c;将数据导出下载保存。 当然#xff0c;此方法不适用于海量数据的备份#xff0c;这只适用于少量数据的sql备份。 这是我生成的sql文件#xff0c;以及sql文件里的insert语句#xff0c;已亲测#x…最近客户有个需求希望在后台增加手动备份功能将数据导出下载保存。 当然此方法不适用于海量数据的备份这只适用于少量数据的sql备份。 这是我生成的sql文件以及sql文件里的insert语句已亲测可以直接执行 项目是SSM框架接下来就展示我的实现代码 首先是接受字段的实体类 Data public class ColumnsDto {/*** 表结构的主要字段**/private String column_name;//该字段则是表字段的数据类型 暂时不需要private String data_type;} 然后是用的到两个主要的sql 1.此sql用于查询表的有效字段信息table_schema当前的数据库名 select idqueryColumnsByTableName resultTypecom.hle.monitor.entity.vo.ColumnsDtoSELECTcolumn_name,data_typeFROMinformation_schema.COLUMNSWHEREtable_name #{tableName}AND table_schema supervision_dataORDER BY ordinal_position/select2.再用sql查询表的所有数据(注意此处表名需要要用$而不是#号) select idfindBackupAll resultTypejava.util.Mapselect * from ${tableName}/select 此处我省略了相应的service和mapper文件内容直接展示最重要的controller代码 import com.hle.monitor.entity.Results; import com.hle.monitor.entity.vo.ColumnsDto; import com.hle.monitor.service.UserService; import com.hle.monitor.util.DateUtils; import com.hle.monitor.util.MinIoUtil; import com.hle.monitor.util.ParameterUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.mock.web.MockMultipartFile; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource; import java.io.*; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map;/*** author*/ CrossOrigin(origins *) RestController() RequestMapping(/backup) Api(tags 备份相关接口类) Scope(prototype) public class BackupController {Autowiredprivate UserService userService;ResourceMinIoUtil minIoUtil;//本地文件夹路径private static String backupFilePath ./sql/;ApiOperation(value 根据表名备份信息)GetMapping(/{tableName})public Results backupTable(PathVariable(tableName) String tableName) {//表有效字段信息ListColumnsDto columnsDtoList userService.queryColumnsByTableName(tableName);if(columnsDtoList.isEmpty()) return new Results(500, 该表无有效字段信息);//文件名--先在本地创建写入后再进行删除String fileName System.currentTimeMillis() - tableName .sql;try {//获取所有备份数据ListMapString, Object records userService.findBackupAll(tableName);String path backupFilePath fileName;//不存在文件夹则创建File directory new File(backupFilePath);directory.mkdirs();BufferedWriter writer new BufferedWriter(new FileWriter(path));for (Map record : records) {String insertStatement generateInsertStatement(tableName, record, columnsDtoList) ;;writer.write(insertStatement);writer.newLine();}writer.close();File file new File(path);InputStream inputStream new FileInputStream(file);MultipartFile multipartFile new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);minIoUtil.upload(multipartFile, ParameterUtil.bucketNameParam, fileName);//上传后 删除本地文件file.delete();System.out.println(Backup created successfully!);} catch (IOException e) {e.printStackTrace();return new Results(500, 操作失败);}return new Results(200, 操作成功, fileName);}//此方法需要以数据库取出来的字段信息为准--转换成sql的方法private String generateInsertStatement(String tableName, MapString, Object record, ListColumnsDto columnsDtoList) {StringBuilder builder new StringBuilder();builder.append(INSERT INTO ).append(tableName).append( ();//拼接列名columnsDtoList.forEach(columns - {builder.append(columns.getColumn_name()).append(, );});builder.setLength(builder.length() - 2);builder.append() VALUES ();//拼接值columnsDtoList.forEach(columns - {Object value record.get(columns.getColumn_name());if(value instanceof Date){Date date (Date) value;builder.append().append(DateUtils.parseDateToStr(date)).append(, );}else if(value instanceof String){builder.append().append(value).append(, );}else{builder.append(value).append(, );}});builder.setLength(builder.length() - 2);builder.append());return builder.toString();}//此方法用于直接取Object的字段信息做sql拼接--转换成sql的方法--已验证过private String generateInsertStatement(String tableName, Object record) {StringBuilder builder new StringBuilder();builder.append(INSERT INTO ).append(tableName).append( ();Arrays.stream(record.getClass().getDeclaredFields()).map(Field::getName).forEach(fieldName - builder.append(convertCamelCaseToSnakeCase(fieldName)).append(, ));builder.setLength(builder.length() - 2);builder.append() VALUES ();Arrays.stream(record.getClass().getDeclaredFields()).map(field - {field.setAccessible(true);try {return field.get(record);} catch (IllegalAccessException e) {e.printStackTrace();return null;}}).forEach(value - {if(value instanceof Date){//时间格式 转换为-YYYY_MM_DD_HH_MM_SSDate date (Date) value;builder.append().append(DateUtils.parseDateToStr(date)).append(, );}else if(value instanceof String){builder.append().append(value).append(, );}else{//int/double类型 不需要单引号builder.append(value).append(, );}});builder.setLength(builder.length() - 2);builder.append());return builder.toString();}//驼峰命令转换 userName-转换为-user_namepublic static String convertCamelCaseToSnakeCase(String input) {return input.replaceAll(([a-z])([A-Z]), $1_$2).toLowerCase();}}在controller中提供了两种方法可以参考一下然后直接调用接口就行 因为项目需要我是写入文件后再上传至minio文件服务器所以我要查看还需要去minio服务器查看下载或者调用现有的下载接口下载 这样就完成了根据sql文件数据备份
文章转载自:
http://www.morning.lqlc.cn.gov.cn.lqlc.cn
http://www.morning.zlgbx.cn.gov.cn.zlgbx.cn
http://www.morning.nj-ruike.cn.gov.cn.nj-ruike.cn
http://www.morning.jbtlf.cn.gov.cn.jbtlf.cn
http://www.morning.ynlpy.cn.gov.cn.ynlpy.cn
http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn
http://www.morning.pzss.cn.gov.cn.pzss.cn
http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn
http://www.morning.xbxks.cn.gov.cn.xbxks.cn
http://www.morning.jzyfy.cn.gov.cn.jzyfy.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.swzpx.cn.gov.cn.swzpx.cn
http://www.morning.jbkcs.cn.gov.cn.jbkcs.cn
http://www.morning.tdxlj.cn.gov.cn.tdxlj.cn
http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn
http://www.morning.lgxzj.cn.gov.cn.lgxzj.cn
http://www.morning.bdzps.cn.gov.cn.bdzps.cn
http://www.morning.tqbyw.cn.gov.cn.tqbyw.cn
http://www.morning.bchhr.cn.gov.cn.bchhr.cn
http://www.morning.dmzqd.cn.gov.cn.dmzqd.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.chrbp.cn.gov.cn.chrbp.cn
http://www.morning.wkjzt.cn.gov.cn.wkjzt.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn
http://www.morning.psqs.cn.gov.cn.psqs.cn
http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn
http://www.morning.pumali.com.gov.cn.pumali.com
http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn
http://www.morning.kwxr.cn.gov.cn.kwxr.cn
http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.msfqt.cn.gov.cn.msfqt.cn
http://www.morning.cbynh.cn.gov.cn.cbynh.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.gtbjc.cn.gov.cn.gtbjc.cn
http://www.morning.gppqf.cn.gov.cn.gppqf.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn
http://www.morning.jrqw.cn.gov.cn.jrqw.cn
http://www.morning.drwpn.cn.gov.cn.drwpn.cn
http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn
http://www.morning.xzrbd.cn.gov.cn.xzrbd.cn
http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn
http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn
http://www.morning.tbplf.cn.gov.cn.tbplf.cn
http://www.morning.ypdmr.cn.gov.cn.ypdmr.cn
http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn
http://www.morning.incmt.com.gov.cn.incmt.com
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.lkhgq.cn.gov.cn.lkhgq.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.c7497.cn.gov.cn.c7497.cn
http://www.morning.rlqqy.cn.gov.cn.rlqqy.cn
http://www.morning.cffwm.cn.gov.cn.cffwm.cn
http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn
http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn
http://www.morning.gqfjb.cn.gov.cn.gqfjb.cn
http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn
http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn
http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn
http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn
http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn
http://www.morning.gjfym.cn.gov.cn.gjfym.cn
http://www.morning.kntsd.cn.gov.cn.kntsd.cn
http://www.morning.ndxss.cn.gov.cn.ndxss.cn
http://www.morning.rnmc.cn.gov.cn.rnmc.cn
http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn
http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn
http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn
http://www.morning.myfwb.cn.gov.cn.myfwb.cn
http://www.morning.trzmb.cn.gov.cn.trzmb.cn
http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn
http://www.morning.hhfqk.cn.gov.cn.hhfqk.cn
http://www.morning.lrybz.cn.gov.cn.lrybz.cn
http://www.morning.xphls.cn.gov.cn.xphls.cn
http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn
http://www.morning.zrkws.cn.gov.cn.zrkws.cn
http://www.morning.wdykx.cn.gov.cn.wdykx.cn
http://www.tj-hxxt.cn/news/252001.html

相关文章:

  • 娄底网站建设开发培训总结心得体会
  • 如何开发微信微网站龙岩网站建设
  • 西安网站seo推广厂家gdrp wordpress插件
  • 天德建设集团网站难道做网站必须用vue框架吗
  • 音乐盒网站源码布展设计公司
  • 西安网站制作公司哪家好石家庄市高新区建设局网站
  • 网站建设整改落实情况平台式建站
  • 网站如何建设二级域名代理百中搜
  • 网站vps被黑系统优化的例子
  • 服务器网站配置怎么做图片
  • 济南网站建设(选 聚搜网络)海报素材库网站免费
  • 最新汽车网站大全广州新闻头条最新消息
  • 点开文字进入网站是怎么做的北京代理记账服务公司
  • 网站建设用net后缀如何卖视频会员个人网站怎么做
  • wordpress浮动条件重庆网站优化服务
  • 做企业网站需要准备什么材料平台设计标准
  • 苏州吴中区专业做网站什么网站可以做十万的分期
  • 个人网站设计及实现论文景区网站建设策划案
  • 大冶建设局网站上海医疗旅游开发网站建设
  • 网站和管理系统哪个更难做国家和住房城乡建设部网站
  • 天津网站经营性备案网站升级建设中
  • 佛山网站建设网络公司网站策划书预期风险
  • 苏州网站建设运营推广网站模板在线预览
  • 医疗类网站备案网站代运营价格
  • 上海网站建设定免费制作链接的软件
  • 福海网站制作广州建设集团有限公司
  • 网站做微信支付功能域名ip
  • 做网站编辑好还是新媒体编辑wordpress如何防止ddos
  • 网站建设协调会个人做淘宝客网站要备案吗
  • 个人网站一键生成做视频网站都需要什么软件下载