服务器端

报表性能优化方案之报表取数

扶醉桌前 提交于 2019-12-04 17:04:39
1. 取数原理 设计器拼出最终的SQL,将SQL语句传给数据库,数据库执行,将数据返回给设计器。 由于计算过程首先要通过SQL语句从数据库中取数据,我们可以通过控制数据量的大小和对数据的提前预处理来提高报表的性能。下面是一些优化的方法。 2. 优化SQL FineReport报表的数据集采用的是表模型,也就是说通过SQL这种DSL语言,从数据库通过简单查询或各种组合关联查询得到一个关系表,而这部分SQL查询根据各种数据库产商长时间的优化(比如建立索引),已经非常成熟。数据集一般要通过FineReport报表模型的复杂处理才能生成最终的表样。因此,从数据库SQL查询取出数据量越少,FineReport报表模型需要做的复杂处理和计算就越少,所花的时间和内存就少,从而可以提高性能。 2.1 SQL语句取具体的字段 我们一般会用select * from 这样的形式将一个数据库表中所有的字段都取出来,而其中一些字段是报表中不需要用到的,例如报表中只需要用到三个字段,但是数据库中实际的表有十个字段,一些初学者习惯性的用select * from table1,这样相当于把十个字段的数据都取到报表服务器端,增加了报表服务器端的内存占用以及减慢了运算速度,所以SQL语句中尽量不要用“*”号,而是写上具体的字段,能够减少报表服务器端的内存占用,加快报表的运算速度。 2.2

java第一次笔试+面试总结

核能气质少年 提交于 2019-12-04 16:18:22
今天是自己第一次java笔试和面试,总体感觉比预期好一点。 笔试题第一面是问答题,主要考查java基础,一共有18题,我有6道题没有写出来。第二面主要是算法题,一共有8道题,我大概写出来4道题,第三面主要是逻辑题和涉及http, 操作系统的一些题目,我做的太慢了,根本就没做到哈哈哈哈。 下面整理一下10道不会的题目,希望以后继续加油啦! 1.持久层设计要考虑哪些问题?你用过的持久层框架有哪些? 答:”持久“就是将数据保存到可掉电式存储设备中以便以后使用。简单来说,就是将内存中的数据保存到关系型数据库、文件系统、消息队列等提供持久化支持的设备中。持久 层就是专注于实现数据持久化的相对独立的层面。 持久层设计的目标包括: 一数据存诸逻辑的分离,提供抽象化的数据访问接口 一数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现 一资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制) 一数据抽象,提供更面向对象的数据操作 持久层框架有”Hibernate Mybatis ,Toplink, Guzz,jOOQ,Spring Data, .ActiveJDBC。 2、什么是IOC和DI ? DI是如何实现的? 答:I0C叫控制反转,是Inversion of Control的缩写, DL (Depedency Injection)叫依赖注入,是对IOC更简单的诠释

ajax基础学习

