J-IM

maven集成freemarker构建word文件下载

流过昼夜 提交于 2020-03-09 11:30:42
1.引入freemarker < dependency > < groupId > org.freemarker </ groupId > < artifactId > freemarker </ artifactId > < version > 2.3.28 </ version > </ dependency > 2.构建word模板,先创建word文件, 注:本人使用的2003版本的word文档,其他版本未进行测试 3.创建完后word文件后,取名:temp.doc文件,并打开temp文件,另存为temp.xml格式文件;保存类型选择如下: 4.打开temp.xml文件,使用Notepad++文本编辑器,需要安装一个组件,选择插件=》插件管理,进入插件列表,并在可用里面搜索:Xml tool,并进行安装,安装后如下: 然后打开xml文件,进行文件格式化处理 打开文件后,并在文件找到其想替换的字符,如想替换jim,需要在xml中找到jim字符, 使用freemarker标签替换为${author} 表格替换 替换完成后,把temp.xml文件的后缀改成ftl格式,temp.ftl 5.构建ftl转换冲word的工具类 import freemarker.template.Configuration; import freemarker.template.Template;

AMD集中擢升高管:从Intel挖了个高手

馋奶兔 提交于 2020-02-26 19:25:59
  1 月 17 日,AMD 官方宣布多项人事升迁、新人任命,擢升了四位高级副总裁:   AMD 同时还宣布, 聘请行业资深人士 Daniel McNamara 出任高级副总裁兼服务器业务部总经理 ,负责在第二代 EPYC 霄龙处理器成功问世的基础,上进一步推进公司高性能服务器解决方案与云、企业和生态系统合作伙伴的结合。   据介绍,McNamara 在半导体和企业经营方面有着丰富的专业知识,拥有持续积累的工程执行经验,曾成功在数据中心市场带动增长,有趣的是 此前还曾担任 Intel 高级副总裁兼网络与自定义逻辑事业部总经理。   McNamara 已有长达 27 年的职业生涯中,还曾在 Altera、StarGen、SemiTech Solutions、Raytheon 负责高级管理与工程设计。   这两年,Intel 陆陆续续从 AMD 挖走了不少高层,尤其是 CPU 架构设计师 Jim Keller、GPU 架构设计师 Raja Kudori 为代表。现在,AMD 终于也反挖对手了。 来源: oschina 链接: https://my.oschina.net/u/4436414/blog/3159661

【DB究谈】浅谈对数据库隔离级别的理解

纵饮孤独 提交于 2020-02-26 15:10:08
浅谈对数据库隔离级别的理解 当人们提及数据库管理系统 (DBMS) ,必会提及事务、 ACID 特性以及事务隔离级别。 事务本身是为了保证系统的运行状态最终将处于一致性 ( 满足一组约束条件 ) 的状态而出现的概念,其中的 ACID 特性中的 I(Isolation) 要保证在并发操作 情况下 数据库 最终 可以处于 ” 一致 ” 的状态 。但是自问一下便会产生诸多疑点 : 到底什么是事务隔离级别?为什么要有事务隔离级别?作为理论基础的每种隔离级别如何定义以及分别有什么作用呢? 下面主要结合经典论文 [1] 和相关经验来简要地谈谈自己的理解。 ( 一 ) 到底什么是事务隔离级别?为什么要有事务隔离级别? 事务四大特性 ACID 中的 I(Isolation) 字面意思是 ” 隔离性 ” ,实质上就是指对数据操作的并发控制。那么该问题换句话说即, 为什么需要并发控制?它解决了什么问题? 在数据库中, 如果对于同一数据项的所有事务操作都被串行化地执行,那么执行过程与结果是没有问题的 。如果存在并发操作,即多个事务的生命周期 ( 时间区间 ) 之间存在交集,就 可能 产生操作上的冲突和依赖,进而引发异常现象。对于同一数据项,两个并发操作的执行过程一定是有先后而非物理上的同时的,其结果取决于争抢与调度策略。 操作顺序类型可以分为 读 - 读、读 - 写、写 - 读、写 - 写 4 种类型

Mysql基本操作

