概述:
现在简要的介绍Jasperreport 是 如何工作的,这样你可以更好的理解iReport 是如何帮助Jasperreport 实现前端的 工作,其实这些工作在我们看来就是“脏活”,为什么呢?看看下面的资料就知 道了:
首先是要有一个XML 文件(一般是以jrxml后缀),那么这个XML文件从那里来呢?做什么用呢? 这 个XML 文件就是报表的定义文件,整个报表的每一个细节都在这个XML 文件 之中定义,一个简单报表的xml文件就有几百行,你可以手工编辑这个XML文 件(一行一行,一段一段的编辑吧――这就是所谓的“脏活”),然后可以在jsp后台使用JasperCompileManager将xml文件编译为jasper文件
ireport工具就是简化编写xml文件和编译的这个流程,而且提供可视化编辑窗口,非常方便
ireport部分:
我使用的是ireport3.0和现在最新的4.0界面上有很大的不同:
3.0界面:
这里,我假设ireport的环境已经配置完毕,点击左上角的档案,选择开启新档,设置报表初始化参数:
注意一下里边的字段数的按钮,字段数设置默认为1,如果设置为2的话,就相当于每一列会有2个字段排列,这样讲有点抽象,请看下边
的例子:
假设我们的数据表是这样:
name
sex
realname
remark
a_1
b_1
c_1
d_1
a_2
b_2
c_2
d_2
a_3
b_3
c_3
d_3
a_4
b_4
c_4
d_4
如果ireport的字段数设为2,结果会变成:
name
sex
realname
remark
a_1 a_2
b_1 b_2
c_1 c_2
d_1 d_2
a_3 a_4
b_3 b_4
c_3 c_4
d_3 d_4
所以,一般设置字段数为1即可。
新建后,可以看到中间的控制面板:
这里,假设您只需要报表显示表格和统计数据,所以title和lastpagefooter可以不要,在左上角的预览里,选择栏,把title和lastpagefooter高度设为0.
下面开始设计报表:
然后可以拖拉到控制面板对应字段对齐
这里假设各位都会对其,效果图如下:
使用报表变量,计算统计值:
document下右键添加variable,出现这个界面,然后按照这样设置:
这里我是统计列a的个行相加值,因为前面 已经设置了sum,所以,报表会自动计算列a的相加值。
这里设计报表要注意几点:
1.字段间要对齐,方框为红色的,表明是超出报表边界
2.写表达式的时候,与java类型兼容,但是写法有点不同,类型转换要用new 类型 不然会报错
jsp处理报表部分
设置report环境:
1.每个Web应用都会有WEB-INF目录,但是lib 是不一定有的,如果没有就创 建它,本文需要的jar库文件有3个: jasperreports-0.5.3.jar :jasperreports执行时需要的API iTextAsian.jar :亚洲字符集支持 itext-1.02b.jar :其他字符集支持
2.在Web应用中根目录下创建repotrs目录,其实这是一种建议,没有必要完 全按照这样做,你可以根据你的业务需要创建N个目录或是层次目录。 把.jasper文件拷贝到repotrs目录下,比如例子中的BusinessRpt.jasper 文件。
jsp两种模式:
1.直接使用jsp处理报表
2.使用servlet处理报表
1.使用jsp处理报表:
jsp文件:
<%@ page session="false" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="javax.naming.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
DataSource ds = null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
//装载jasper 文件
File business_rpt = new
File(application.getRealPath("/reports/BusinessRpt.jasper"));
// http://blog.csdn.net/jemlee2002/archive/2004/10/08/JJem3.aspx
//ProjectName 就是iReport 的变量$P{ProjectName}的名称,
//proname 就是从界面上获取的值。
Map parameters = new HashMap();
parameters.put("ProjectName ", proname);
// JasperRunManager是一个输出控制管理类,下文会提及部分内容
JasperRunManager.runReportToHtmlFile(business_rpt.getPath(),parameters,conn);
//如果创建报表成功,则转向该报表,其实可以把报表套在框架内,这样实现比较有意
义的报表格式。
response.sendRedirect("/reports/BusinessRpt.html");
}catch(Exception ex){
out.print("出现例外,信息是:"+ex.getMessage());
ex.printStackTrace();
}
%>
2.使用servlet处理报表:
主要区别就是,servlet是直接输出report报表流:
先写一个CustomDataSource类实现report的JRDataSource接口,转化vector向量为数据源:
public class CustomDataSource implements JRDataSource
{
private Vector dataVector = new Vector();
private int index = -1;
public CustomDataSource(Vector DataVector)
{
dataVector=DataVector;
}
public boolean next() throws JRException
{
index++;
return (index < dataVector.size());
}
public Object getFieldValue(JRField field) throws JRException
{
Object value = null;
String fieldName = field.getName();
value=((Map)dataVector.get(index)).get(fieldName);
return value;
}
}
输出html:
ServletContext context = this.getServletConfig().getServletContext();
File reportFile = new File(context
.getRealPath("/reports/test.jasper"));//加载报表路径
if (!reportFile.exists()) {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.print("");
return;
}
Map parameters = new HashMap();
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
try {
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());//加载报表
/*
java.lang.reflect.Field pageHeight = JRBaseReport.class.getDeclaredField("pageHeight");
pageHeight.setAccessible(true);
pageHeight.setInt(jasperReport, 500);
*/
JasperPrint jasperPrint = JasperFillManager
.fillReport(jasperReport, parameters,
new CustomDataSource((Vector) re
.get(1)));//加载数据源和parameters,这里的数据源用到的是JRDataSource,所以要实现JRDataSource接口
JRHtmlExporter exporter = new JRHtmlExporter();
Map imagesMap = new HashMap();
request.getSession().setAttribute("IMAGES_MAP",
imagesMap);
String header = "";
header = "\n";
header += "\n";
header += "\n";
header += " \n";
header += "\n";
header += "\n";
header += "\n";
header += "\n";
header += " \n";
header += "\n";
exporter.setParameter(
JRExporterParameter.JASPER_PRINT,
jasperPrint);
exporter.setParameter(
JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(
JRHtmlExporterParameter.IMAGES_MAP,
imagesMap);
exporter.setParameter(
JRHtmlExporterParameter.IMAGES_URI,
"/Images/");
exporter
.setParameter(
JRHtmlExporterParameter.HTML_HEADER,
header);
exporter.exportReport();
pdf输出:
byte[] bytes = null;
try {
bytes = JasperRunManager.runReportToPdf(reportFile
.getPath(), parameters,
new CustomDataSource((Vector) re.get(1)));
if (bytes != null && bytes.length > 0) {
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response
.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("ErrorTime:" + new Date());
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.print("");
}
excel输出:
try {
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());
ServletOutputStream ouputStream = response
.getOutputStream();
JasperPrint jasperPrint = JasperFillManager
.fillReport(jasperReport, parameters,
new CustomDataSource((Vector) re
.get(1)));
response.setContentType("application/ms-excel");
response.setHeader("Content-Disposition",
"inline;filename=\""
+ jasperPrint.getName() + ".XLS\"");
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(
JRExporterParameter.JASPER_PRINT,
jasperPrint);
exporter.setParameter(
JRExporterParameter.OUTPUT_STREAM,
ouputStream);
exporter
.setParameter(
JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
Boolean.TRUE);
exporter
.setParameter(
JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
exporter
.setParameter(
JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);
exporter.exportReport();
}
catch (Exception e) {
e.printStackTrace();
System.out.println("ErrorTime:" + new Date());
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.print("");
}
转载于:https://www.cnblogs.com/dodohua/archive/2011/01/28/1947166.html
你可能感兴趣的:(ireport制作jasperreport报表详细过程(包括jsp端代码实现))
vscode ESP32配置
WIP56
vscode ide 编辑器
一、自定义文件组件使用xxxx.cxxxx.h1:控制端工程目录创建组件文件夹》idf.py-Ccomponentscreate-componentUser_led2:定义组件如果引用指定外部依赖库,当前文件的cmakelists.txt添加REQUIRESdriveridf_component_register(SRCS"uesr_led.c"INCLUDE_DIRS"include""."#)
stm32电机驱动模块
想要成为糕手。
stm32 单片机 嵌入式硬件
电机驱动模块是智能车等电子设备中用于驱动电机运转的重要部件,它能将微控制器输出的控制信号转换为足够的功率和电流来驱动电机。以下为你详细介绍电机驱动模块的相关信息:常见类型1.L298N电机驱动模块特点高电压、大电流驱动能力:能够驱动高达46V的电机,持续输出电流可达2A,瞬间峰值电流能达到3A,适用于驱动各种中小型直流电机。双通道控制:可以同时控制两个直流电机的正反转和调速,也能用于驱动一个步进电
PHP 数据库操作:以 MySQL 为例
来恩1003
PHP 从入门到精通 数据库 php mysql
PHP学习资料PHP学习资料PHP学习资料在PHP应用开发中,与数据库进行交互是一项核心任务。MySQL作为一种广泛使用的关系型数据库管理系统,和PHP搭配默契,为开发者提供了强大的数据存储和管理能力。接下来,我们将详细讲解如何使用PHP进行MySQL数据库的连接、查询、插入、更新、删除等操作,以及数据库事务处理。一、数据库连接在PHP中,使用mysqli扩展(面向对象风格)或mysql扩展(过程
DeepSeek对AI发展的范式革新与推动:研究报告
芝士AI吃鱼
DeepSeek AI OpenAI LLM
DeepSeek对AI发展的范式革新与推动:研究报告一、技术范式的突破:从“算力堆砌”到“极致工程化”DeepSeek的成功标志着AI发展从依赖大规模算力投入向算法优化与工程效率的转变。其核心技术突破包括:低算力消耗的模型训练通过蒸馏训练策略、动态模型剪枝和稀疏训练,DeepSeek将训练成本降至OpenAI同类模型的1/10,同时保持性能可比甚至超越。例如,其训练成本仅558万美元,而OpenA
使用opencv实现深度学习的图片与视频的超分辨率
人工智能研究所
人工智能之计算机视觉 opencv 深度学习 视频超分辨率 图片超分辨率
图片超分辨率什么是视频与图片的超分辨率,总结一下便是给一张分辨率比较低的图片,进行超分辨率的处理后,生成比较清晰的高分辨率的图片,上图图片完美解释了超分辨率的过程,由于不同的算法不同,处理的结果也不相同,本期我们介绍一下如何进行图片的超分辨率的处理。·EDSR模型图像超分辨率EDSR:EnhancedDeepResidualNetworksforSingleImageSuper-Resolutio
Python之json模块的序列化和反序列化
如梦@_@
python基础
序列化:可以理解为压缩反序列化:可以理解为解压Python中序列化和反序列化其实就是一个正反两个过程。序列化就是将Python对象转化为json格式,因为Python对象只有Python语言能够识别,如果想把数据发给Java代码写的程序,那么就识别不了,所以就有一个中间的格式:json,Java中也是一样,就是将Java的数据类型转换成json格式。反序列化就是,Python接收数据的应该是Pyt
【NTN 卫星通信】聊聊低轨卫星通信
一只好奇的猫2
NTN卫星通信 5G
NTN,非对地网络一般指卫星通信系统,最近两年开始比较热门的一个通讯系统。包括国外和国内都在推进研发中。国外的包括马斯克的StarLink、美国另外一个公司的OneWeb等都在推动低轨卫星网络的发展。国内最近2年也在研发中,一些大型的卫星通信研究所,大型的通信设备供应商等都在加紧研发,估计2-3年后会开始商用。NTN的几个大的形态1、从卫星轨道的高度看,可以分为高轨卫星,地球同步卫星和低轨卫星,高
J-OB烧录文件深入解析与应用指南
满天乱走
本文还有配套的精品资源,点击获取简介:本文档为J-OB系列的烧录文件,创建于2020年,用于嵌入式系统中微控制器单元(MCU)的固件编程。烧录文件是将程序代码写入MCU闪存中的二进制文件,可包含固件代码、配置数据或设备驱动。本文将详细探讨烧录文件的应用,包括烧录过程、开发环境准备、代码编写、编译链接、烧录参数配置、编程器连接以及固件烧录和验证等关键步骤。1.嵌入式系统烧录文件概念嵌入式系统烧录文件
STM32F4系列微控制器深入应用手册
满天乱走
本文还有配套的精品资源,点击获取简介:STM32F4系列微控制器由意法半导体推出,基于ARMCortex-M4内核,旨在提供高性能和低功耗的嵌入式解决方案。这些详细文档覆盖了Cortex-M4处理器架构、处理器状态、系统控制寄存器、调试接口、外设功能和电气特性等方面,帮助开发者深入理解STM32F4的设计和应用。文档内容详尽,包括直接内存访问、图形显示控制器、音频接口和内存控制器的特定外设,以及如
Spring AOP及其实现原理?
计算机学长大白
spring java jvm
SpringAOP(面向切面编程)是Spring框架中的一个重要功能,它通过动态代理技术实现了横切关注点的分离,从而降低了业务逻辑各部分之间的耦合度,提高了程序的可重用性和开发效率。本文将从SpringAOP的基本概念、实现原理、核心组件以及实际应用等方面进行详细讲解,并通过示例代码帮助读者更好地理解和掌握SpringAOP。一、SpringAOP的基本概念1.1AOP的定义AOP(Aspect-
C中如何理解指针和引用的区别?
计算机学长大白
C 算法
在C语言中,指针和引用是两个重要的概念,它们都与内存地址和变量之间的关系有关,但它们在定义、使用和特性上存在显著的区别。下面将详细解释指针和引用的区别,并通过示例代码进行说明。指针的基本概念指针是一种变量,其值为另一个变量的地址,即内存位置。通过使用星号(*)声明指针变量,可以给指针赋值并访问其指向的值。指针可以直接操作内存,因此在C语言中被广泛用于动态内存分配、数组操作、函数参数传递等场景。指针
C#、ASP、ASP.NET、.NET、ASP.NET CORE区别、ASP.NET Core其概念和特点、ASP.NET Core个人心得体会
手中的风筝664
c# asp.net .net
C#是一种面向对象的编程语言,主要用于开发跨平台的应用程序。它是.NET框架的一部分,并且可以在.NET平台上运行。ASP(ActiveServerPages)是一种用于构建动态Web页面的技术,使用VBScript或JScript作为服务器端脚本语言。它是早期的Microsoft技术,现已逐渐过时。ASP.NET是微软推出的下一代Web应用程序开发技术,它提供了更强大、更高效的功能和工具。ASP
使用 Docker 部署 RabbitMQ 的详细指南
m0_74824552
面试 学习路线 阿里巴巴 docker rabbitmq 容器
使用Docker部署RabbitMQ的详细指南在现代应用程序开发中,消息队列系统是不可或缺的一部分。RabbitMQ是一个流行的开源消息代理软件,它实现了高级消息队列协议(AMQP)。本文将详细介绍如何使用Docker部署RabbitMQ,并提供一些配置和管理的技巧。1.前期准备在开始之前,请确保您的系统上已经安装了Docker。如果尚未安装,可以参考Docker官方文档或我写的前面一篇文章Cen
C#面:.Net、ASP.Net、C#、VisualStudio之间的关系是什么
那个那个鱼
c# C#面试题 c# .net 开发语言
C#是一种编程语言,它是由微软开发的,用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。C#是一种面向对象的语言,它具有强大的类型安全性和丰富的库支持。.NET是一个软件开发框架,它由微软开发和维护。.NET框架提供了一个运行时环境和一系列的类库,用于简化和加速应用程序的开发过程。C#是.NET框架的一种主要编程语言,但.NET框架也支持其他编程语言,如VB.NET和F
详解 React 18 更新后的特性,一文即懂
FinBird
技术飞起来 react.js javascript 前端
React18通过其改进的渲染系统带来了并发能力,并在此基础上构建了转换或自动批处理等性能增强特性。下面就看看到底有哪些值得关注的新特性。迭代更新内容总的来说,由于新的并发特性是渐进适配并按需启用的,React18中的重大更改仅限于几个简单的API更改,以及对React中多个行为的稳定性和一致性的一些改进,比较重要的一点是,不再支持IE浏览器。1、客户端渲染API带有createRoot()的ro
网络软件架构设计与架构风格深入解析.zip
满天乱走
本文还有配套的精品资源,点击获取简介:《架构风格与基于网络的软件架构设计》一书提供了关于如何构建高效、可扩展网络系统的重要见解。文档详细介绍了架构风格的核心概念及其在网络软件设计中的应用,包括分布式系统特性的考量、可扩展性策略、安全性、性能优化和维护性等方面。本书通过分析如客户端-服务器、SOA和微服务等架构风格,指导开发者理解并复用成功的设计模式,同时强调安全性和性能优化在架构设计中的重要性,最
如何在Python中进行JSON数据的序列化和反序列化?
计算机学长大白
python python 开发语言
在Python中,JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Python内置的json模块提供了简单易用的方法来实现数据的序列化和反序列化。下面将详细介绍如何在Python中进行JSON数据的序列化和反序列化,并给出具体的示例。1.序列化序列化是指将Python对象转换为JSON格式的字符串。json模块提供
`Pinia` + `Formily` + `useTable` 实现搜索条件缓存方案
寒露丶小白
缓存 java 前端
Pinia+Formily+useTable实现搜索条件缓存方案背景在当前的应用体验中,每当用户刷新页面或退出系统时,之前的搜索条件就会消失不见。为了进一步提升工作效率并增强用户体验,希望能够实现这样一个功能:即使用户进行了页面刷新或是暂时离开了平台,再次返回时也能自动恢复其上一次的搜索设置。这样不仅能够大大节省用户重复输入的时间与精力,还能让整个使用过程变得更加流畅、便捷。方案在我们对表单系统进
vsan数据恢复—VMware虚拟机磁盘文件(vmdk)丢失的数据恢复案例
数据恢复虚拟化
vsan数据恢复环境&故障:VMwarevsan架构采用2+1模式。每台设备只有一个磁盘组(7+1),缓存盘的大小为240GB,容量盘的大小为1.2TB。由于其中一台主机(0号组设备)的缓存盘出现故障,导致VMware虚拟化环境中搭建的2台虚拟机的磁盘文件(vmdk)丢失。vsan数据恢复过程:1、将主机断电、关机。取出主机中所有数据盘和缓存盘。2、将取出来的硬盘接到北亚企安数据恢复工程师准备好的
python股票分析系统部署操作过程及代码实现
大懒猫软件
python 开发语言 flask plotly api restful
部署一个股票分析系统涉及多个步骤,包括后端服务、前端界面和实时数据更新。以下是一个详细的部署过程,涵盖从代码编写到服务器部署的完整步骤。1.系统架构概述后端:使用Flask提供RESTfulAPI和数据处理服务。前端:使用PlotlyDash构建动态界面,实时显示股票价格走势。数据源:从金融数据API(如AlphaVantage、YahooFinance)获取实时数据。2.系统开发步骤2.1安装必
运用python制作一个完整的股票分析系统
大懒猫软件
python 开发语言 django beautifulsoup
使用python制作一个股票分析系统,可以通过股票价格走势动态界面,实时动态监测不同类型股票的变化情况。以下是一个完整的股票分析系统开发指南,包括股票价格走势动态界面和实时监测功能。这个系统将结合网络爬虫、数据分析、机器学习和可视化技术,帮助你实时监测不同类型股票的变化情况。1.系统功能概述数据采集:使用网络爬虫技术从财经网站采集股票数据。数据处理:计算技术指标(如KDJ、BOLL)并进行数据预处
理解计算机系统_虚拟内存(二)缓存
jllws1
计算机系统 操作系统 深入理解计算机系统 操作系统
前言以(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定引入接续上一帖物理和虚拟寻址1>物理寻址CPU访问内存的最自然方式就是使用物理地址,我们把这种方式称为物理寻址(黑体字是原话),本书P560页有个示意图,访问地址4开始的4字节字.假设地址4的物理地址是0x12345678,那么用汇编语言是这样写
C语言操作符详解
火龙果刺客
# C语言 c语言 开发语言
C语言是一种广泛使用的编程语言,具有丰富的操作符集合。在这篇博客中,小编将详细介绍C语言中的各种操作符,帮助大家更好地理解和掌握这门语言。1.操作符的分类算术操作符:+-*/%移位操作符:>位操作符:&|^赋值操作符:=+=-=*=/=%=>=&=|=^=单目操作符:!++--&*+-~sizeof(类型)‘关系操作符:>>=>右移操作符移位规则:⾸先右移运算分两种:1.逻辑右移:左边⽤0填充,右
BGP反射器配置-笔记
yiluyangguang1234
网络
路由反射器通告原则:当RR收到IBGP发来的路由,首先使用BGP选择路由的策略选择最佳路由。1.RR只把最佳路由通告反射出去,不会改变路由属性(包括下一跳、LP、MED)2.从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机3.RR从客户端学习到的路由,反射给它的所有客户端和非
BGP 路由反射器配置实例(Route-Reflector)实际案例(配图+详细验证过程)
weixin_34365417
为避免在AS内部的路由环路,BGP不会向内部BGP邻居通告它从其它内部BGP对等体中获得的路由。上图中,R2会通告给R3所有它从R1学来的EBGP路由条目。但是这些路由不会通告给R4,因为R3不会在R2和R4之间传递IBGP路由。为使R4得知这些路由,R2和R4之间就必须有一对IBGP连接。这些对IBGP全互连的要求造成了对每个IBGP路由器定义邻居语句的需求。在一个有100个路由器的AS中,这种
Amazon S3导入Salesforce对象的ETL设计和导入状态日志管理
weixin_30777913
python spark 大数据 云计算 aws
使用Salesforce提供的BulkAPI将AmazonS3文件导入对应的Salesforce表,有四个不同Salesforce环境,dev、qa、uat和prod,对应不同的Salesforce的实例,AWS上设计ETL,将AWSS3文件导入制定配置环境的Salesforce表,导入成功或者失败的记录到不同的两个目录下,都写入到S3上面另一个bucket的目录下,目录名包括Saleforce表
腾讯云目前支持4种DeepSeek开源大模型部署方案
szqcloud
database
企业级的应用,光有大模型能力还不够,推理引擎以外,应用经验、各类原子化能力和现成的应用经验不可或缺。欢迎交流#deepseek腾讯云目前支持4种DeepSeek开源大模型部署方案1、面向开发者开箱即用的HAI方式1)参考:https://mp.weixin.qq.com/s/kZLPfXv3b1sxLSwyRVsEsg2)优势:支持R1,免除购买资源部署的过程,直接开箱使用;参数规模支持1.5B、
本地部署DeepSeek模型技术指南
Evaporator Core
apache Doris 人工智能 deepseek
DeepSeek模型是一种先进的深度学习模型,广泛应用于自然语言处理、计算机视觉等领域。为了充分利用DeepSeek模型的强大功能,许多开发者和研究人员选择在本地环境中部署该模型。本文将详细介绍如何在本地环境中部署DeepSeek模型,包括环境准备、模型下载、配置、优化以及代码实现等内容。通过本文的指导,您将能够在本地成功部署并运行DeepSeek模型。1.环境准备在部署DeepSeek模型之前,
Springboot习惯大于配置原理
枫林晚丶
javaweb java spring springboot 源码 优化大于配置
Springboot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是springboot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,springboot整合了所有的框架。准备工作引入s
spring 约定大于配置如何理解
悠悠彩云归
spring java sql
在Spring框架中,“约定大于配置”(ConventionOverConfiguration)是一种设计哲学,它提倡减少显式的配置,而是通过遵循一些默认的约定来简化开发过程。这种理念的核心思想是,框架应该能够根据开发者的代码结构和命名约定自动推断出配置信息,从而减少手动配置的需要。具体来说,"约定大于配置"体现在以下几个方面:包结构约定:Spring框架通常会根据包名来自动扫描和装配组件。例如,
Hadoop(一)
朱辉辉33
hadoop linux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
maven An error occurred while filtering resources
blackproof
maven 报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
java 位移运算与乘法运算
周凡杨
java 位移 运算 乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
Spring_Transactional_Propagation
布衣凌宇
spring transactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
Jqplot之折线图
antlove
js jquery Web timeseries jqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
JDBC中事务处理应用
百合不是茶
java JDBC编程 事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java 多线程 线程安全 HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScript AngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
Oracle基本操作
ccii
Oracle SQL总结 Oracle SQL语法 Oracle基本操作 Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
[强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
SpringMVC and Struts2
dashuaifu
struts2 springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
windows常用命令行命令
dcj3sjt126com
windows cmd command
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
Objective-c单例模式的正确写法
jsntghf
单例 ios iPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
jquery easyui datagrid 加载成功,选中某一行
hae
jquery easyui datagrid 数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
jQuery用户数字打分评价效果
ini
JavaScript html jquery Web css
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
mybatis的paramType
kerryg
DAO sql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
实现一个sizeof获取Java对象大小
teasp
java HotSpot 内存 对象大小 sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本