╄→гoц情女王★ 提交于 2019-12-04 16:13:34
一、 Ajax概述 1、 什么是ajax 什么是同步:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 什么事异步:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死 2、 ajax运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里, 客户端可以任意进行任意操作,直到服务器端将数据返回 给Ajax引擎后,会触发你设置的事件,从而执行自定义 的js逻辑代码完成某种页面1 功能。 二、 js原生ajax技术 1 创建Ajax引擎对象 var xmlhttp = new XMLHttpRequ est(); 2、绑定监听 xmlhttp.onreadystatechange = function(){ if(xmlHttp.readyState==4&&xmlHttp.status==200){ //5、接受相应数据 var res = xmlHttp.responseText; document.getElementById("span1").innerHTML = res; } } 3、绑定提交地址 xmlHttp.open("GET","/WEB22/ajaxServlet?name=lisi",true); 4、发送请求 xmlHttp.send();

AJAX基础学习3之JSON

元气小坏坏 提交于 2019-12-04 16:06:37
1、数据格式 在服务器端AJAX是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的变成语言智能以如下3中格式返回数据: ①XML ②JSON ③HTML 2、JSON JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。 JSON的规则很简单:对象是一个无序的”名称/值“对的集合。一个对象以"{"(左括号)开始,"}"(右括号)结束。每个”名称“后跟一个”:“(冒号);”名称/值“对之间使用”,“(逗号)分隔。 规则如下: ①映射用冒号(”:“)表示。名称:值 ②并列的数据之间用逗号(",")分隔。名称1:值1,名称2:值2 ③映射的集合(对象)用大括号(”{}“)表示。{ 名称1:值1,名称2:值2 } ④并列数据的集合(数组)用方括号(”[]“)表示 [ { 名称1:值1,名称2:值2 } , { 名称1:值1,名称2:值2 } ] ⑤元素值可具有的类型:string,number,object,array,true,false,null 格式:var people={"firstname":"zhang",

question

南楼画角 提交于 2019-12-04 15:45:52
400:请求无效 403:服务器端拒绝访问 声明的对象 Aop是基于代理对象来实现功能扩展;代理对象DI注入给controller层对象里面的组合引用 handermapping(是将url和targetObject+targetMethod绑定); springmvc的流程:客户端向服务器端发起请求,tomcat服务器端会从池中获取一个线程,线程调io读取网络数据,读到数据并处理数据封装到requset对象(参数httpservletrequest),交给过滤器(filters)进行过滤,再到dispatcherservlet(继承了httpservlet)(其核心方法dodispatcher)->handlermapping(getHandler方法接受httpservletrequest参数)->处理器适配器(httpservletrequest参数,object参数)->controller->service->dao->数据库交互--model+view->视图解析器->视图渲染->最后通过前端控制器响应给前端. handlermapping核心方法getHandler返回HandlerExecutionChain,包装了当前请求需要执行的Handler和interceptors Spring AOP 同一切面下的Advice执行顺序:

项目问题

99封情书 提交于 2019-12-04 15:45:51
问题: 1.在角色管理模块的添加操作时,客户端没有向服务器端传递id,因为添加角色操作不用传id,服务器端想拿到这个值。 思路:通过查找官网解决问题 解决:服务器端mapper文件中inert标签中属性useGeneratedKeys表示执行添加记录之后可以获取到数据库自动生成的主键ID,并将值赋值给keyProperty属性值 带来的问题:并发量比较大的时候,id值可能会重复 解决:会在业务层设置主键值,并用syn设置并发安全 2.pom的导入问题 3.二级缓存设置readOnly属性被设置为 true时。缓存会给所有调用者返回缓存对象的相同实例。如果被修改。可能会产生脏读的情况。 解决办法:设置为false,可读写的缓存会(通过序列化)返回缓存对象的拷贝。 速度上会慢一些,但是更安全。 来源: https://www.cnblogs.com/yunianzeng/p/11872050.html

在Linux虚拟机上搭建git

假装没事ソ 提交于 2019-12-04 12:54:53
一.安装Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 1.服务端: # yum install -y git “”“ 安装完成显示如下 。。。。。。 Installed: git.x86_64 0:1.7.1-9.el6_9 Dependency Installed: perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-9.el6_9 Complete! ”“” 查看git版本 # git --version git version 1.7.1 2.客户端,下载 Git for Windows (win64位获取地址),其他地址: https://git-for-windows.github.io/ 默认安装就可以,安装完后可以查看版本。 $ git --version git version 2.9.3.windows.2 二、服务端创建用户 [root@localhost home]# id git id: git:无此用户 [root@localhost home]# useradd git # 设置用户名 [root@localhost home]# passwd git # 设置用户密码 三、服务端创建Git仓库 [root@localhost home]#

NFS服务的用户身份映射

痞子三分冷 提交于 2019-12-04 09:43:01
NFS(Network File System,网络文件系统)是一种在企业内部网络使用比较广泛的文件共享服务,主要用于Linux以及类UNIX系统之间的文件共享。它采用C/S工作模式,在NFS服务器上将某个目录设置为共享目录,然后在客户端可以将这个目录挂载到本地使用。NFS服务诞生于上世纪80年代,虽然在CentOS7.6系统中采用的是目前最新的NFSv4版本,但由于NFS服务本身比较简单,尤其是在权限设置方面功能比较弱,所以如果对NFS服务设置不当,将会在企业网络中产生比较严重的安全隐患。本文就NFS服务的用户身份映射问题进行了分析,并给出了推荐的配置和使用方法。文中准备了两台Linux虚拟机来搭建实验环境,虚拟机所使用的操作系统版本为CentOS7.6。其中名为Server的虚拟机IP地址是192.168.80.10,名为Client的虚拟机IP地址是192.168.80.101。 1. NFS的基本配置 NFS服务在CentOS7系统中默认已经安装,但并未运行,因而首先需要在虚拟机Server中执行“systemctl start nfs”命令启动服务,然后再执行“systemctl enable nfs”命令将服务设置为开机自动运行。 在服务器端新建一个/var/share目录,并在其中创建一个测试文件test.txt。 [root@server ~]# mkdir

Bayeux研究(一)

你离开我真会死。 提交于 2019-12-04 09:15:22
Bayeux的主要目的是支持使用ajax的客户端与服务器端之间灵敏,快速的信息交互。 Bayeux是一种用来在客户端和服务器端传输低延迟的异步消息(主要通过http)的一种协议。它定义的消息通过命名通道进行路由并且能够进行交互传 送:server -> client, client -> server 甚至 client -> client (当然还是需要通过server中转)。默认的,此通道已经引用了发布的路由语义,但同时也支持其它路由模块。 从服务器端向客户端异步发送的数据通常被叫做 “服务器推”(server-push)。这种使用ajax的web应用和服务器推技术的结合称作“Comet”。 Cometd是一个提供多种开发语言的Bayeux项目,由Dojo基金会提供支持。 Bayeux允许实现器通过更加简单的交互,解决普通的消息分发和路由的问题,同时为日益增加的改进和扩展提供相应机制,Bayeux希望通过这种方式力求减少开发“Comet驱动”应用的复杂度。 来源: oschina 链接: https://my.oschina.net/u/1757911/blog/779655

thinkphp rpc

眉间皱痕 提交于 2019-12-04 08:50:08
RPC (Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 ThinkPHP支持广泛的RPC协议,包括PHPRPC、HPRose、JsonRPC以及Yar。 PHPRPC支持 PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。目前该协议的最新版本为 3.0。详细的资料可以参考phprpc官网( http://www.phprpc.org/zh_CN/)