批量插入 jdbc 把i格式化成num位的字符串,不足的位补0;

阿里云OpenClaw生产级部署:MySQL+Nacos+Ollama全链路实战 AI Agent运行时系统是现代智能应用的基础设施核心,其本质是以技能(Skill)为单元、数据库为记忆中枢、支持结构化输出的可扩展服务框架。部署关键在于多组件协同原理——MySQL保障元数据强一致性,Nacos实现配置动态治理,Ollama提供轻量模型推理能力,三者通过网络与资源隔离形成稳定底座。该技术组合具备高内聚、低耦合、易运维的工程价值,广泛适用于智能客服、自动化报表、竞品分析等企业级场景。本文聚焦阿里云ECS环境下的OpenClaw与Clawdbot真实落地,覆盖ESSD云盘选型、utf8mb4_ 阅读详情
@Override
 	public void addBillDetail(FmBillMainEntity fmBillMain) {
 		// 添加单据
 		int startNum = Integer.parseInt(fmBillMain.getStartNum().replaceAll("^(0+)", ""));
 		String prefix = fmBillMain.getBillCodePrefix();
 		String codeLength = fmBillMain.getBillCodeLength();
 		int buyCout = fmBillMain.getBuyItemCount();
 		
 		//List codeList = new ArrayList();
 		/*int num=Integer.parseInt(codeLength);//编号的位数
		for(int i=startNum;i<startNum+buyCout;i++){//要输出的编号个数为100个,从001........100
			System.out.println(prefix+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
		}*/
		
		/*
 		int num=3;//编号的位数
		for(int i=1;i<=100;i++){//要输出的编号个数为100个,从001........100
			System.out.println("b"+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
		}*/
		BaseDaoUtil b = new BaseDaoUtil();
 		String sql ="insert into fm_bill ("+
 		" id,create_name,create_by,create_date,sys_org_code,sys_company_code,bpm_status,bill_type_code,bill_type_name,"
 		+ "bill_code_prefix,bill_code,bill_status,pk_fm_bill_type_id) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
 		PreparedStatement ps = null;
 		Connection conn = b.getCon();
 		
 		try {
			ps = conn.prepareStatement(sql);
			conn.setAutoCommit(false);
			int num=Integer.parseInt(codeLength);//编号的位数
			int listSize = startNum+buyCout;
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Date date = new Date();
			
			HttpSession session = ContextHolderUtils.getSession();
			TSUser u = (TSUser) session.getAttribute(ResourceUtil.LOCAL_CLINET_USER);
			for(int i=startNum;i<listSize;i++){//要输出的编号个数为100个,从001........100
				//System.out.println(prefix+String.format("%0"+num+"d", i));//格式化字符串,把i格式化成num位的字符串,不足的位补0;例:String.format("%05d",123);结果为“00123”
				String code = String.format("%0"+num+"d", i);
				int j =1;
				ps.setObject(j++, String.valueOf(UUID.randomUUID()).replace("-", ""));
				ps.setObject(j++, u.getCreateName());
				ps.setObject(j++, u.getCreateBy());
				ps.setObject(j++, sdf.format(date));
				ps.setObject(j++, "systemOrgCode");
				ps.setObject(j++, "systemCompanyCode");
				ps.setObject(j++, "1");
				ps.setObject(j++, fmBillMain.getBillTypeCode());
				ps.setObject(j++, fmBillMain.getBillTypeName());
				ps.setObject(j++, prefix);
				ps.setObject(j++, code);
				ps.setObject(j++, "1");// 购入状态
				ps.setObject(j++, fmBillMain.getBillTypeId());// 购入状态
				ps.addBatch();
				if(listSize%5000 == 0){
					ps.executeBatch();
					conn.commit();
					ps.clearBatch();
				}
			}
			ps.executeBatch();
			conn.commit();
			ps.clearBatch();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			if(ps != null){
				try {
					ps.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
 		
		/*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		int listSize = list.size();
		Object object[] = null;
		con = getCon();
		con.setAutoCommit(false);//关闭事务自动提交
		String sql = "INSERT INTO f_area(administrative_code, parent_administrative_code, grade, area_name, create_time) VALUES(?,?,?,?,?)";
		ps = con.prepareStatement(sql);
		System.out.println("---------总记录数为:"+list.size()+"-------------");
		for(int i = 0;i < listSize;i++){
			object = (Object[])list.get(i);
			ps.setObject(1, object[0]);
			ps.setObject(2, object[1]);
			ps.setObject(3, object[2]);
			ps.setObject(4, object[3]);
			ps.setObject(5, sdf.format(date));
		    ps.addBatch(); //把一个SQL命令加入命令列表 
		    if(i != 0 && i % 10 == 0){
        		System.out.println("=====执行了"+i+"条记录=====");
        	}
        	if(i == listSize - 1 ){
        		System.out.println("=====总共成功执行了"+listSize+"条记录=====");
        	}
		}
		ps.executeBatch();//执行批量更新  
		con.commit();//语句执行完毕,提交本事务  
		closeAll(rs, ps, con);*/
 		
		// 如果类型被使用过不能删除。现做状态的修改。bpmStatus /当是2的时禁止删除标识
		String hql = "update FmBillTypeEntity as  fbt set fbt.bpmStatus ='2' where id ='" +fmBillMain.getBillTypeId()+"'";
		this.executeHql(hql);
 	}
 	


Java自动化生成Oracle存储过程:基于元数据与模板引擎的工程实践 在企业级应用开发中,数据库存储过程是封装复杂业务逻辑、提升数据处理性能的关键技术。其原理是将预编译的SQL语句集存储在数据库中,通过减少网络传输和利用数据库原生优化能力来提升执行效率。这项技术的核心价值在于实现逻辑与数据的紧密耦合,尤其适用于处理大数据量的批量操作和复杂计算场景。随着微服务和云原生架构的普及,对数据库访问层的规范化和自动化需求日益增长。本文聚焦于如何利用Java结合模板引擎技术,通过定义标准化的元数据契约,自动生成高质量、可维护的Oracle存储过程代码,从而解决手动编写存储过程带来的效率低 阅读详情

相关推荐

Linux 常用命令

set 指令能设置所使用shell的执行方式 -a  标示已修改的变量,以供输出至环境变量。 -b  使被中止的后台程序立刻回报执行状态。 -C  转向所产生的文件无法覆盖已存在的文件。 -d  Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e  若指令传回值不等于0,则立即退出shell。 -f   取消使用通配符。 -h  自动记录函数的所在位置。 -H ............

zhixingheyi_tian的博客 2301

Java字符串数字根据长度自动补齐

Java字符串数字根据长度自动补齐

qq_38159467的博客 1454

从工艺到器件:用Silvaco ATLAS仿真PIN二极管击穿电压的保姆级指南

本文详细介绍了使用Silvaco ATLAS仿真PIN二极管击穿电压的全流程指南,从工艺仿真基础搭建到器件结构构建,再到击穿特性仿真和结果分析。通过Silvaco工具链,工程师可以在设计阶段精准预测器件性能,优化击穿电压,提升研发效率。

weixin_34259816的博客 355

JDBC的ResultSet结果集,数字类型的null取出后为0

数据库里面的int,decimal等类型的字段值为null, 通过JDBC的ResultSet的getInt(“x”)或者getDouble(“x”)取出来之后并不是null,而是0. public abstract int getInt(String paramString) 那么如何区别null和0呢? public abstract Object getObject(Strin...

不浪漫罪名的博客 3112

想学嵌入式但没开发板?试试这个免费的STM32虚拟仿真平台(含LVGL界面教程)

本文介绍如何利用免费的STM32虚拟仿真平台学习嵌入式开发,特别适合预算有限或零硬件基础的学习者。通过详细的LVGL界面开发教程,展示虚拟仿真在嵌入式学习中的高效性和实用性,涵盖环境搭建、代码实现到实机迁移的全流程,助力快速掌握嵌入式开发核心技能。

weixin_29266647的博客 306

DBSCAN聚类算法——机器学习(理论+图解+python代码)

一、前言 二、DBSCAN聚类算法 三、参数选择 四、DBSCAN算法迭代可视化展示 五、常用的评估方法:轮廓系数 六、用Python实现DBSCAN聚类算法 一、前言 去年学聚类算法的R语言的时候,有层次聚类、系统聚类、K-means聚类、K中心聚类,最后呢,被DBSCAN聚类算法迷上了,为什么呢,首先它可以发现任何形状的簇,其次我认为它的理论也是比较简单易懂的。今年在python...

huacha__的博客 20万+

jdbc批量插入

1、方法一,使用老方法,直接在insert时做for循环 public boolean addList(List&lt;kqdateMap&gt; ss){ boolean result =false; Connection conn=super.openConn(); String sql ="insert into kqdateList(id...

taotaox的专栏 926

Maya vray 3S皮肤材质球设置与材质节点连接

Maya vray 3S皮肤材质球设置与材质节点连接

WETQETF的博客 2697

记一次使用原生jdbc批量插入数据时踩到的坑

有一业务场景, 需要初始化所有员工本月的考勤台账. 基本流程是删掉原来的数据 -- >然后重新插入--> 插入月统计表数据当时场景900员工, 一个月算30天, 一次初始化要插入2.7W数据.如果dao层框架insert. 要差不多40s. 所以用jdbc进行批量操作 public void initMonth(){ deleteOld(); //删除原来的数据 ...

qq_40085888的博客 1189

东方财富网股票API逆向分析:手把手教你破解动态参数(2024最新版)

本文详细解析了2024年东方财富网股票API的动态参数生成机制,包括回调函数、身份验证和时效控制参数的逆向工程方法。通过实战代码演示,帮助开发者破解动态参数,实现高效稳定的股票数据爬取,适用于金融数据分析和量化交易场景。

weixin_29091105的博客 1026

维纳滤波和卡尔曼滤波

本文的主要内容是维纳滤波和卡尔曼滤波的介绍,包含匹配滤波器、维纳滤波器、维纳预测、卡尔曼滤波等内容。

西岸贤 9520

Oracle 常用单行函数:字符/数值/日期函数实战

Oracle 单行函数不是冰冷的语法符号,而是历经数十年企业级验证的数据智慧结晶。从UPPER()对一个字符串的温柔抚平,到对时间洪流的精准驾驭;从ROUND()对财务数字的庄严承诺,到对非结构化文本的庖丁解牛——它们共同编织成一张无形却坚韧的数据处理之网。当你在 Java 代码中写下,背后是INITCAP()在数据库中悄然完成姓名标准化;当你在报表中看到,是TO_CHAR()以毫秒级响应完成千分位与货币符号注入;

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

FANUC机器人有关动作速度倍率的相关系统变量-解释说明

FANUC机器人有关动作速度倍率的相关系统变量-解释说明 1.$SHFTOV_ENB 默认值:0 名称:位移倍率的有效/无效 含义:位移倍率功能,通过按住SHIFT键的同时按下倍率键,将速度倍率更改为5档 设定值:有效1; 无效0. 有SHFIT键:微速–低速–5%–50%–100% 2.MCRGRP[GROUP].MCR_GRP[GROUP].MCRG​RP[GROUP].PRGOVERRIDE 默认值:100 名称:程序倍率 含义:设定程序再生时的、机器人动作速度比率 设定值:0~100(%) 3.S

Robot_PLC_HMI_Automation 9321

JMeter集成Python操作DB2数据库:提升性能测试脚本灵活性与数据处理能力

在性能测试与接口自动化领域,数据库操作是核心环节。关系型数据库如DB2,其连接与操作通常依赖JDBC等标准接口,但面对复杂的数据生成、JSON/XML解析或特定SQL逻辑时,脚本的灵活性与可维护性面临挑战。此时,引入Python这一具备丰富生态的脚本语言,通过其pandas、sqlalchemy等库,可以高效处理数据构造与比对等复杂任务。其技术价值在于,将JMeter的负载模拟调度能力与Python强大的数据处理能力相结合,形成优势互补的工程实践方案。这一模式特别适用于需要在压测前后进行自动化数据准备、校验

weixin_33681778的博客 368

RT-DETR改进策略【RT-DETR和Mamba】| 替换骨干 Mamba-RT-DETR-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 1322

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何让系统里的1+1真正等于2:可靠计数全链路实践

在数据驱动决策的时代,'计数'远不止基础算术——它涉及整数溢出、浮点精度陷阱、数据库聚合一致性等底层可靠性问题。从IEEE 754浮点表示局限到MySQL的BIGINT容量边界,数字失真常源于存储类型误用、应用层累加、JSON浮点序列化等链路污染。其技术价值在于保障财务对账、电商统计、BI报表等关键场景的强一致性,支撑千万级订单聚合、实时库存扣减、前端精准展示等典型应用。本文聚焦真实系统中‘数字可信边界’的构建,通过四层防御体系(存储→计算→传输→展示),实现从字段定义到前端渲染的无损数值传递。

weixin_30448603的博客 427

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux三剑客:grep、sed、awk 核心原理与实战组合技

在Linux系统管理与数据处理领域,文本处理是基础且高频的操作需求。其核心原理在于通过模式匹配、流编辑和结构化解析,实现对海量文本数据的高效过滤、转换与统计。掌握这些底层文本处理技术,能极大提升运维效率、简化数据分析流程,并成为自动化脚本的基石。具体到工程实践,grep凭借正则表达式引擎实现快速行级筛选,sed通过模式空间与保持空间支持非交互式流编辑,而awk则提供了完整的编程模型用于字段计算与报告生成。这些工具常协同应用于日志分析、配置批量修改、数据清洗等典型场景。本文聚焦于Linux三剑客——grep、

weixin_33881140的博客 386

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JAVA面试题(1~95)《上》

1、面向对象的特征有哪些方面?  答:面向对象的特征主要有以下几个方面:  - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。  - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性...

ywl470812087的博客 4963

Java学生成绩管理系统:从零实现到发布

作为一个经典的管理系统练习项目,学生成绩管理系统涵盖了 CRUD、报表统计、图表可视化 以及 Excel 导出 等常见业务场景。本文带你手撸一个完整的 Java 桌面应用,采用 SQLite 轻量级数据库,Swing + FlatLaf 构建现代化界面,并集成了 JFreeChart 和 POI 实现数据图表与报表导出。系统包含三张表:users(用户)、students(学生)、scores(成绩)。 四、项目结构说明 五、核心模块代码解析 完整代码清单(按包路径组织) 以下是学生成绩管理系统的完

2401_87746073的博客 379

从零开始搭建大数据处理实战环境

通过网盘分享的文件:YU.csv链接: https://pan.baidu.com/s/1sSrx5xGe8Lq9-MuHA4I00Q 提取码: f749通过网盘分享的文件:文件链接: https://pan.baidu.com/s/1Y3ubq9LohbVEPibKHOjASQ 提取码: 7j6p(一)前置配置完成所有开发环境的安装与配置,包括:VMware虚拟机安装CentOS 7(或者ubuntu16.04)CentOS 7中安装HadoopHiveSqoopMySQL。

2301_81396079的博客 313

DolphinDB入门:时序数据库的正确打开方式

本文是DolphinDB工业物联网实战系列的开篇,重点介绍了时序数据库的核心概念与DolphinDB的独特优势。文章首先阐述了时序数据的特征(时间戳为核心、高频写入、海量存储等)以及传统数据库在处理时序数据时的痛点,进而分析了时序数据库的专门优化。随后详细介绍了DolphinDB的架构特点和核心能力,包括极致的写入性能(单节点支持千万级QPS)、强大的计算能力(1400+内置函数)、灵活的存储策略和丰富的数据接口。通过与传统数据库和其他时序数据库的对比,突出了DolphinDB在工业物联网、金融、能源等领域

七夜zippoe的博客 819

每周小记——SpringBoot&Mybatis-Plus

本文概述SpringBoot实践及整合MyBatis-Plus与Swagger,涵盖基础配置(环境搭建、YAML、多环境部署、热部署),框架整合(Swagger3自动API文档、MyBatis-Plus简化CRUD/逻辑删除/乐观锁/代码生成器/多数据源),高级特性(YAML封装、函数式接口、ActiveRecord模式),实用技巧(自定义Banner、分页/自定义SQL、枚举处理、Service封装),以代码示例驱动企业级开发。

weixin_57655687的博客 2392

JB3-4-SpringBoot(二)

整合MyBatis(事务机制,并发现象,悲观锁,乐观锁),整合SpringCache,整合PageHelper,整合SpringDoc,整合HibernateValidator,整合EasyExcel等。

周航宇的博客 1495

MySQL 入门

本文全面介绍了MySQL数据库及其相关技术,内容涵盖: 数据库基础概念:包括数据库系统组成、关系型与非关系型数据库对比、MySQL核心特点等; MySQL操作管理:详细讲解了安装配置、SQL语句分类、数据类型、索引原理等核心内容; 高级特性:深入分析事务、锁机制、存储引擎、主从复制等关键特性; 扩展架构:系统介绍了读写分离、集群部署、分库分表等企业级解决方案; 开发集成:提供了JDBC连接、MyCat中间件等实践指南。 文章采用结构化组织方式,从基础到高级层层递进,包含了大量实用性强的代码示例和配置模板

weixin_51689532的博客 1243

前端学 Java 课程笔记

面向前端开发人员:大量以前端概念类比

estrusKing的博客 230
上一篇: maven学习基本架构图
下一篇: jquery 模糊匹配
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值