- 2024-12-30【Java编程】JDBC 底层原理
概述JDBC(JavaDataBaseConnectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。JDBC由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,注意:本文中的代码都是针对MySQL数据库实现的。先看一个案例:publicclassJdbcDemo{
- 2024-12-30java.sql.SQLException: ORA-00600: 内部错误代码, 参数: [kcbnew_3]的其中一个解决方法
java.sql.SQLException:ORA-00600:内部错误代码,参数:[kcbnew_3]的其中一个解决方法 重启重启重启oracle服务。今天反馈添加数据库报错。试了一下就几各别的表不能插入。别的表好好的 GPT一下并检查了表空间都没什么问题。执行INSERTINTODEVICE_CONTROL(id,..
- 2024-12-08模板方法模式
介绍定义:模板方法模式在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义该算法的某些步骤。示例:/***咖啡因饮料冲泡法*/publicabstractclassCaffeineBeverage{/***模板方法,咖啡因饮料有
- 2024-09-196. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
事务(Transaction)是一组可以看作一个逻辑单元的操作,这组操作要么全部成功,要么全部失败。事务确保了数据库操作的原子性、一致性、隔离性和持久性,这些性质统称为ACID特性:原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会出现部分完成的情况。如果事务中某个
- 2024-09-07JDBC,SQL注入,事务,C3P0与Druid连接池(最详细解析)bh
JDBCJDBC(JavaDataBaseConnectivty,Java数据库连接)API,是一种用于执行Sql语句的JavaAPI,可以为关系型数据库提供统一的访问,其由一组Java编写的类和接口组成.JDBC驱动程序起初,SUN公司推出JDBCAPI希望能适用于所有数据库,但实际中是不可能实现的,各个厂商提供的数据库
- 2024-09-02第九周总结(2024.8.31)
packagecom.java.hadoop.hive;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importorg.apache.hadoop.hive.metastore.api
- 2024-08-03实战:深入了解JDBC和分享JDBCUtil
Java数据库连接(JDBC)是一个功能强大的API,它弥补了Java应用程序与关系数据库之间的差距。通过利用JDBC,您可以无缝地与数据库交互以存储、检索和操作数据。但是,要有效使用JDBC,需要遵循最佳实践,以确保代码的最佳性能、安全性和可维护性。正如我之前提到的观点,学习一个新
- 2024-07-24学习Java的日子 Day56 数据库连接池,Druid连接池
Day561.数据库连接池理解:池就是容器,容器中存放了多个连接对象使用原因:1.优化创建和销毁连接的时间(在项目启动时创建连接池,项目销毁时关闭连接池)2.提高连接对象的复用率3.有效控制项目中连接的个数(连接对象占内存资源)数据库连接池负责分配、管理和释放数据库连接
- 2024-07-09手写MyBatis
1.前言本篇博客,将使用JDK动态代理、注解、反射等技术,编写一个最简单的MyBatis,可基本实现对象的增删查改2.注解的定义2.1Delete注解/***@ClassNameDelete*@Descriiption删除注解*@Authoryanjiantao*@Date2019/6/2711:03**/@Target(ElementType.METHOD)
- 2024-06-18Javaweb实现简易记事簿 jdbc实现Java连接数据库
//注册-[]获取register的数据,从表单传过来将(账户,密码,用户名)上面的数据写入数据库中,用jdbc(插入)加载数据库驱动,连接数据库,发送SQL加载数据库有可能失败保险起见抛一个异常返回判断,如果注册成功则提醒用户注册成功,并且跳转到登录页面进行登录。如果注册失败则提醒用户注册失败,
- 2024-06-13mysql的jdbc连接java实现
在Java中使用JDBC连接MySQL数据库,你需要以下步骤:确保你有MySQLJDBC驱动程序。如果没有,你可以添加依赖到你的项目中,例如使用Maven:<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></de
- 2024-05-28Mybatis-Plus 实现 jsonb类型的数据存取
1、自定义类型处理器importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.serializer.SerializerFeature;importorg.apache.ibatis.type.BaseTypeHandler;importorg.apache.ibatis.type.JdbcType;importorg.postgresql.util.PGobject;importjava.sql.Calla
- 2024-05-16openGauss CopyManager
CopyManagerCopyManager是openGaussJDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。CopyManager的继承关系CopyManager类位于org.postgresql.copyPackage中,继承自java.lang.Object类,该类的声明如下:publicclassCopyManagerextendsObject构造方法public
- 2024-05-06openGauss CopyManager类简介
CopyManager类简介CopyManager是openGaussJDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。CopyManager的继承关系CopyManager类位于org.postgresql.copyPackage中,继承自java.lang.Object类,该类的声明如下:publicclassCopyManagerextendsObject构造方法
- 2024-04-16MyBatis-04-数据库配置
XML解析时对environment节点的处理TransactionFactorytxFactory=transactionManagerElement(child.evalNode("transactionManager"));DataSourceFactorydsFactory=dataSourceElement(child.evalNode("dataSource"));DataSourcedataSource=dsFactory
- 2024-04-15C3P0反序列化链分析
前言C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用它的开源项目有Hibernate、Spring等。之前有接触到过,但是没有深入了解,像之前学二次反序列化时,WrapperConnectionPoolDataSource就是C3P0的环境搭建<dependency><groupId>com.
- 2024-04-15springboot多数据源配置
由于我们系统旧环境没有用springboot自带的多数据源功能,使用了自己配置的多数据源。添加自定义数据源注解@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public@interfaceDynDatasource{Modulevalue()defaultModule.DEF;}注解
- 2024-04-09民航电子数据库:表主键为自增,insert时报错:[E16005] 字段xxx不能取空值
目录一、场景二、报错信息三、排查四、原因五、解决一、场景1、对接民航电子数据库2、表的主键为自增主键,使用mybatis封装好的insert方法新增记录时报错二、报错信息###Errorupdatingdatabase.Cause:java.sql.SQLException:[E16005]字段ID不能取空值
- 2024-04-07使用MySQL驱动方式实现读写分离
前言MySQL在5.1.X版本之后增加了对multi-host的支持,我们可以使用它来实现读写分离。正常的jdbc连接格式为jdbc:mysql://ip:3306/testdb?characterEncoding=UTF-8multi-host的jdbc连接格式为jdbc:mysql:replication://ip:3306,ip:3307,ip:3308/testdb?useUnicode=t
- 2024-04-01深入理解MySQL死锁及解决方案
导言在数据库应用开发中,MySQL死锁是一个常见但又棘手的问题。在高并发环境下,多个事务同时访问数据库,如果操作不当,就容易导致死锁的发生。本文将深入探讨MySQL死锁的本质、原因及解决方案,并附上Java代码示例,帮助读者更好地理解和处理MySQL死锁问题。MySQL死锁是什么?MySQL
- 2024-03-23利用 Lambda 获取更简洁的代码
本文演示了一个Java重构的真实示例,旨在实现更简洁的代码和更好的关注点分离。这个想法源于我在专业环境中编码的经验。从前在生产代码中当我处理持久化一些域数据的代码时,我最终得到了以下结果:publicvoidprocessMessage(InsuranceProductproduct)throwsException
- 2024-02-22java.sql.SQLException: Connection is read-only. Queries leading to data modification are not
java.sql.SQLException:Connectionisread-only.Queriesleadingtodatamodificationarenot产生的原因:事务中查询的方法中,嵌套了新增或修改的方法,会报该异常。解决方法:找到报错的方法,在该方法上加上注解,@Transactional(readOnly=false)业务上加了事务控制,意思是只能查