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

自己代码做网站做网站哪些好

自己代码做网站,做网站哪些好,建设网站计入什么科目,信息平台网站建设csv工具类CsvUtils 此处使用LinkedHashMap链表哈希表,实现键值中值为空时仍存在数据以及保证顺序与sql顺序一致。 package com.xxx.xxx.utils;import lombok.val; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRespons…
  1. csv工具类CsvUtils
    此处使用LinkedHashMap链表哈希表,实现键值中值为空时仍存在数据以及保证顺序与sql顺序一致。
package com.xxx.xxx.utils;import lombok.val;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;public class CsvUtils {/*** CSV文件列分隔符*/private static final String CSV_COLUMN_SEPARATOR = ",";/*** CSV文件行分隔符*/private static final String CSV_ROW_SEPARATOR = "\r\n";/*** @param dataList 集合数据* @param titles   表头部数据* @param keys     表内容的键值* @param os       输出流*/public static void doExport(List<LinkedHashMap<String, String>> dataList, String titles, String keys, OutputStream os)throws Exception {// 保证线程安全StringBuffer buf = new StringBuffer();String[] titleArr = null;String[] keyArr = null;titleArr = titles.split(",");keyArr = keys.split(",");// 组装表头for (String title : titleArr) {buf.append(title).append(CSV_COLUMN_SEPARATOR);}buf.append(CSV_ROW_SEPARATOR);// 组装数据if (!CollectionUtils.isEmpty(dataList)) {for (Map<String, String> data : dataList) {for (String key : keyArr) {buf.append(CsvUtils.handleFormatValue(data.get(key))).append(CSV_COLUMN_SEPARATOR);}buf.append(CSV_ROW_SEPARATOR);}}// 写出响应os.write(buf.toString().getBytes("GBK"));os.flush();}/*** 设置Header 辅助函数, 可用可不用** @param fileName* @param response* @throws UnsupportedEncodingException*/public static void responseSetProperties(String fileName, HttpServletResponse response)throws UnsupportedEncodingException {// 设置文件后缀SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String fn = fileName + sdf.format(new Date()) + ".csv";// 读取字符编码String utf = "UTF-8";// 设置响应response.setContentType("application/ms-txt.numberformat:@");response.setCharacterEncoding(utf);response.setHeader("Pragma", "public");response.setHeader("Cache-Control", "max-age=30");response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fn, utf));}// 处理数据private static String handleFormatValue(Object data) {if (data == null) {return "";}String val = data.toString();// 如果数据中含有 " 则在 "外层再包一层 ""if (val.contains("\"") ){val=val.replace("\"", "\"\"");}// 如果数据中含有 , 则在 , 外层再包一层 ""if (val.contains(",")) {val = "\""+val+"\"";} else {// \t 是为了处理字符串的日期类型数据导出显示异常val = "\t" + val;}return val;}
}
  1. 修改ymlmybatis配置 根据实际情况修改call-setters-on-nullstrue即可
mybatis-plus:# 扫描mapper.xml文件mapper-locations: classpath:mapper/*/*.xml,classpath:mapper/system_settings/*/*/*.xml# 扫描实体类typeAliasesPackage: com.sun.system.entity# 主键类型global-config:#配置逻辑删除字段为1是删除logic-delete-value: 1#配置逻辑删除字段为0是未删除logic-not-delete-value: 0#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: 1# Sequence序列接口实现类配置key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: 0#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#数据库大写下划线转换#capital-mode: true#自定义SQL注入器configuration:# 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射map-underscore-to-camel-case: true# 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 truecache-enabled: true#懒加载#aggressive-lazy-loading: true#NONE:不启用自动映射 PARTIAL:只对非嵌套的 resultMap 进行自动映射 FULL:对所有的 resultMap 都进行自动映射#auto-mapping-behavior: partial#NONE:不做任何处理 (默认值设置)WARNING:以日志的形式打印相关警告信息 FAILING:当作映射失败处理,并抛出异常和详细信息#auto-mapping-unknown-column-behavior: none#如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段call-setters-on-nulls: true# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用log-impl: org.apache.ibatis.logging.stdout.StdOutImplmybatis:configuration:call-setters-on-nulls: true
  1. controller查询后导出
    @RequestMapping("generateCSV")// 解决跨域问题@CrossOriginpublic void generateHqmsCSV(HttpServletResponse response,@RequestBody Map<String,Object> data) throws Exception {ServletOutputStream outputStream = response.getOutputStream();String keys = "";List<LinkedHashMap<String, String>> dataList = xxxMapper.getxxx(data);// 遍历Map获取所有的键和值for (Map.Entry<String, String> entry : dataList.get(0).entrySet()) {keys += entry.getKey()+",";}keys = removeTrailingComma(keys);CsvUtils.doExport(dataList,keys,keys,outputStream);}/*** 检查字符串是否以逗号结尾,如果是,则去掉最后一个字符(即逗号)* @param str* @return*/public static String removeTrailingComma(String str) {if (str.endsWith(",")) {return str.substring(0, str.length() - 1);}return str;}
  1. 前台调用(需要先跨域后使用,详见跨域问题解决(后端Java+前端Vue2))
  2. END
http://www.laogonggong.com/news/90257.html

相关文章:

  • 给彩票网站做代理违法吗wordpress 后台样式
  • 的网站建设公司计算机专业里面哪个专业最好
  • 赵朴初网站建设山东省建设文化传媒有限公司网站
  • 湖北省建设安全协会网站微信小程序外联网站
  • wordpress 网站播放器seo引擎优化公司
  • 网站联动做网站编辑要有逻辑吗
  • 城建设投资公司网站淄博公司网站建设
  • a站下载雄安建站服务
  • 有哪些网站做的好处安徽美丽乡村建设网站
  • 网站建设公司那个好建筑工程师培训学校
  • 电子商务网站开发的历程网络架构师和网络工程师区别
  • 深圳建站公司外围商城类网站建设 数据库
  • 各学院二级网站建设通报如何在自己做的网站中顶置内容
  • 哪个网站的地图可以做分析图wordpress 文章数
  • 如何做专题网站出入库管理系统免费版
  • 做暖暖网站网站服务公司
  • 那里有网站建设织梦做的网站如何修改
  • 企业品牌网站建设类型网站内容标签设计
  • 网站建设服务哪个便宜啊无代码网站
  • 济南建网站公司排行榜深圳市网站建设做网站
  • 威海哪有网站建设百度指数明星人气榜
  • 做软装素材从哪些网站找电脑托管
  • 上海企业网站优化公司健身网站开发项目总结
  • 如何 做网站挣钱回收网站建设
  • 想要接网站业务如何做深圳网站建设加q5299丶14602推广
  • 郑州市汉狮做网站长春电商网站建设费用
  • 购买虚拟机建网站建设免费网站模板
  • 做模板下载网站挣钱吗青岛网站建设免费
  • 做公司永久免费网站什么好织梦修改网站背景颜色
  • 怎么建单位的网站做淘客网站用什么上传文件