原文: 润乾报表的使用 date: 2016-09-15 19:39:04
[TOC]
前言
前段时间项目用到了报表开发, 选择润乾报表来做. 是款纯Java的报表开发工具, 采用设计和集成分离的方式, 开发过程也较为简单.
介绍
设计时需要安装一个报表设计器, 设计过程类似于Excel中的表格设计. 而且支持html, excel, pdf等多种展现方式. 支持导出doc, excel, pdf和打印.
内置一个数据库demo, 很多报表类型的例子, 和非常丰富的教学文档供我们学习, 而且内置Tomcat, 可供我们在设计过程中就在网页中发布报表来查看预览.
安装
安装过程也较为简单, 不在讲述
需要注意的是:
Jdk: 安装中有个选择jdk版本的, 可以选择默认的1.5版本, 也可以自定义选择自己安装的jdk版本. 考虑到设计过程中JRE的兼容问题. 这里可以选择默认的版本, 因为里面的html展现最终是靠jsp来完成, 可以尽量避免设计中的问题.
授权: 在设计器打开和在发布预览中设计器都需要授权, 授权lic文件都可以在网上找到.
安装完成打开设计器如图:
设计
设计过程一般分为 绘制表图, 填写字段和表达式, 配置数据源, 定义数据源和参数, 集成项目等步骤.
1. 绘制表图
为了使最后展现给用户的报表比较满意, 我们可能需要进行显示格式, 段落, 缩进, 字体的设置. 以及最后的打印, 分页都可以在报表属性中设置.
2. 填写字段和表达式
前两个过程较为简单, 我用程序提供的小例子. 效果如下:
在A2单元格中, 相当于一个游标, 来纵向扩展数据. 当然也支持横向扩展, 支持自己选择.
在做分组报表和卡式报表时候, 有一个左/上主格和附属格(子格)的概念:
主格: 原来的扩展单元格.
附属格: 跟随主格扩展的单元格
左主格: 只有纵向扩展才有的概念, 右边的单元格跟随左边的单元格进行纵向扩展, 这个左边被跟随的单元格就是左主格. 其他跟随的单元格叫做附属格.
上主格: 和左主格概念类似, 只不过是在横向扩展中, 称下边附属格上面的即为上主格.
3. 配置数据源
默认的数据源是润乾自带的demo数据库, 可供我们学习和参考.
在实际设计中, 我们通常需要配置自己的数据源, 在新建中选择驱动, 填写数据源URL, 口令和密码即可.
4. 定义数据源和参数
这是比较关键的一步. 在配置中, 可以进行数据集的设置. 数据集支持SQL检索, 存储过程, 复杂SQL等多种类型.
其中SQL检索支持可以检索到你的数据库, 可以用选择的方式进行数据库中 表, 列, 条件, 排序, 参数的设置.
复杂SQL是比较常用的一种数据集创建方式. 直接在里面编写sql就好啦阿.
如果传参的话, 有普通传参和宏传参两种方式.
普通传参(数据集中): 定义: select name, age form student where xxx = ?
参数: 参数表达式: id , 结果类型: 字符串. 配置->参数: 也要配置一下.
宏传参: 定义: select name, age from student where ${maceventid}
配置->宏定义: 也要配置一下.
以上步骤做完, 点击发布报表, 会生成一个raq文件. 这个就是最终要集成到项目的文件.
5. 集成项目
关于报表在项目中的配置文件: reportConfig.xml
配置属性很多, 就不一一列举, 就举几个我配置过的属性:
jdbc-ds-configs: 配置数据库信息
maxCellNum: 在我集成过程中遇到一个错误, cell num exceeds limit
. 意思是单元格数超过限制, 但是我的单元格数据量并不大, 为什么会出现这个错误. 查阅资料, 发现xml文件中有个设置:maxCellNum. 它是一个并发控制的选项, 取决于内存大小. 内存越大可以设置的越大, 不超过2000000.
maxCellNum
100000
再设计器设计过程中->报表属性中有个’报表格数’ 属性, 可以设置它来规定单元格数的限制.
如果不设置. 默认会按defaultCellNum来. 如果没有defaultCellNum, 则会按20000来算, 我的xml中并没有设置它, 所以发生这个错误.
但是在后面做项目过程中, 其他人没有设置居然没有报这个错. 也很无解
defaultCellNum
9999
关于它, 还有更加详细的并发控制.附上链接: http://wenku.baidu.com/link?url=J6iqHMVKd2FDgnBAFsWfdUoHkaEdLeqFlhp4nOB0AumdWQ72-EInuncQ71jpMvjLOcCsZbt7muhxH6kj2AdS3PuF6LFIlfdxnbYWyTb7qsq
errorPage
这个属性来指定异常页, 可以先把myErrorPage.jsp拷贝到项目里. 用来查看异常信息. 比直接看错误页面好多了.
errorPage
/myErrorPage.jsp
除此之外, 还需要拷贝一些必要的文件.
web.xml中report的配置
SetContextServlet
com.runqian.util.webutil.SetContextServlet
2
reportServlet
com.runqian.report4.view.ReportServlet
configFile
/WEB-INF/report/reportConfig.xml
1
reportServlet
/reportServlet
/WEB-INF/report/runqianReport4.tld
/WEB-INF/report/runqianReport4.tld
下面看看最主要的文件吧
首先, 我们设计出来的raq文件怎么在html中展现呢?
只需要在你的请求url上, 映射到showReport.jsp上, url上一般还附带着请求的传参, 和raq文件名.
例如: showReport.jsp?params=”+param+”&reqName=”+raqName;
在showReport.jsp
中:
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/runqianReport4.tld" prefix="report" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.runqian.report4.usermodel.Context"%>
<%
request.setCharacterEncoding( "GBK" );
String report = request.getParameter( "raq" );
String reportFileHome=Context.getInitCtx().getMainDir();
StringBuffer param=new StringBuffer();
//保证报表名称的完整性
int iTmp = 0;
if( (iTmp = report.lastIndexOf(".raq")) <= 0 ){
report = report + ".raq";
iTmp = 0;
}
Enumeration paramNames = request.getParameterNames();
if(paramNames!=null){
while(paramNames.hasMoreElements()){
String paramName = (String) paramNames.nextElement();
String paramValue=request.getParameter(paramName);
if(paramValue!=null){
//把参数拼成name=value;name2=value2;.....的形式
param.append(paramName).append("=").append(paramValue).append(";");
}
}
}
//以下代码是检测这个报表是否有相应的参数模板
String paramFile = report.substring(0,iTmp)+"_arg.raq";
File f=new File(application.getRealPath(reportFileHome+ File.separator +paramFile));
%>
<% //如果参数模板存在,则显示参数模板
if( f.exists() ) {
%>
<% }
%>
其中最关键的两个参数是:
raqName: 接收的是raq的全文件名.
param: 接收的是:“eventid=” + eventid
除此之外, 还需要把该jsp需要引入的jsp和静态资源加进来. 如toolbar.jsp
, style.css
等.
总结
润乾报表是一个国产收费的报表工具, 工作中遇到了, 承认东西很强
但是不喜欢, 所以不想做过多研究
你可能感兴趣的:(润乾报表的使用)
Shell脚本-cut工具
咖啡の猫
chrome 前端
一、前言在Linux/Unix系统中,cut是一个非常实用的文本处理命令,用于从文件或标准输入中提取特定列的内容。它特别适用于处理结构化文本数据,例如CSV文件、日志文件、配置文件等。无论是做数据分析、系统监控,还是编写自动化脚本,cut都是一个不可或缺的工具。本文将带你全面了解cut工具的使用方式,包括:✅cut的基本语法与常用参数✅如何按字符、字节、字段进行提取✅cut在Shell脚本中的实战
Shell脚本-uniq工具
咖啡の猫
java 前端 开发语言
一、前言在Linux/Unix系统中,uniq是一个非常实用的文本处理命令,用于对重复的行进行统计、去重和筛选。它通常与sort搭配使用,以实现高效的文本数据清洗与统计分析。无论是做日志分析、访问频率统计,还是编写自动化脚本,uniq都是一个不可或缺的工具。本文将带你全面了解uniq工具的使用方式,包括:✅uniq的基本语法与常用参数✅如何统计重复行、去重输出、查找唯一行✅uniq在Shell脚本
Shell脚本-tee工具
一、前言在Linux/Unix系统中,tee是一个非常实用的命令行工具,它可以帮助我们同时将命令的输出打印到终端,并写入文件。这种“双路输出”机制在脚本调试、日志记录、自动化任务中非常有用。无论是做日志分析、脚本调试,还是编写部署脚本,tee都是一个不可或缺的工具。本文将带你全面了解tee工具的使用方式,包括:✅tee的基本语法与常用参数✅如何将命令输出既显示又保存✅tee在Shell脚本中的实战
github 个人主页配置
Guthub个人主页(官方称呼是profile)可以展示很多有用的信息,例如添加一个首页被访问次数的计数器,一个被Star与Commit的概览信息,以及各种技能标签,设备标签等,还可以利用wakatime显示你最近编码各类语言的使用时长。默认的主页会显示其仓库信息、提交信息,例如Linux之父Linus的GitHub主页长这样:Github关于主页定制的说明文档:Settingupandmanag
DHTMLX Suite 9.2 重磅发布:支持历史记录、类Excel交互、剪贴板、拖放增强等多项升级
全球知名的JavaScriptUI组件库DHTMLXSuite迎来9.2新版本!此次更新虽为次版本号,却实质性提升了Grid网格组件的交互能力与用户体验,引入了包括历史记录管理、剪贴板操作、数据选择范围管理、Block区块选择等多项高级模块,支持更接近电子表格的使用体验。新版Grid组件不仅在数据可视化、数据编辑方面功能更强,还增强了与主流前端框架(如React、Vue、Angular)的集成示例
airplay认证流程有哪些?
Microtest_CS
AirPlay认证
**AirPlay认证流程解析**在当前的数字时代,无线传输技术已成为连接设备、分享内容的标配。AirPlay,作为苹果公司开发的一种专有无线通信技术,允许用户将音频、视频和屏幕镜像从iOS设备、macOS计算机无线传输到支持的接收设备,如扬声器、电视和投影仪等。为了保障用户的使用体验和内容的传输质量,苹果公司设立了AirPlay认证流程,确保接入AirPlay技术的设备符合其标准和要求。**一、
苹果MFi认证具体流程是什么?
Microtest_CS
服务器 运维 MFi
苹果MFi认证具体流程是一个严谨且细致的过程,旨在确保第三方配件在功能和品质上都能与苹果产品完美兼容,从而为用户提供卓越的使用体验。以下是MFi认证的具体流程详解:一、注册成为苹果开发者账户第一步:申请MFiLiccenses(MFi会员)**企业首先需要向苹果提交申请,成为MFi计划的会员。此步骤中,申请人需要提供详尽的信息,包括但不限于基本信息、硬件设施、公司规模、管理能力及质量管理体系等。苹
Prometheus(六)黑盒监控
疯狂的大饼
性能 linux 运维 centos
黑盒监控(blackbox_exporter)之前介绍的对exporter的使用可以称为“白盒监控”,既需要把对应的exporter程序安装到被监控的目标主机上,从而实现对主机资源及其状态的数据采集工作。黑盒监控,blackbox_exporter无须安装在被监控的目标环境中,用户只需要将其安装在于promethenus和被监控目标互通的环境中,通过HTTP、HTTPS、DNS、TCP、ICMP等
jxORM--整体说明
jxandrew
jxWebUI 数据库 python ORM
系列文章目录:jxORMI–编程指南jxORM是配套jxWebUI使用的数据库操作库。使用说明jxORM的使用非常简单,主要包括几个步骤:1、导入依赖fromjxORMimportjxORMLogger,ORM,DBDataType,ColType,jxDB2、设置数据库连接#用默认设置,设置本地的mysql数据库连接jxDB.set('testDB',password='password')目前
【二分答案】P3743 小鸟的设备
前言九月应该是人生中最后一次CSP了,已经7个多月没碰编程的我显然已经有些力不从心,达到一年前的水平更是不可能。只能写点简单的题目来提升一下。祝我CSPRP++。题意小鸟有nnn个可同时使用的设备。第iii个设备每秒消耗aia_iai个单位能量。能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗。也就是说,对于任意实数,在kkk秒内消耗的能量均为k×aik\timesa_ik×ai
Java 异常处理详解:从基础语法到最佳实践,打造健壮的 Java 应用
大葱白菜
java合集 开发语言 java 后端 个人开发 学习
作为一名Java开发工程师,你一定遇到过运行时错误、空指针异常、文件找不到等问题。Java提供了强大的异常处理机制,帮助我们优雅地捕获和处理这些错误。本文将带你全面掌握:Java异常体系结构try-catch-finally的使用throw与throws的区别自定义异常类的设计Java7+新特性(try-with-resources)常见异常类型及排查方法异常处理的最佳实践与注意事项并通过丰富的代
Python中的条件语句:if-else使用指南
AI软件改变生活
Python 数据库 前端 python
在编程中,条件语句是控制程序流程的核心工具之一,它允许程序根据不同的条件执行不同的代码块。Python提供了简洁而强大的条件语句语法,其中最常用的就是if-else语句。本文将详细介绍Python中if-else的使用方法、常见用法以及一些高级技巧。1.基本语法if-else语句的基本结构如下:Python复制if条件表达式:#如果条件表达式为True,执行这里的代码块passelse:#如果条件
Flutter:Text Widget 文本组件的使用
风一样的code
Flutter学习咒语:"Flutter一切皆组件!"新语言第一个程序当然是'Helloworld'看一下最基础的HelloWold代码import'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContext
Python中if-else判断语句、while循环语句以及for循环语句的使用总结
bentou_
1.if-esle流程判断语句我们来直接看一个例子,如下,判断我们定义的用户名和用户输入的用户名是否一致。代码当中有几个注意点:判断的时候用双等号表示判断是否一致(三个等号表示赋值)你有没有注意到这里不是用的大括号而是用的冒号!python3对父级和子级的写法是极为严格的,就像这里的if跟else,都是父级,需要顶格写;下面的两个子级(print那里)就需要缩进一个tab。_username="b
VPP使用介绍(route、tun、memif、abf)
我要出家当道士
VPP ABF ACL 策略路由 隧道转发
零、参考文献由于是付费文章,我把参考文献放头部,不想购买的可以看参考文献(最全、最完整,如果遇到解决不了的问题还是得去官方文档找答案)。下面的文章是我在项目中运用的经验总结,由于VPP的用法有很多,下面的文章主要介绍VPP的安装、VPP的路由功能、VPP的TUN与Memif接口使用和ABF(ACLBasedForward)的使用。其中,ABF是我遇到最坑的,网上的答案基本都是使用VAT这个工具,但
Python 应用程序分发全指南:从基础到高级工具与实践
面朝大海,春不暖,花不开
Python基础 python 开发语言
文章大纲引言在现代软件开发中,Python因其简洁的语法和强大的生态系统而广受欢迎。然而,将Python应用程序从开发者手中传递给最终用户并非总是简单的过程。分发Python应用程序涉及到诸多挑战,例如依赖管理、跨平台兼容性以及用户环境的多样性。如果分发不当,用户可能面临安装失败或运行错误等问题,从而影响软件的使用体验。本文将深入探讨Python应用程序分发的各种方法,从最基础的源代码分享到现代标
通过外部链接启动 Flutter App(详细介绍及示例)
飞川001
Fluttter flutter xcode android studio
通过外部链接启动FlutterApp(firebase_dynamic_links和app_links)详细介绍通过外部链接启动flutterApp的使用及示例在我们的APP中,经常有点击链接启动并进入APP的需求(如果未安装跳转到应用商店)。Android通过deeplink或者applink(是deeplink的增强版),iOS通过urlschema,可以打开对应的app,因此我们需要对我们的
【设计模式&C#】享元模式(用于解决多次创建对象而导致的性能问题)
大飞pkz
设计模式 C# 设计模式 享元模式 C# 开发语言
一种结构型设计模式。特点是通过共享内部状态来减少对象的数量,从而降低内存使用和提高性能。优点:大幅减少对象的数量,减少了内存的使用,提高了性能;支持更多颗粒度对象,而不会导致内存溢出;可以与对象池技术结合,进一步提高对象池的复用效率。缺点:为了实现享元模式,需要将对象的状态分为内部状态和外部状态,提高了系统的复杂性;享元对象被多个线程共享,可能会导致性能安全问题;适用场景:需要管理大量颗粒度对象;
C#8.0—非空引用类型
weixin_30642267
c#
C#8.0—非空引用类型原文:C#8.0—非空引用类型非空引用类型——C#8.0原文地址:https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/?utm_source=vs_developer_news&utm_medium=referral该新增的特性最关键的作用是处理泛型和更高级API的使用场景。这些都是我
【C++强基篇】学习C++就看这篇--->STL之vector使用及实现
HABuo
C++入门到精通 c++ c语言 开发语言 后端 学习
主页:HABUO主页:HABUOC++入门到精通专栏如果再也不能见到你,祝你早安,午安,晚安目录一、vector的介绍二、vector的使用✨2.1vector的定义✨2.2vectoriterator(迭代器)的使用✨2.3vector空间增长问题✨2.4vector修改✨2.5迭代器失效问题三、vector的简单模拟实现四、总结前言:上篇博客我们了解了STL中的string类,本篇博客我们继续
MATLAB最优滤波器设计函数firpm的使用详解
codersnote
编程小识 matlab 算法 最优滤波器 firpm kaiserord
窗函数法设计的缺点无法选择过渡带、通带、阻带衰减等指标阶数不是最优的凯塞窗[n,wn,beta,ftype]=kaiserord(f,a,dev);h_kaiser=fir1(n,wn
Python SSTI漏洞原理与基础利用以及Fenjing的使用教程
cba尼里托圣
python 网络 web安全
文章目录一、Python类与对象模型基础二、魔术方法的作用与利用价值1.__class__魔术方法2.__bases__与__mro__魔术方法3.__subclasses__()魔术方法4.__init__魔术方法5.__globals__魔术方法三、魔术方法链的构建与利用1.漏洞验证2.获取类对象3.定位到object基类4.遍历object的子类5.定位危险类6.获取全局变量空间7.执行命令
WebDriver 对象中的方法
一百天成为python专家
python pycharm 开发语言 python3.11 ipython
在WebDriver对象中有大量的对浏览器进行操作的方法,其中几种常见方法的使用形式如下back()功能:返回到上一个页面。forward()功能:前进到下一个页面。refresh()功能:刷新当前页面。quit()功能:关闭当前浏览器。close()功能:关闭当前标签页(一个浏览器窗口中展示的每一个网页为一个标签页,当前标签页指当前正在显示的网页)示例代码(操作浏览器):'''前进后退刷新'''
[Python] -项目实战类3- 用Python制作一个记事本应用
踏雪无痕老爷子
Python 开发语言 python
一、为什么要自己写记事本?提升GUI编程能力:通过构建窗口、菜单、文本区等组件,理解基本控件的使用。实用工具:自定义功能、更轻量、更符合个人使用习惯。实验与扩展空间大:方便加入特色功能,如自动保存、代码高亮、插件等。二、准备工作✅安装Python(建议Python 3.7+)。无需安装第三方库,tkinter是Python标准库的一部分。用于构建UI界面。sudoaptinstallpython3
淘宝内部优惠券领取攻略
高省APP大九
在淘宝购物时,你是否曾遇到过心仪的商品却因为价格犹豫不决?别担心,高省APP来帮你解决这个问题!通过高省APP,你可以轻松领取淘宝内部优惠券,享受更多折扣和优惠。下面,我们就来详细介绍一下淘宝内部优惠券的领取方法以及高省APP的使用技巧。高省APP官网邀请码110000一、淘宝内部优惠券的领取方法淘宝内部优惠券是由商家设置的一种特殊优惠券,通常不会直接展示在淘宝平台上,而是需要通过特定的渠道或AP
QT自制TCP客户端教程:实战演练与注释解析
kdbshi
本文还有配套的精品资源,点击获取简介:本教程将引导您使用QT框架构建一个TCP客户端,涵盖跨平台网络编程和QT库的使用。教程详细解释了QTcpSocket类的实现方法,如何处理连接状态、数据收发事件,以及如何在用户界面中集成网络通信功能。通过学习本教程,您将能够理解QT事件驱动模型,并掌握QT项目配置和UI设计。TCP客户端的源代码带有详细注释,便于学习和理解网络通信的实现细节。1.QT框架概述与
C# 设计模式 概述
Krik_S
c# 设计模式 开发语言
一、7种常用的面向对象设计原则1.单一职责原则(SRP):一个对象应该只包含单一的职责,并且该职责被完全封装在一个类中2.开闭原则(OCP):软件实体应当对扩展开放,对修改关闭3.里氏代换原则(LSP):所有引用基类的地方必须透明的使用其子类的对象4.依赖倒转原则(DIP):高层模块不应该依赖低层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象5.接口隔离原则(ISP):客户端不
Jetpack Compose 中 Kotlin 协程的使用
儿歌八万首
jetpack android android ui Compose kotlin 协程
本文将带你系统性地理解JetpackCompose中协程的使用场景、API设计理念、生命周期对齐、性能优化与常见误区,助你写出既响应迅速又稳定可靠的现代AndroidUI代码。1.为什么在Compose中离不开协程传统View系统就离不开异步:网络请求、数据库I/O、动画……进入声明式UI时代,异步需求不仅没减少,反而更复杂——状态驱动让数据变化更加频繁。协程凭借以下优势成为Compose首选:语
小程序, uni-app等不支持svg标签的情况下,svg图标解决方案
非常帅气的昵称吧
SVG因其缩放不失真,可动态改变颜色等特点,在web开发中得到了广泛的使用,目前常见的使用方式有两种1.转换成字体文件线上的网站很多,像iconfont,iconmoon等,可以把选定的图标整合成一套字体文件,然后以特定的标签+类名进行使用2.使用symbol引用主要原理就是把所有要用到的svg文件代码,整合到一个代码块内,并给定每个svg图片一个唯一ID,使用时候通个这个ID引入具体的svg图片
python闭包的应用场景_简单谈谈Python中的闭包
weixin_39587113
python闭包的应用场景
Python中的闭包前几天又有人留言,关于其中一个闭包和re.sub的使用不太清楚。我在脚本之家搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善Python的内容。1.闭包的概念首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释:在计算机科学中,闭包(Closure)是词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在
Java开发中,spring mvc 的线程怎么调用?
小麦麦子
spring mvc
今天逛知乎,看到最近很多人都在问spring mvc 的线程http://www.maiziedu.com/course/java/ 的启动问题,觉得挺有意思的,那哥们儿问的也听仔细,下面的回答也很详尽,分享出来,希望遇对遇到类似问题的Java开发程序猿有所帮助。
问题:
在用spring mvc架构的网站上,设一线程在虚拟机启动时运行,线程里有一全局
maven依赖范围
bitcarter
maven
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile
依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用
Jaxb org.xml.sax.saxparseexception : premature end of file
darrenzhu
xml premature JAXB
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
CSS Specificity
周凡杨
html 权重 Specificity css
有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢? because specificity
CSS 的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。
规则:
HTML标签的权重是1
Class 的权重是10
Id 的权重是100
java与servlet
g21121
servlet
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
eclipse中安装maven插件
510888780
eclipse maven
1.首先去官网下载 Maven:
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.2.3-bin.tar.gz
下载完成之后将其解压,
我将解压后的文件夹:apache-maven-3.2.3,
并将它放在 D:\tools目录下,
即 maven 最终的路径是:D:\tools\apache-mave
jpa@OneToOne关联关系
布衣凌宇
jpa
Nruser里的pruserid关联到Pruser的主键id,实现对一个表的增删改,另一个表的数据随之增删改。
Nruser实体类
//*****************************************************************
@Entity
@Table(name="nruser")
@DynamicInsert @Dynam
我的spring学习笔记11-Spring中关于声明式事务的配置
aijuans
spring 事务 配置
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
java 动态代理简单实现
antlove
java handler proxy dynamic service
dynamicproxy.service.HelloService
package dynamicproxy.service;
public interface HelloService {
public void sayHello();
}
dynamicproxy.service.impl.HelloServiceImpl
package dynamicp
JDBC连接数据库
百合不是茶
JDBC编程 JAVA操作oracle数据库
如果我们要想连接oracle公司的数据库,就要首先下载oralce公司的驱动程序,将这个驱动程序的jar包导入到我们工程中;
JDBC链接数据库的代码和固定写法;
1,加载oracle数据库的驱动;
&nb
单例模式中的多线程分析
bijian1013
java thread 多线程 java多线程
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载。
饿汉式:
package com.bijian.study;
public class Singleton {
private Singleton() {
}
// 注意这是private 只供内部调用
private static
javascript读取和修改原型特别需要注意原型的读写不具有对等性
bijian1013
JavaScript prototype
对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有
【持久化框架MyBatis3六】MyBatis3集成第三方DataSource
bit1129
dataSource
MyBatis内置了数据源的支持,如:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<data
我程序中用到的urldecode和base64decode,MD5
bitcarter
c MD5 base64decode urldecode
这里是base64decode和urldecode,Md5在附件中。因为我是在后台所以需要解码:
string Base64Decode(const char* Data,int DataByte,int& OutByte)
{
//解码表
const char DecodeTable[] =
{
0, 0, 0, 0, 0, 0
腾讯资深运维专家周小军:QQ与微信架构的惊天秘密
ronin47
社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心
java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
bylijinnan
java
public class MinOfShiftedArray {
/**
* Q69 旋转数组的最小元素
* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
* 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
*/
publ
看博客,应该是有方向的
Cb123456
反省 看博客
看博客,应该是有方向的:
我现在就复习以前的,在补补以前不会的,现在还不会的,同时完善完善项目,也看看别人的博客.
我刚突然想到的:
1.应该看计算机组成原理,数据结构,一些算法,还有关于android,java的。
2.对于我,也快大四了,看一些职业规划的,以及一些学习的经验,看看别人的工作总结的.
为什么要写
[开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖
comsci
开源项目
为什么这样说呢? 因为科学和技术的发展有时候需要一个平缓和长期的积累过程,但是行政和商业体系本身充满各种不稳定性和不确定性,如果你希望长期从事某个科研项目,但是却又必须依赖于某种行政和商业体系,那其中的过程必定充满各种风险。。。
所以,为避免这种不确定性风险,我
一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )
cwqcwqmax9
sql
见 http://www.itpub.net/forum.php?mod=viewthread&tid=239011
Web翻页优化实例
提交时间: 2004-6-18 15:37:49 回复 发消息
环境:
Linux ve
Hibernat and Ibatis
dashuaifu
Hibernate ibatis
Hibernate VS iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mappi
备份MYSQL脚本
dcj3sjt126com
mysql
#!/bin/sh
# this shell to backup mysql
#
[email protected] (QQ:1413161683 DuChengJiu)
_dbDir=/var/lib/mysql/
_today=`date +%w`
_bakDir=/usr/backup/$_today
[ ! -d $_bakDir ] && mkdir -p
iOS第三方开源库的吐槽和备忘
dcj3sjt126com
ios
转自
ibireme的博客 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份
Github上排名靠
html wlwmanifest.xml
eoems
html xml
所谓优化wp_head()就是把从wp_head中移除不需要元素,同时也可以加快速度。
步骤:
加入到function.php
remove_action('wp_head', 'wp_generator');
//wp-generator移除wordpress的版本号,本身blog的版本号没什么意义,但是如果让恶意玩家看到,可能会用官网公布的漏洞攻击blog
remov
浅谈Java定时器发展
hacksin
java 并发 timer 定时器
java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。
Timer与ScheduleThreadPoolExecutor对比:
1.
Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列
移动端页面侧边导航滑入效果
ini
jquery Web html5 css javascirpt
效果体验:http://hovertree.com/texiao/mobile/2.htm可以使用移动设备浏览器查看效果。效果使用到jquery-2.1.4.min.js,该版本的jQuery库是用于支持HTML5的浏览器上,不再兼容IE8以前的浏览器,现在移动端浏览器一般都支持HTML5,所以使用该jQuery没问题。HTML文件代码:
<!DOCTYPE html>
<h
AspectJ+Javasist记录日志
kane_xie
aspectj javasist
在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。
@Override
public String get(String key) {
// long start = System.currentTimeMillis();
// System.out.println("Be
redis学习笔记
MJC410621
redis NoSQL
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
使用redis实现分布式锁
qifeifei
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret
BI并非万能,中层业务管理报表要另辟蹊径
张老师的菜
大数据 BI 商业智能 信息化
BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP、CRM、SCM、进销存、HER、OA等。
BI系统不同于传统的管理信息系统,他号称是一个整体应用的解决方案,是融入管理思想的强大系统:有着系统整体的设计思想,支持对所有
安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题
wudixiaotie
function
1.在~/.bashrc最后加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
2.重新启动terminal输入:
rvm use ruby-2.2.1 --default
把当前安装的ruby版本设为默