二次信任 提交于 2020-02-26 03:01:28
查看 mysql 中已经有的数据库 二、删除已经有的数据库 school 三、创建新数据库 myschool 四、进入到 myschool 中 五、查看 myschool 库中所有的表 六、新建一张 student 表 七、查看 student 表结构 八、插入两个学生的信息 九、再次查询表中数据 十、给 student 表添加两列 :age 和 sex,age 默认值为 0,sex 默认值为 ’m’ 十一、给 student 表插入 zhangsan 这个学生信息,性别与 age 都使用默认值 十二、给 student 表插入 zhansan 这个学生信息,性别与 age 不使用默认值 十三、修改 sex 列的类型由 char(4) 改为 char(8) 十四、修改 sex 列名为 gender 十五、修改表名由 student 变为 stu 十六、新建表 score 十七。给 score 设置联合主键 (stuId,subject) 十八、给 score 设置外健列 stuId, 使它引用 stu 表的 id 十九、给 score 表添加四行数据,分别是 tome,jim,zhangsan 的 C++ 和 Java 考试成绩 二十、再添加一条 10 号学生的 java 成绩(其实这个学生在 stu 表中根本不存在,我们用此操作引发的错误来验证联合主键与外键) 二十一

分布式事务——三阶段提交

落花浮王杯 提交于 2019-12-23 20:29:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在前文,我们介绍来了分布式事务,以及分布式事务的解决方案之一的 二阶段提交 。 本文介绍分布式事务处理方案之一的三阶段提交协议。 分布式事务 分布式事务是指发生在多个数据节点之间的事务,分布式事务比单机事务要复杂的多。在分布式系统中,各个节点之间在是相互独立的,需要通过网络进行沟通和协调。由于存在事务机制,可以保证每个独立节点上的数据操作可以满足ACID。但是,相互独立的节点之间无法准确地知道其他节点的事务执行情况。所以从理论上来讲,两个节点的数据是无法达到一致的状态。如果想让分布式部署的多个节点中的数据保持一致性,那么就要保证在所有节点数据的写操作,要么全部都执行,要么全部都不执行。但是,一台机器在执行本地事务的时候无法知道其他机器中的本地事务的执行结果,所以它也就不知道本次事务到底应该commit还是rollback。所以,常规的解决办法就是引入一个"协调者"的组件来统一调度所有分布式节点的执行。 为了解决这种分布式一致性问题,前人在性能和数据一致性的反反复复权衡过程中总结了许多典型的协议和算法。其中比较著名的有二阶提交协议(Two Phase Commitment Protocol)、三阶提交协议(Three Phase Commitment Protocol)和Paxos算法。针对分布式事务,是X

分布式事务——两阶段提交

和自甴很熟 提交于 2019-12-11 20:02:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica), 这些副本会放置在不同的节点上。这些数据节点可能是物理机器,也可能是虚拟机。为了对用户提供正确的CURD等语意,我们需要保证这些放置在不同节点上的副本是一致的,这就涉及分布式事务的问题。 本文介绍分布式事务处理方案之一的两阶段提交协议。 分布式事务 分布式事务是指发生在多个数据节点之间的事务,分布式事务比单机事务要复杂的多。在分布式系统中,各个节点之间在是相互独立的,需要通过网络进行沟通和协调。由于存在事务机制,可以保证每个独立节点上的数据操作可以满足ACID。但是,相互独立的节点之间无法准确地知道其他节点的事务执行情况。所以从理论上来讲,两个节点的数据是无法达到一致的状态。如果想让分布式部署的多个节点中的数据保持一致性,那么就要保证在所有节点数据的写操作,要么全部都执行,要么全部都不执行。但是,一台机器在执行本地事务的时候无法知道其他机器中的本地事务的执行结果,所以它也就不知道本次事务到底应该commit还是rollback。所以,常规的解决办法就是引入一个"协调者"的组件来统一调度所有分布式节点的执行。 为了解决这种分布式一致性问题,前人在性能和数据一致性的反反复复权衡过程中总结了许多典型的协议和算法

是否有快速的Git命令来查看文件的旧版本?

