- 博客(16)
- 收藏
- 关注
原创 使用JDBC调用存储过程
本文介绍了在MySQL中创建存储过程并通过JDBC代码调用的完整流程。存储过程示例mypro计算从n到0之间所有偶数的和。JDBC调用步骤包括:加载驱动、建立连接、创建CallableStatement、设置输入参数、注册输出参数、执行存储过程并获取结果。文章提供了详细的SQL存储过程代码和对应的Java调用示例,包括参数传递和结果获取方法,最后强调了正确关闭数据库连接的重要性。整个过程展示了JDBC与存储过程交互的标准实践,适用于需要数据库业务逻辑封装的应用场景。
2025-06-04 10:26:49
418
原创 JDBC工具类封装
摘要:本文展示了使用JDBC连接数据库的完整实现代码,主要基于Druid连接池。代码包含静态初始化块配置数据库连接参数(驱动、URL、账号密码等)和连接池设置(初始大小、最大连接数等)。通过ThreadLocal实现线程安全的连接管理,提供获取连接和释放资源的方法。释放资源时会自动判断当前线程是否持有连接,确保正确归还到连接池。该工具类封装了JDBC操作的基本流程,简化了数据库访问代码。
2025-06-04 10:06:30
348
原创 JDBC使用连接池技术
数据库连接池概述 数据库连接池是一种提高数据库连接效率的技术,通过预先创建并管理多个数据库连接对象,解决传统方式中频繁创建连接导致的性能问题。主要优势包括: 避免重复创建连接,提升性能 控制最大连接数,防止服务器过载 提供连接复用机制 常见连接池产品包括Druid、HikariCP等,均实现javax.sql.DataSource接口。连接池配置包含初始连接数、最大连接数、最小/最大空闲连接数等关键参数。 Druid连接池使用步骤: 引入依赖包 配置属性文件 通过工厂创建DataSource 获取连接并进行
2025-06-04 09:23:19
708
原创 JDBC封装工具类(不使用线程池以及连接池)
摘要:本文介绍了通过封装JDBC工具类来简化数据库操作代码的方法。首先创建jdbc.properties配置文件存储数据库连接信息,然后实现DbUtils工具类,包含静态代码块加载配置文件、获取数据库连接方法和资源关闭方法。该工具类将JDBC编程六步中的重复代码(驱动注册、连接获取、资源释放)进行封装,使开发者只需关注核心SQL操作,提高代码复用性和简洁性。通过静态初始化加载配置,确保数据库连接参数的可配置性。
2025-06-03 10:18:22
226
原创 sql注入解决
SQL注入是一种安全漏洞,当用户输入包含SQL关键字时,这些输入被直接拼接到SQL语句中,改变了原语句的含义。本文通过用户登录案例演示了SQL注入问题:攻击者输入特殊字符串(如'aaa'和'bbb' or '1'='1')可绕过验证。该问题的根本原因是Statement直接拼接SQL语句导致用户输入参与编译。解决方法是通过PreparedStatement预编译SQL语句,再传入参数值,使输入内容仅作为值而非SQL语句部分。PreparedStatement能够有效防止SQL注入,因为它将SQL语句编译与参
2025-06-03 00:47:34
702
原创 JDBC查询操作
本文介绍了JDBC中ResultSet的查询操作流程。ResultSet是SQL查询结果的集合,采用游标机制逐行处理数据,避免内存溢出。核心步骤包括:1)执行SQL获取ResultSet;2)使用next()方法遍历行;3)通过getXXX()方法获取字段值;4)处理数据;5)关闭资源。文章演示了两种获取数据方式:通过列索引(从1开始)和列名(推荐,可读性好),并强调必须按顺序关闭ResultSet、Statement和Connection以释放资源。示例代码展示了完整的查询流程,包括异常处理和资源释放。
2025-05-30 10:02:00
1037
原创 使用原生JDBC操作数据库,增删改,有sql注入风险的演示
摘要:本文介绍了JDBC驱动注册的两种方式。一种是手动创建驱动对象并注册,另一种更常用的方式是使用Class.forName()加载驱动类,通过静态代码块自动完成注册。后者具有代码简洁和配置灵活的优势。文章分析了MySQL驱动的源码实现原理,并通过实例代码演示了数据库的增删改操作,包括使用配置文件读取连接参数的方法。
2025-05-29 23:40:16
273
原创 JDBC操作6步
JDBC编程遵循固定的六个步骤:注册驱动:加载JDBC驱动到内存,使DriverManager管理连接获取连接:建立Java与数据库的通信通道获取操作对象:创建Statement对象发送SQL语句执行SQL:完成增删改查等数据库操作处理结果集:对查询结果进行遍历处理释放资源:关闭连接避免资源浪费和内存泄漏
2025-05-29 17:12:06
641
原创 使用Spring里提供的JdbcTemplate实现数据库增删改查操作
JdbcTemplate是Spring框架提供的一个简化JDBC操作的工具类,封装了JDBC的复杂代码,开发者可以通过它轻松实现数据库的增删改查操作。本文介绍了如何使用JdbcTemplate进行数据库操作,包括环境准备、依赖引入、实体类定义以及Spring配置文件的编写。首先,创建数据库表t_user,并在IDEA中新建模块spring6-007-jdbc,引入Spring Context、Spring JDBC、MySQL驱动和JUnit等依赖。接着,定义与表对应的实体类User,并在Spring配置文
2025-05-18 16:23:14
766
原创 Spring注解开发
Spring IoC注解式开发通过使用注解来简化XML配置,Spring6倡导全注解开发。注解的定义和使用包括定义注解及其属性、使用注解以及通过反射机制读取注解。常见的声明Bean的注解有@Component、@Controller、@Service和@Repository。通过反射机制,可以扫描指定包下的类,判断类上是否有特定注解,并实例化相应的对象。这种方式使得开发更加简洁和高效,减少了繁琐的XML配置。
2025-05-16 15:42:19
824
原创 理解OCP开闭原则和DIP依赖倒置原则
这样子就可以实现,当我去在调用时,总结使用多态传递相关的子类引用,那么就可以达到后期增加业务时,加代码,总结创建类,实现接口即可,不会去修改原有代码。但上面代码还不是很成功,当用户类型增加,那么工厂类是不是又要继续去switch...case了呢,此时我们只是提出传统写法是违反OCP开闭原则的。首先以一个例子引入,传统方法,不使用遵循OCP开闭原则的弊端。来改进代码,使其符合 OCP。那么如何去解决这个问题呢。通过引入一个抽象接口。
2025-05-15 15:42:23
393
原创 控制反转与依赖注入之set注入简单了解
首先我们要明白一件事情,就是Spring对Ioc控制反转思想的实现是为了什么,达到的作用是什么。控制反转是一种思想。控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP原则,达到DIP原则。控制反转,反转的是什么?控制反转这种思想如何实现呢?两者区别:控制反转是思想,依赖注入是实现依赖注入实现了控制反转的思想。Spring通过依赖注入的方式来完成Bean管理的。Bean管理说的是:Bean对象的创建,以及Bean对象中属性的赋值(或者叫做Bean对象之间关系的维护)。依赖注入:依赖注入常见的实现方
2025-04-28 10:57:28
836
原创 理解OCP开闭原则和DIP依赖倒置原则
这样子就可以实现,当我去在调用时,总结使用多态传递相关的子类引用,那么就可以达到后期增加业务时,加代码,总结创建类,实现接口即可,不会去修改原有代码。但上面代码还不是很成功,当用户类型增加,那么工厂类是不是又要继续去switch...case了呢,此时我们只是提出传统写法是违反OCP开闭原则的。首先以一个例子引入,传统方法,不使用遵循OCP开闭原则的弊端。来改进代码,使其符合 OCP。那么如何去解决这个问题呢。通过引入一个抽象接口。
2025-04-28 10:33:10
290
原创 在windos系统下搭建chatglm2-6b模型详细安装教程
使用Anaconda搭建运行Chatglm2-6b的模型,使用python代码执行官网程序,环境准备,以及详细安装教程
2025-03-05 22:13:47
814
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