再识JDBC

finereport报表,使用带参数的sql存储过程,报没有返回数据集的错 原因:在SqlServer数据库中,若定义的存储过程中包含有insert/update等更新操作时,在设计器中对存储过程进行调用时,会提示没有返回数据集的错误。 解决方法:修改存储过程,在begin 后面添加 SET NOCOUNT ON。 不管多复杂的sql存储过程 只需要在第一个大的begin后面添加 如下: ALTER proc [dbo].[proc_enterylist] @qybm varchar(50),@strWhere varchar(2000)='',@stratrow int, 阅读详情
        上一篇文章中介绍了关于jdbc的简单连接数据库操作,所有代码都写在main方法中,看着有些麻烦。连接数据库操作对于大部分简单程序是差不多的,所以这次再识JDBC,我将数据库的连接,封装到一个类中。将数据库的连接,与访问操作分离。减少了代码的耦合,提高了复用性。
package com.szb.dbutil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Dbutil2 {
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	static {//初始化参数
		driver = "com.mysql.jdbc.Driver";
		url = "jdbc:mysql://localhost:3306/db_jxgl";
		username = "root";
		password = "123456";
	}
	public static Connection open() {//建立数据库连接
		Connection conn = null;
		try {
			
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
			return conn;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	public static void close(Connection conn) {//关闭数据库连接
		if (conn!= null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

        有了这个类后,对数据库的访问会更加方便,下面代码与昨天的比较,更简洁一些吧。

package com.szb.dbutil;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Dbutil1_2 {

	public static void main(String[] args) {
		Connection conn = Dbutil2.open();//建立数据库连接
		String sql = "select id,stu_id,name from student";
		try {
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);//执行语句
			while (rs.next()) {
				int id = rs.getInt(1);
				int stu_id = rs.getInt(2);
				String name = rs.getString(3);
				System.out.println("id:"+id+" ,stu_id:"+stu_id+" ,name:"+name);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			Dbutil2.close(conn);//关闭连接
		}
	}

}

   这是执行结果:查出了王五 王六    

 

        再分享一个今天遇到的问题:

我想将一个名为db_register的数据库备份出来,保存 .sql文件,用命令 mysqldump -u root -p db_register > f:/db_register.sql     随手打了一个分号 这是好多人的习惯了。。 结果报错了。原来没有进入MySQL时不算是输入SQL命令。所以不用分号。牢记! 请看下图:


Linux内核时钟获取机制:从硬件时钟源到高精度时间管理 在操作系统领域,时间管理是系统调度的基础,它决定了进程切换、网络通信和文件系统等核心功能的时序行为。其原理是通过硬件时钟源(如TSC、HPET)提供原始计时信号,内核经过抽象和校准后,为上层应用提供统一的时间视图。这项技术的价值在于实现高精度、低开销的时间服务,支撑从日常应用到金融交易、实时系统等高性能场景。在Linux内核中,时钟获取机制通过多级抽象(如clocksource、timekeeper)和优化手段(如VDSO、无锁快速路径),确保了时间的准确性和获取效率。本文聚焦于Linux内核时钟获取的实现 阅读详情

相关推荐

【开发心得】代码找茬(10)-一个存储过程的优化

摘要:本文分析了一个冗余的车辆信息更新存储过程,发现其存在参数验证缺失、错误处理过时等问题。通过对比新旧代码,强调了遵循编码规范和学习公共知识的重要性,指出忽视这些原则会导致重复踩坑,增加维护成本。

目标范式 857

从GRE到VXLAN:搞懂网络虚拟化的‘封装’艺术,轻松玩转云上Overlay网络

本文深入解析从GRE到VXLAN的网络虚拟化封装技术演进,揭示云上Overlay网络的核心原理与实践。通过对比GRE和VXLAN的特性差异,展示现代数据中心如何利用VXLAN解决扩展性、多租户隔离等挑战,并详细探讨在公有云VPC、Kubernetes网络及混合云场景中的实战应用。

weixin_30300225的博客 583

AI Agent产品经理实战指南:从Transformer原理到RAG系统搭建

Transformer架构作为现代人工智能的核心技术,通过自注意力机制实现了对序列数据的并行处理,显著提升了模型训练效率和语义理解能力。其编码器-解码器结构为自然语言处理任务提供了强大的基础框架,在机器翻译、文本生成等场景中展现出卓越的技术价值。基于Transformer的大语言模型结合RAG(检索增强生成)技术,能够有效解决模型知识更新滞后的问题,通过向量化检索和知识库增强,大幅提升AI系统的准确性和实用性。在实际工程实践中,AI Agent产品经理需要深入理解这些技术原理,才能设计出既满足用户需求又具备

weixin_33797791的博客 426

SQL Server常用指令(全局变量 + 判定 + 循环 + 分类统计)

Microsoft SQL Server全局变量 -- 返回执行的上一个Transact-SQL语句的错误号,如果前一个Transact-SQL语句执行没有错误,则返回0 SELECT @@ERROR -- 返回上次插入的标识值 SELECT @@IDENTITY -- 返回运行 SQL Server 的本地服务器的名称 SELECT @@SERVERNAME -- 返回当前的SQL Server安装的版本、处理器体系结构、生成日期和操作系统 SELECT @@VERSION -- 先声明

WanAkiko. 441

经典SQL语句大全五:SQL Server基本函数

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度。如果check_expression为空,則返回replacement_value的值,不为空,就返回check_expression字符操作类。(Char_expr) 返回字符串包含字符数,但不包含后面的空格。

悠闲饭团的博客 876

SQL Server DBA调优日记(一)——大数据量查询记录数优化及原理探讨

SQL Server DBA调优日记第一篇,大数据量查询记录数优化及原理探讨。现象、解决、模拟、原理探讨。

DBA@Robin 1万+

(转)列出SQL SERVER 所有表、字段定义,类型,长度,一个值等信息(另一种方法)

列出SQL SERVER 所有表、字段定义,类型,长度,一个值等信息并导出到Excel 中-- ======================================================-- Export all user tables definition and one sample value-- jan-13-2003,Dr.Zhang-- ===============

Squphoxe的专栏 1143

SQL触发器编写与查看

1.已有数据查看 2.编写触发器(以更新表一为条件) go create trigger TG_Insert --创建触发器 on DB_TABLE_20210528 --定位某张表 for UPDATE --表 DB_TABLE_20210528 更新时调用该触发器,即关键字 UPDATE决定,删除为 DELETE,新增则为 INSERT AS BEGIN SET NOCOUNT ON;--ON: 不输出日志 OFF:输出日志 DECLARE @ID INT ,

qq_36872323的博客 3216

SQL Server错误代码解析与故障排除指南

关系型数据库管理系统(RDBMS)通过错误代码机制实现系统与用户的精确通信。SQL Server作为主流企业级数据库,其错误代码体系包含错误编号、严重级别和状态代码等结构化信息,为DBA和开发人员提供快速故障定位能力。从技术原理看,错误代码本质上是数据库引擎的状态反馈机制,通过预定义的代码体系实现标准化的错误报告。在工程实践中,掌握错误代码解析能显著提升数据库运维效率,特别是在身份验证(如错误18456)、连接问题(如错误233)和资源管理(如错误701)等典型场景。通过结合SQL Server错误日志和扩

weixin_30247781的博客 371

如何处理高并发及高并发下数据库优化

1.可以使用静态页面的地方,使用静态页面,减少页面解析时间。 2.尽量使用缓存技术来做。用户缓存、页面缓存等一切缓存,使用特定的机制进行刷新。利用消耗内存空间来换取用户的效率。同时减少数据库的访问次数。 3.使用集群的方式来解决,单台服务器性能的问题 4.使用负载均衡模式,来让每一个服务器资源进行合理的利用 5.资源隔离(springcloud中有两种资源隔离方式--线程池和信号量) 6...

u012470138的博客 3887

项目小记:解决sqlserver直接调用外部程序速度慢

【遇到的问题】: sqlserver触发器去触发程序需要一段时间,另外每次去访问局域网的共享文件夹也要时间,再加上程序本身打包的时间,导致整个项目时耗不理想。 (导师联系公司把系统给换了,可以不用共享文件夹了) 【解决方案】: 用空间换时间,java程序打包成windows服务,藏在后台永远执行。 USE [gjdb] GO /****** Object: Trigger [dbo].[qx_trigger] Script Date: 2020/12/30 19:02:52 ******/ SET

weixin_43141428的博客 673

SQL Server测试数据生成工程化实践:可配置、可验证、可回滚的数据工厂

测试数据是数据库开发与质量保障的基础支撑,其本质是模拟真实业务场景下的数据密度、分布规律与关联关系。传统手工INSERT或随机填充方式极易导致主键冲突、外键断裂、分布失真及不可验证等问题,严重影响联调效率与UAT通过率。基于SQL Server的测试数据生成,需从结构契约(L1骨架层)、规则驱动(L2规则层)到执行引擎(L3执行层)进行系统性设计,融合T-SQL元数据解析、JSON配置管理、分批事务控制与动态SQL构建等关键技术。该方法支持按权重生成枚举值、自动识别外键依赖、强制CHECKPOINT防日志膨

diaozhiwa5526的博客 455

SQL-Server数据库存储过程学习

一.在生产中涉及到SQL-Server数据库存储过程,顺便学习记录 --创建存储过程 可生成当年所有日期,并且周末工作时间为0小时 ,其中HR_Calendar  为业务表 CREATE PROCEDURE dbo.Auto_HR_Calendar AS  SET DATEFIRST 1 declare @i varchar(10)  declare @j int declare @year i...

M义薄云天的博客 3509

思源笔记+Copilot插件实战指南:本地化AI知识协作者搭建

思源笔记作为支持双向链接与块级引用的本地知识库,其核心价值在于构建可追溯、可关联、可演进的个人知识体系;而Copilot插件本质上是一个轻量级本地AI网关,通过上下文桥接、指令路由与输出适配三层架构,将大语言模型能力深度嵌入编辑流。它不依赖云端API调用,而是基于OAI兼容协议对接Qwen等本地部署模型,在保障数据不出域的前提下,实现SQL生成、文档摘要、跨笔记推理等任务。技术价值体现在语义分块注入、路径白名单防护、块引用式结果回写等设计细节中;典型应用场景包括技术文档智能维护、法务合同条款比对、教育课件自

weixin_30292843的博客 734

用户自定义存储过程实战:解决一致性、性能与可观测性三重痛点

用户自定义存储过程(UDSP)是数据库层面封装业务逻辑的核心机制,其本质是预编译、可复用、支持事务与参数化的SQL代码块。它基于ACID原语实现强一致性保障,通过减少网络往返和集中执行提升性能,并借助输出参数、错误日志与执行计划分析增强可观测性。相比应用层拼SQL易引发分布式事务风险、视图无法处理写操作、函数存在逐行计算性能瓶颈、ORM抽象过度导致执行低效等替代方案,UDSP在金融审批、订单履约、实时风控等高可靠场景中不可替代。本文聚焦真实生产环境中的设计原则、防坑实践与高可用落地,涵盖参数契约、事务边界、

weixin_30316097的博客 319

VOL_常用记录!!-----后端

注意事项:后台扩展必须写在代码生成的Partial部分类里面。

TangMonk的博客 1293

Java中Set真的是无序的吗?

        我们经常听说List是有序且可重复的,Set是无序且不重复的。这是一个误区,这里所说的顺序有两个概念,一是按照添加的顺序排列,二是按,照自然顺序a-z排列。Set并不是无序的传统所说的Set无序指的是HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。1,LinkedHashset : 保证元素添加的自然顺序2,TreeSet ...

bingocoder的博客 3万+

MIPS RAM设计实战:从Verilog实现到FPGA调试全解析

存储器是计算机体系结构的核心组件,其工作原理直接决定了CPU的数据访问效率。在数字电路层面,RAM(随机存取存储器)通过地址线、数据线和控制线的协同工作,实现数据的快速读写,其设计需严格遵循时序要求。从技术价值看,一个高效可靠的RAM模块是CPU数据通路稳定运行的基础,也是理解计算机内存子系统、缓存机制乃至整个存储器层次结构的关键。在应用场景上,无论是教学实验中的MIPS CPU设计,还是FPGA开发中的片上系统构建,自定义RAM都是连接处理器与存储空间的必备桥梁。本文聚焦于MIPS架构下的RAM设计,详细

weixin_34068198的博客 492
上一篇: 初识JDBC
下一篇: 简单了解代理设计模式(Proxy)
bingoCoder
博客等级 码龄10年 1400粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值