雨燕双飞 提交于 2019-12-10 16:50:52
Git中是否有命令可以查看(转储到stdout或 $PAGER 或 $EDITOR )特定文件的特定版本? #1楼 如果您喜欢GUI,则可以使用gitk: 用以下命令启动gitk: gitk /path/to/file 在屏幕顶部选择修订版本,例如按描述或日期。 默认情况下,屏幕的下部显示该版本的差异(对应于“补丁”单选按钮)。 要查看所选版本的文件: 单击“树”单选按钮。 这将显示该修订版中文件树的根。 深入到您的文件。 #2楼 按日期执行如下操作: git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt 请注意, HEAD@{2013-02-25} 表示此存储库中的“ HEAD位于2013-02-25上”(使用 reflog ),而不是“此历史记录中2013-02-25之前的最后一次提交”。 #3楼 除了 Jim Hunziker 的回答, 您可以将修订版中的文件导出为 git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt 希望这可以帮助 :) #4楼 您可以将 git show 与来自存储库根目录的路径一起使用( ./ 或 ../ 用于相对路径): $ git show REVISION:path

是否有快速的Git命令来查看文件的旧版本?

我的梦境 提交于 2019-12-08 14:17:25
Git中是否有命令可以查看(转储到stdout或 $PAGER 或 $EDITOR )特定文件的特定版本? #1楼 如果您喜欢GUI,则可以使用gitk: 用以下命令启动gitk: gitk /path/to/file 在屏幕顶部选择修订版本,例如按描述或日期。 默认情况下,屏幕的下部显示该版本的差异(对应于“补丁”单选按钮)。 要查看所选版本的文件: 单击“树”单选按钮。 这将显示该修订版中文件树的根。 深入到您的文件。 #2楼 按日期执行如下操作: git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt 请注意, HEAD@{2013-02-25} 表示此存储库中的“ HEAD位于2013-02-25上”(使用 reflog ),而不是“此历史记录中2013-02-25之前的最后一次提交”。 #3楼 除了 Jim Hunziker 的回答, 您可以将修订版中的文件导出为 git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt 希望这可以帮助 :) #4楼 您可以将 git show 与来自存储库根目录的路径一起使用( ./ 或 ../ 用于相对路径): $ git show REVISION:path

解析GMAT语法中常见的8大一致性问题考点

限于喜欢 提交于 2019-12-04 23:58:46
GMAT语法 中的一致性问题是高频的考点,常有考生因为对这个问题不够重视而引发错误。为了避免在这个考点上扣分,下面小编就为大家解析GMAT语法中有关一致性的8大常见考点。 什么是GMAT语法的一致性问题? 所谓语法上一致就是谓语动词和主语在单、复数形式上保持一致。光从字面上来看貌似十分简单,但涉及到具体题目中却往往会成为扣分杀手。具体来说,在GMAT语法中有关一致性的具体考点主要有以下8种: 1. 主语谓语单复数一致 以单数名词或代词、动词不定式短语、动名词短语或从句作主语时,谓语动词一般用单数形式;主语为复数时,谓语动词用复数形式。 如:His father is working on the farm. / To study English well is not easy. / What he said is very important for us all. / The children were in the classroom two hours ago. / Reading in the sun is bad for your eyes. 注意:由what引导的主语从句,后面的谓语动词多数情况用单数形式,表语是复数或what从句是一个带有复数意义的并列结构时,主句的谓语动词用复数形式。如:What I bought were three English books.

一起来学Java8(三)——方法引用

爷,独闯天下 提交于 2019-12-01 09:45:31
在 一起来学Java8(一)——函数式编程 中有一个简单的函数式编程的例子: import java.util.function.Consumer; class Person { public static void sayHello(String name) { System.out.println("hello " + name); } } public class TestPerson { public static void main(String[] args) { work(Person::sayHello); // hello Jim } public static void work(Consumer<String> consumer) { consumer.accept("Jim"); } } 其中 Person::sayHello 被称为 方法引用 ,方法引用可以用Lambda表达式来代替,代码如下: public static void main(String[] args) { work((name) -> { System.out.println("hello " + name); }); // hello Jim } 方法引用和Lambda关系 方法引用和Lambda表达式之间有什么关系呢? 方法引用可以看做是Lambda表达式的一种快捷方式