- MyBatis(五)动态SQL
画船听雨眠aa
mybatissqljava
目录一、介绍二、if标签三、where标签四、choose-when-otherwise标签五、foreach标签七、trim标签八、提取公用的SQL语句一、介绍动态SQL是MyBatis的强大特性之一。在JDBC或其它类似的框架中,开发人员通常需要手动拼接SQL语句。根据不同的条件拼接SQL语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态S
- 用C++实现一个基于模板的观察者设计模式
CoderIsArt
UML设计模式C++11设计模式
观察者模式定义观察者模式(ObserverPattern)是一种行为型设计模式,用于定义对象间的一对多依赖关系,使得当一个对象状态发生变化时,其所有依赖它的对象都会收到通知并自动更新。核心概念角色定义Subject(被观察者):持有观察者列表,维护观察者的注册和移除。状态改变时通知所有观察者。Observer(观察者):定义接收通知的接口。注册到被观察者中,等待状态变化通知。适用场景一个对象状态改
- java实现word转html(支持docx及doc文件)
WAZYY0619
javawordhtmlword转htmldocx转htmldoc转html
privatefinalstaticStringtempPath="C:\\Users\\xxx\\Desktop\\Word2Html\\src\\test\\";//图片及相关文件保存的路径publicstaticvoidmain(Stringargv[]){try{JFileChooserfileChooser=newJFileChooser();fileChooser.setDialogT
- 二十三种设计模式-代理模式
angen2018
java代理模式设计模式
一、定义与核心思想代理模式是一种结构型设计模式,其核心思想是提供一个代理对象,用以控制对实际对象的访问。通过代理对象,可以在不改变实际对象的情况下,添加各种功能,如权限控制、懒加载、缓存、远程调用等。二、组成要素代理模式主要由以下几个要素组成:抽象主题(Subject)这是一个接口或抽象类,定义了代理对象和实际对象共同的接口,使得代理对象可以在客户端中替代实际对象使用。例如,定义一个Subject
- 深度学习YOLOv3压双黄线期末项目
yzx991013
giitYOLO
一、引言实现功能目录一、引言实现功能打开视频连续检测车辆能检测到道路中间的双黄线能检测出车辆是否压双黄线当车辆压到双黄线时给出提示要求使用多线程实现功能二、技术栈概览三、代码功能深度剖析视频文件选择功能(choosevideo函数)四、项目亮点提炼五、总结与展望1.打开视频2.连续检测车辆3.能检测到道路中间的双黄线4.能检测出车辆是否压双黄线5.当车辆压到双黄线时给出提示6.要求使用多线程实现功
- php状态监控源码,PHP服务器状态监控实现程序
江子星
php状态监控源码
*/header('Content-type:text/html;charset=utf-8');include'./smtp/class.smtp.php';include'./smtp/class.phpmailer.php';functionsendmail($subject='',$body=''){date_default_timezone_set('Asia/Shanghai');//
- Apache Shiro安全框架(2)-用户认证
heyrian
Javashiro
身份认证在shiro中用户需要提供用户的principals(身份)和credentials(证明)来证明该用户属于当前系统用户。常见的认证方式即用户名/密码。在解释身份认证之前,我们先来看看shiro中的Subject和Realm,这是身份认证的两个关键的概念。Subjectsubject代表当前用户,内部主要维护当前用户信息。shiro中所有的subject都交给SecurityManager
- 技术周总结 09.09~09.15周日(C# WinForm WPF)
打破砂锅问到底007
wpfc#WinForm
文章目录一、09.09周一1.1)问题01:Windows桌面开发中,WPF和WinForm的区别和联系?联系:区别:二、09.12周四2.1)问题01:visualstudio的相关快捷键有哪些?通用快捷键编辑导航调试窗口管理2.2)问题02:publicpartialclassChoosePLReason:CommonBaseForm2.3)问题03:介绍WindowsForms中的Syste
- SIPp常用脚本之三:UAC
weixin_34075551
网络
UAC是作为SIP消息的发起端,可以控制消息速率什么的,方便极了。一、uac.xml;tag=[call_number]To:Call-ID:[call_id]CSeq:1INVITEContact:sip:[field0]@[local_ip]:[local_port]Max-Forwards:70Subject:PerformanceTestContent-Type:application/s
- LeetCode_sql_day04(1280. 学生们参加各科测试的次数)
Darling_00
sqlleetcodesql数据库
描述:1280.学生们参加各科测试的次数查询出每个学生参加每一门科目测试的次数,结果按student_id和subject_name排序。查询结构格式如下所示。数据准备:CreatetableIfNotExistsStudents(student_idint,student_namevarchar(20))CreatetableIfNotExistsSubjects(subject_namevar
- sql语句
7fae9f0f608d
--创建一个班级表(classes),包含字段id,nameCREATETABLEclasses(idINTPRIMARYKEYAUTO_INCREMENT,NAMEVARCHAR(10))--创建一个学生表(students),包含字段id,name,birthday,gender,score,class_idCREATETABLEstudents(idINTPRIMARYKEYAUTO_INC
- 遗传算法(Genetic Algorithm,GA)-基于MATLAB环境实现
朱佩棋(代码版)
启发式算法启发式算法算法matlab
1.GA简介geneticalgorithm,美国Holland教授创立,基于达尔文进化论和孟德尔的遗传学说。遗传算法类比了生物界中自然选择、交叉、变异等自然进化方式,利用数码串类比染色体,通过选择、交叉、变异等遗传算子模拟生物的进化过程。1.1遗传算法的流程1.编码伪代码:2.产生初始群体Chooseinitialpopulation3.计算适应度Evaluatethefitnessofeach
- 在js中观察者模式讲解
Code_Geo
javascript观察者模式前端
在JavaScript中,观察者模式(ObserverPattern)是一种设计模式,允许一个对象(被观察者,Subject)维护一个依赖它的对象列表(观察者,Observer),并在它自身状态发生变化时自动通知这些观察者。观察者模式的典型使用场景包括事件系统、数据绑定和实时更新等情况。一、观察者模式的基本结构:1、Subject(被观察者):管理多个观察者的列表,并提供注册、注销和通知功能。2、
- Jmeter测试本地web应用
会飞的猫丶。
测试
一、Jmeter下载及安装官网:http://jmeter.apache.org/下载:下载源码:解压到相关文件夹:打开bin里面的jmeter.bat就可以使用了二、看不懂英文的可以把语言切换为中文:选择options--->chooselanguage--->chinese三、新建线程组1)线程数:指的是用户的请求数,默认的输入是“1”,如果想模拟100个请求,则此处输入100。2)Ramp-
- java class .method_java Class Method类的使用
weixin_39620629
javaclass.method
packagesample;/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/importjava.lang.reflect.Constructor;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflec
- netty源码解读三(NioEventLoop)
orcharddd_real
nettyjavanetty
NioEventLoop初始化EventExecutor类型的数组数组大小默认为cpu数量的两倍,遍历数组,通过newNioEventLoop(xxx)往数组中添加元素,NioEventLoop继承了EventExecutor;每次需要线程时,执行chooser的next方法从数组中取出一个线程;关键代码打开netty源码,找到example包下的EchoService类,追溯创建boss线程组和
- 工程管理知识体系指南目录
玩物励志老乐
工程管理知识体系指南(原著第四版)类型书籍作者沃特·诺沃辛希拉·莎译者何继善日期2018-5-1存档位置F40馆藏目录DoubanURLhttps://book.douban.com/subject/30669211/访问时间2022/1/21下午4:38:15出版社中国建筑工业出版社ISBN978-7-112-22038-0总页数314添加日期2022/1/21下午4:38:15修改日期2022
- Vue66 多组件共享
在下,杨江河
Vuevue.jsjavascript前端
代码Count.vue当前求和为:{{sum}}当前求和放大10倍为:{{bigSum}}我在{{school}},学习{{subject}}Person组件的总人数是:{{personList.length}}123+-当前求和为奇数再加等一等再加import{mapState,mapGetters,mapMutations,mapActions}from'vuex'exportdefault{
- mongodb中常用的运算符和正则表达式
手搓二十四种设计模式
mongodb
在mongodb中不能>=,----$gt=----$gte<=----$lte!==----$ne例如:查询id比三大的所有记录db.students.find({id:{$gt:3}});2.逻辑运算符:$or逻辑或例如:查询年龄为十岁或九岁的数据db.students.find({$or:[{age:10},{age:9}]});$and逻辑与:例如:查询年龄大于十一岁且小于二十四的db.s
- 日常随笔|“你知道为什么女孩要努力吗?”
秋刀鱼的梦
一“Doyouknowwhydoesagirlworkhard?Firstly,toseeabiggerworldWhat’smoreTohavetheopportunitytochooseourlifeGiveparentsandrelativesabatterlife.AlsoyoucanachieveyourdreamsAndbecomesomeoneyouwillfallinlovewit
- AttributeError: ‘function‘ object has no attribute ‘xxx‘报错问题
Jimmy_jimi
flaskpython
问题描述AttributeError:‘function’objecthasnoattribute‘send’@bp.route("/mail")defmail():message=Message(subject='邮箱测试'
- 入门Java编程的知识点—>重写(day10)
小星袁
Java基础知识点javapythonlinux
重点掌握重写的适用性?重写的语法?重点掌握多态是什么?多态-向上造型的语法?多态的意义?重点掌握接口是什么?接口如何语法如何定义?重点掌握引用类型转换有哪些?instanceOf关键字如何用?回顾在昨天的ExtendsDemo测试类中,我们如果想要表示多个学生对象,多个老师对象,多个医生对象,则需要使用数组来完成Student[]students=newStudent[3];students[0]
- python-09( Tk图形用户界面(GUI))
何老生
Python零基础学习python开发语言
什么是TkinterTkinter是使用python进行窗口视窗设计的模块。Tkinter模块(“Tk接口”)是Python的标准TkGUI工具包的接口。作为python特定的GUI界面,是一个图像的窗口,tkinter是python自带的,可以编辑的GUI界面,用来入门,熟悉窗口视窗的使用,非常有必要。提供tk支持的模块包括:模块说明tkinterTK主模块tkinter.colorchoose
- LeetCode 2860.让所有学生保持开心的分组方法数:排序+遍历
Tisfy
题解#力扣LeetCodeleetcode算法数据结构题解排序贪心遍历
【LetMeFly】2860.让所有学生保持开心的分组方法数:排序+遍历力扣题目链接:https://leetcode.cn/problems/happy-students/给你一个下标从0开始、长度为n的整数数组nums,其中n是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生:如果能够满足下述两个条件之一,则认为第i位学生将会保持开心:这位学生被选中,并且被选中的学生人
- uniapp图片上传,加web core api接收并保存
浮生若森
uni-appjavascriptc#vue.js
Uni-App图片上传加后台webcoreApi前台代码后台WebCoreApi代码Startup.cs中代码啥也不说了直接上代码!!!前台代码//Anhighlightedblockuni.chooseImage({count:1,success:(res)=>{uni.uploadFile({url:'http://localhost:24517/api/Upload/UpImgs',file
- Django form表单中的 form.save(commit=False)用法
qq_42724283
python学习笔记djangopython
最近在用Django,做个关于表单的笔记form=NewTopicForm(request.POST)#form是包含topic类的一个实例ifform.is_valid():subject=form.cleaned_data.get('subject')topic=form.save(commit=False)#生成一个Topic类的实例对象topic.subject=subjecttopic.
- 添加配置react组件路由具体步骤参考
东离与糖宝
每天一个小需求react.js前端前端框架
文章目录发现宝藏发现宝藏前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。需要在Menu组件的items数组中添加一个新的对象,该对象代表“学科素材”这个一级菜单项,并且包含一个children属性,该属性是一个数组,包含二级菜单项“学科管理”。以下是修改后的代码段:,label:'教材',},{key:'/subject-material',icon
- Ubuntu中qt类与类信号槽的创建及使用
杨~friendship
ubuntuqtlinux学习c++
今天学习到了新的一个小玩意,我们在QT中创建一个大项目的时候一般会创建多个类,那我们就来学习一下如何在自定义的类中声名和使用信号与槽函数。首先我们CTRL+n来创建我们新的类:我们创建新的C++的类,一个School,一个Students。我使用的是Cmake!!!!不是qmake!!!!!!!!创建好之后呢,我们要先声名一下我们的两个类,看代码:(在mainwindow.h)#ifndefMAI
- XML
4164fccdcf1c
XMLTutorialforiOS:HowToChooseTheBestXMLParserforYouriPhoneProject
- Python + Playwright(19):监听事件 & 移除监听事件「详细介绍」
blues_C
Python+Playwrightpython软件测试自动化测试playwright测试工具
Python+Playwright(19):监听事件&移除监听事件前言一、监听事件1.1`close`-页面关闭事件1.2`console`-控制台消息事件1.3`crash`-页面崩溃事件1.4`dialog`-对话框事件1.5`domcontentloaded`-DOM内容加载事件1.6`download`-下载事件1.7`filechooser`-文件选择器事件1.8`frameattach
- ztree异步加载
3213213333332132
JavaScriptAjaxjsonWebztree
相信新手用ztree的时候,对异步加载会有些困惑,我开始的时候也是看了API花了些时间才搞定了异步加载,在这里分享给大家。
我后台代码生成的是json格式的数据,数据大家按各自的需求生成,这里只给出前端的代码。
设置setting,这里只关注async属性的配置
var setting = {
//异步加载配置
- thirft rpc 具体调用流程
BlueSkator
中间件rpcthrift
Thrift调用过程中,Thrift客户端和服务器之间主要用到传输层类、协议层类和处理类三个主要的核心类,这三个类的相互协作共同完成rpc的整个调用过程。在调用过程中将按照以下顺序进行协同工作:
(1) 将客户端程序调用的函数名和参数传递给协议层(TProtocol),协议
- 异或运算推导, 交换数据
dcj3sjt126com
PHP异或^
/*
* 5 0101
* 9 1010
*
* 5 ^ 5
* 0101
* 0101
* -----
* 0000
* 得出第一个规律: 相同的数进行异或, 结果是0
*
* 9 ^ 5 ^ 6
* 1010
* 0101
* ----
* 1111
*
* 1111
* 0110
* ----
* 1001
- 事件源对象
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- MySql配置及相关命令
g21121
mysql
MySQL安装完毕后我们需要对它进行一些设置及性能优化,主要包括字符集设置,启动设置,连接优化,表优化,分区优化等等。
一 修改MySQL密码及用户
 
- [简单]poi删除excel 2007超链接
53873039oycg
Excel
采用解析sheet.xml方式删除超链接,缺点是要打开文件2次,代码如下:
public void removeExcel2007AllHyperLink(String filePath) throws Exception {
OPCPackage ocPkg = OPCPac
- Struts2添加 open flash chart
云端月影
准备以下开源项目:
1. Struts 2.1.6
2. Open Flash Chart 2 Version 2 Lug Wyrm Charmer (28th, July 2009)
3. jofc2,这东西不知道是没做好还是什么意思,好像和ofc2不怎么匹配,最好下源码,有什么问题直接改。
4. log4j
用eclipse新建动态网站,取名OFC2Demo,将Struts2 l
- spring包详解
aijuans
spring
下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了。 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。Aspectj是java最早的提供AOP的应用框架。 dist 目录下是Spring 的发布包,关于发布包下面会详细进行说明。 docs&nb
- 网站推广之seo概念
antonyup_2006
算法Web应用服务器搜索引擎Google
持续开发一年多的b2c网站终于在08年10月23日上线了。作为开发人员的我在修改bug的同时,准备了解下网站的推广分析策略。
所谓网站推广,目的在于让尽可能多的潜在用户了解并访问网站,通过网站获得有关产品和服务等信息,为最终形成购买决策提供支持。
网站推广策略有很多,seo,email,adv
- 单例模式,sql注入,序列
百合不是茶
单例模式序列sql注入预编译
序列在前面写过有关的博客,也有过总结,但是今天在做一个JDBC操作数据库的相关内容时 需要使用序列创建一个自增长的字段 居然不会了,所以将序列写在本篇的前面
1,序列是一个保存数据连续的增长的一种方式;
序列的创建;
CREATE SEQUENCE seq_pro
2 INCREMENT BY 1 -- 每次加几个
3
- Mockito单元测试实例
bijian1013
单元测试mockito
Mockito单元测试实例:
public class SettingServiceTest {
private List<PersonDTO> personList = new ArrayList<PersonDTO>();
@InjectMocks
private SettingPojoService settin
- 精通Oracle10编程SQL(9)使用游标
bijian1013
oracle数据库plsql
/*
*使用游标
*/
--显示游标
--在显式游标中使用FETCH...INTO语句
DECLARE
CURSOR emp_cursor is
select ename,sal from emp where deptno=1;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
begin
ope
- 【Java语言】动态代理
bit1129
java语言
JDK接口动态代理
JDK自带的动态代理通过动态的根据接口生成字节码(实现接口的一个具体类)的方式,为接口的实现类提供代理。被代理的对象和代理对象通过InvocationHandler建立关联
package com.tom;
import com.tom.model.User;
import com.tom.service.IUserService;
- Java通信之URL通信基础
白糖_
javajdkwebservice网络协议ITeye
java对网络通信以及提供了比较全面的jdk支持,java.net包能让程序员直接在程序中实现网络通信。
在技术日新月异的现在,我们能通过很多方式实现数据通信,比如webservice、url通信、socket通信等等,今天简单介绍下URL通信。
学习准备:建议首先学习java的IO基础知识
URL是统一资源定位器的简写,URL可以访问Internet和www,可以通过url
- 博弈Java讲义 - Java线程同步 (1)
boyitech
java多线程同步锁
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。
同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(cri
- java-给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
bylijinnan
java
public class DeleteExtraSpace {
/**
* 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
* 方法1.用已有的String类的trim和replaceAll方法
* 方法2.全部用正则表达式,这个我不熟
* 方法3.“重新发明轮子”,从头遍历一次
*/
public static v
- An error has occurred.See the log file错误解决!
Kai_Ge
MyEclipse
今天早上打开MyEclipse时,自动关闭!弹出An error has occurred.See the log file错误提示!
很郁闷昨天启动和关闭还好着!!!打开几次依然报此错误,确定不是眼花了!
打开日志文件!找到当日错误文件内容:
--------------------------------------------------------------------------
- [矿业与工业]修建一个空间矿床开采站要多少钱?
comsci
地球上的钛金属矿藏已经接近枯竭...........
我们在冥王星的一颗卫星上面发现一些具有开采价值的矿床.....
那么,现在要编制一个预算,提交给财政部门..
- 解析Google Map Routes
dai_lm
google api
为了获得从A点到B点的路劲,经常会使用Google提供的API,例如
[url]
http://maps.googleapis.com/maps/api/directions/json?origin=40.7144,-74.0060&destination=47.6063,-122.3204&sensor=false
[/url]
从返回的结果上,大致可以了解应该怎么走,但
- SQL还有多少“理所应当”?
datamachine
sql
转贴存档,原帖地址:http://blog.chinaunix.net/uid-29242841-id-3968998.html、http://blog.chinaunix.net/uid-29242841-id-3971046.html!
------------------------------------华丽的分割线--------------------------------
- Yii使用Ajax验证时,如何设置某些字段不需要验证
dcj3sjt126com
Ajaxyii
经常像你注册页面,你可能非常希望只需要Ajax去验证用户名和Email,而不需要使用Ajax再去验证密码,默认如果你使用Yii 内置的ajax验证Form,例如:
$form=$this->beginWidget('CActiveForm', array( 'id'=>'usuario-form',&
- 使用git同步网站代码
dcj3sjt126com
crontabgit
转自:http://ued.ctrip.com/blog/?p=3646?tn=gongxinjun.com
管理一网站,最开始使用的虚拟空间,采用提供商支持的ftp上传网站文件,后换用vps,vps可以自己搭建ftp的,但是懒得搞,直接使用scp传输文件到服务器,现在需要更新文件到服务器,使用scp真的很烦。发现本人就职的公司,采用的git+rsync的方式来管理、同步代码,遂
- sql基本操作
蕃薯耀
sqlsql基本操作sql常用操作
sql基本操作
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:30:33 星期一
&
- Spring4+Hibernate4+Atomikos3.3多数据源事务管理
hanqunfeng
Hibernate4
Spring3+后不再对JTOM提供支持,所以可以改用Atomikos管理多数据源事务。Spring2.5+Hibernate3+JTOM参考:http://hanqunfeng.iteye.com/blog/1554251Atomikos官网网站:http://www.atomikos.com/ 一.pom.xml
<dependency>
<
- jquery中两个值得注意的方法one()和trigger()方法
jackyrong
trigger
在jquery中,有两个值得注意但容易忽视的方法,分别是one()方法和trigger()方法,这是从国内作者<<jquery权威指南》一书中看到不错的介绍
1) one方法
one方法的功能是让所选定的元素绑定一个仅触发一次的处理函数,格式为
one(type,${data},fn)
&nb
- 拿工资不仅仅是让你写代码的
lampcy
工作面试咨询
这是我对团队每个新进员工说的第一件事情。这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行。这句话也是我最喜欢的座右铭之一。
这个说法其实很合理:我们的工作是思考客户提出的问题,然后制定解决方案。思考第一,代码第二,公司请我们的最终目的不是写代码,而是想出解决方案。
话粗理不粗。
付你薪水不是让你来思考的,也不是让你来写代码的,你的目的是交付产品
- 架构师之对象操作----------对象的效率复制和判断是否全为空
nannan408
架构师
1.前言。
如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
Src src=new Src();
BeanCopier beanCopier = BeanCopier.create(Src.class, Des.class, false);
- ajax 被缓存的解决方案
Rainbow702
JavaScriptjqueryAjaxcache缓存
使用jquery的ajax来发送请求进行局部刷新画面,各位可能都做过。
今天碰到一个奇怪的现象,就是,同一个ajax请求,在chrome中,不论发送多少次,都可以发送至服务器端,而不会被缓存。但是,换成在IE下的时候,发现,同一个ajax请求,会发生被缓存的情况,只有第一次才会被发送至服务器端,之后的不会再被发送。郁闷。
解决方法如下:
① 直接使用 JQuery提供的 “cache”参数,
- 修改date.toLocaleString()的警告
tntxia
String
我们在写程序的时候,经常要查看时间,所以我们经常会用到date.toLocaleString(),但是date.toLocaleString()是一个过时 的API,代替的方法如下:
package com.tntxia.htmlmaker.util;
import java.text.SimpleDateFormat;
import java.util.
- 项目完成后的小总结
xiaomiya
js总结项目
项目完成了,突然想做个总结但是有点无从下手了。
做之前对于客户端给的接口很模式。然而定义好了格式要求就如此的愉快了。
先说说项目主要实现的功能吧
1,按键精灵
2,获取行情数据
3,各种input输入条件判断
4,发送数据(有json格式和string格式)
5,获取预警条件列表和预警结果列表,
6,排序,
7,预警结果分页获取
8,导出文件(excel,text等)
9,修