当前位置: 首页 > news >正文

Java高级Day52-BasicDAO

138.BasicDao

基本说明:

  1. DAO:data access object 数据访问对象

  2. 这样的通用类,称为 BasicDao,是专门和数据库交互的,即完成对数据库(表)的crud操作

  3. 在BasicDao 基础上,实现一张表对应一个Dao,更好的完成功能,比如 Customer表

代码实现:

public class BasicDao<T> { //泛型指定具体的类型private QueryRunner qr = new QueryRunner();//开发通用的dml发明合法,针对任意的表public int update(String sql, Object... parameters) {Connection connection = null;try{connection = JDBCUtilsByDruid.getConnection();int update = qr.update(connection, sql, parameters);return update;} catch (SQLException e) {throw new RuntimeException(e);//将编译异常转成运行异常}finally {JDBCUtilsByDruid.close(null,null,connection);}}//返回多个对象(即查询的结果是多行的),针对任意表public List<T> queryMulti(String sql, Class<T> clazz,Object... parameters) {Connection connection = null;try{connection = JDBCUtilsByDruid.getConnection();return qr.query(connection, sql, new BeanListHandler<T>(clazz), parameters);
​} catch (SQLException e) {throw new RuntimeException(e);//将编译异常转成运行异常}finally {JDBCUtilsByDruid.close(null,null,connection);}}
​//查询单行结果的通用方法public T querySingle(String sql, Class<T> clazz, Object... parameters) {Connection connection = null;try{connection = JDBCUtilsByDruid.getConnection();return qr.query(connection, sql, new BeanHandler<T>(clazz), parameters);} catch (SQLException e) {throw new RuntimeException(e);//将编译异常转成运行异常}finally {JDBCUtilsByDruid.close(null,null,connection);}}
​//查询单行单列的方法,返回单值的方法public Object queryScalar(String sql, Object... parameters) {Connection connection = null;try{connection = JDBCUtilsByDruid.getConnection();return qr.query(connection, sql, new ScalarHandler<>(), parameters);} catch (SQLException e) {throw new RuntimeException(e);//将编译异常转成运行异常}finally {JDBCUtilsByDruid.close(null,null,connection);}}
}

测试ActorDAO 对 actor表的crud操作

public void testActorDAO() {ActorDAO actorDAO = new ActorDAO();//1.查询List<Actor> actors = actorDAO.queryMulti("select * from actor where id >= ?",Actor.class, 1);System.out.println("===查询结果===");for(Actor actor : actors) {System.out.println(actor);}//2.查询单行记录Actor actor = actorDAO.querySingle("select * from actor where id = ?",Actor.class, 1);System.out.println("===查询单行结果===");System.out.println(actor);}
​//3.查询单行单列Object o = actorDAO.queryScalar("select name from actor where id = ?",6);System.out.println("===查询单行单列值===");System.out.println(o)//4. dml操作 insert,update,deleteint update = actorDAO.update("insert into actor values(null,?,?,?,?)","张无忌","男","2000-1-1","111");System.out.println(update > 0 ? "执行成功" : "执行没有影响表");
}

相关文章:

Java高级Day52-BasicDAO

138.BasicDao 基本说明&#xff1a; DAO&#xff1a;data access object 数据访问对象 这样的通用类&#xff0c;称为 BasicDao&#xff0c;是专门和数据库交互的&#xff0c;即完成对数据库(表)的crud操作 在BasicDao 基础上&#xff0c;实现一张表对应一个Dao&#xff0c;…...

【OceanBase 诊断调优】—— SQL 诊断宝典

视频 OceanBase 数据库 SQL 诊断和优化&#xff1a;https://www.oceanbase.com/video/5900015OB Cloud 云数据库 SQL 诊断与调优的应用实践&#xff1a;https://www.oceanbase.com/video/9000971SQL 优化&#xff1a;https://www.oceanbase.com/video/9000889阅读和管理SQL执行…...

微服务Redis解析部署使用全流程

目录 1、什么是Redis 2、Redis的作用 3、Redis常用的五种基本类型&#xff08;重要知识点&#xff09; 4、安装redis 4.1、查询镜像文件【省略】 4.2、拉取镜像文件 4.3、启动redis并设置密码 4.3.1、修改redis密码【可以不修改】 4.3.2、删除密码【坚决不推荐】 5、S…...

C++之STL—常用排序算法

sort (iterator beg, iterator end, _Pred) // 按值查找元素&#xff0c;找到返回指定位置迭代器&#xff0c;找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // _Pred 谓词 random_shuffle(iterator beg, iterator end); // 指定范围内的元素随机调…...

【驱动】地平线X3派:备份与恢复SD卡镜像

1、备份镜像 1.1 安装gparted GParted是硬盘分区软件GNU Parted的GTK+图形界面前端,是GNOME桌面环境的默认分区软件。 GParted可以用于创建、删除、移动分区,调整分区大小,检查、复制分区等操作。可以用于调整分区以安装新操作系统、备份特定分区到另一块硬盘等。 在Ubun…...

【C++报错已解决】std::ios_base::failure

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

matlab入门学习(四)多项式、符号函数、数据统计

一、多项式 %多项式&#xff08;polynomial&#xff09;%创建 p[1,2,3,4] %系数向量&#xff0c;按x降幂排列&#xff0c;最右边是常数&#xff08;x的0次幂&#xff09; f1poly2str(p,x) %系数向量->好看的字符串 f x^3 2 x^2 3 x 4&#xff08;不能运算的式子&#xf…...

leetcode621. 任务调度器

给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表&#xff0c;用字母 A 到 Z 表示&#xff0c;以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成&#xff0c;但有一个限制&#xff1a;两个 相同种类 的任务之间必须有长度为 n 的冷却时…...

Spark 的 Skew Join 详解

Skew Join 是 Spark 中为了解决数据倾斜问题而设计的一种优化机制。数据倾斜是指在分布式计算中&#xff0c;由于某些 key 具有大量数据&#xff0c;而其他 key 数据较少&#xff0c;导致某些分区的数据量特别大&#xff0c;造成计算负载不均衡。数据倾斜会导致个别节点出现性能…...

讯飞星火编排创建智能体学习(一)最简单的智能体构建

目录 开篇 智能体的概念 编排创建智能体 创建第一个智能体 ​编辑 大模型节点 测试与调试 开篇 前段时间在华为全联接大会上看到讯飞星火企业级智能体平台的演示&#xff0c;对于拖放的可视化设计非常喜欢&#xff0c;刚开始以为是企业用户才有的&#xff0c;回来之后查…...

mac-m1安装nvm,docker,miniconda

1.安装minicondaMAC OS(M1)安装配置miniconda_mac-mini m1 conda-CSDN博客 2.安装nvm&#xff08;用第二个方法&#xff09;Mac电脑安装nvm(node包版本管理工具)-CSDN博客 3.安装docker dmg下载链接docker-toolbox-mac-docker-for-mac安装包下载_开源镜像站-阿里云 教程MacOS系…...

STM32F407之Flash

寄存器分类 一般寄存器分为只读存储器 (ROM) 随机存储器(RAM) 只读存储器 只读存储器也被称为ROM 在正常工作时只能读不能写。 只读存储器经历的阶段 ROM->PROM->EPROM->EEPROM ->Flash 优点&#xff1a;掉电不丢失&#xff0c;解构简单 缺点&#xff1a;只适…...

优化 Go 语言数据打包:性能基准测试与分析

场景&#xff1a;在局域网内&#xff0c;需要将多个机器网卡上抓到的数据包同步到一个机器上。 原有方案&#xff1a;tcpdump -w 写入文件&#xff0c;然后定时调用 rsync 进行同步。 改造方案&#xff1a;使用 Go 重写这个抓包逻辑及同步逻辑&#xff0c;直接将抓到的包通过网…...

【SQL】未订购的客户

目录 语法 需求 示例 分析 代码 语法 SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_field table2.common_field; LEFT JOIN&#xff08;或称为左外连接&#xff09;是SQL中的一种连接类型&#xff0c;它用于从两个或多个表中基于连接条件返回左表…...

Qt(9.28)

widget.cpp #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {QPushButton *btn1 new QPushButton("登录",this);this->setFixedSize(640,480);btn1->resize(80,40);btn1->move(200,300);btn1->setIcon(QIcon("C:…...

javascript-冒泡排序

前言&#xff1a;好久没学习算法了&#xff0c;今天看了一个视频课&#xff0c;之前掌握很好的冒泡排序居然没写出来&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"…...

第九届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)

一.题目分析 &#xff08;1&#xff09;.题目 &#xff08;2&#xff09;.题目分析 按键功能分析----存储位置的切换键 a. B1按下切换存储位置&#xff0c;切换后定时时间设定为当前位置存储的时间 b. B2短按切换时分秒高亮&#xff0c;设置完成后&#xff0c;长按把设置的时…...

MATLAB云计算集成:在云端扩展计算能力

摘要 MATLAB云计算集成是指将MATLAB的计算能力与云平台的弹性资源相结合&#xff0c;以实现高性能计算、数据处理和算法开发。本文详细介绍了MATLAB云计算的基本概念、优势、配置要点以及编程实践。 1. 云计算概述 云计算是一种通过互联网提供计算资源&#xff08;如服务器、…...

基于BeagleBone Black的网页LED控制功能(flask+gpiod)

目录 项目介绍硬件介绍项目设计开发环境功能实现控制LED外设构建Webserver 功能展示项目总结 &#x1f449; 【Funpack3-5】基于BeagleBone Black的网页LED控制功能 &#x1f449; Github: EmbeddedCamerata/BBB_led_flask_web_control 项目介绍 基于 BeagleBoard Black 开发板…...

【C语言】单片机map表详细解析

1、RO Size、RW Size、ROM Size分别是什么 首先将map文件翻到最下面&#xff0c;可以看到 1.1 RO Size&#xff1a;只读段 Code&#xff1a;程序的代码部分&#xff08;也就是 .text 段&#xff09;&#xff0c;它存放了程序的指令和可执行代码。 RO Data&#xff1a;只读…...

2步实现格式自由:Save Image as Type让网页图片转换体验升级10倍

2步实现格式自由&#xff1a;Save Image as Type让网页图片转换体验升级10倍 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors…...

OpenClaw长期运行方案:nanobot镜像的稳定性优化技巧

OpenClaw长期运行方案&#xff1a;nanobot镜像的稳定性优化技巧 1. 为什么需要关注长期运行稳定性 去年冬天&#xff0c;我部署了一个基于OpenClaw的自动化新闻摘要系统。最初几周运行良好&#xff0c;直到某个凌晨收到服务器告警——进程已经悄悄崩溃了三天。这次教训让我意…...

5个核心维度掌握YimMenu:GTA5辅助工具全攻略

5个核心维度掌握YimMenu&#xff1a;GTA5辅助工具全攻略 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

DHA之后,大脑营养进入GPC时代?

近年来&#xff0c;青少年脑健康逐渐成为家庭关注的重要议题。随着学习节奏加快、信息环境复杂&#xff0c;家长对于孩子专注力、记忆力以及学习效率的关注度不断提升。行业报告显示&#xff0c;国内DHA藻油相关产品市场规模持续扩大&#xff0c;预计2026年市场规模将达到超320…...

告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库

告别官方驱动&#xff1a;深入解读ES7210寄存器&#xff0c;打造你自己的ESP32音频采集库 在嵌入式音频开发领域&#xff0c;ES7210作为一款高性能多通道麦克风ADC芯片&#xff0c;因其出色的信噪比和灵活的配置选项&#xff0c;成为ESP32平台上音频采集的热门选择。然而&#…...

4步掌握AI图像修复新工具:IOPaint从入门到精通指南

4步掌握AI图像修复新工具&#xff1a;IOPaint从入门到精通指南 【免费下载链接】IOPaint 项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint AI图像修复技术正在改变我们处理数字图像的方式&#xff0c;从简单的水印去除到复杂的老照片修复&#xff0c;都可以…...

PowerPaint-V1 Gradio与VSCode集成开发:图像修复插件开发指南

PowerPaint-V1 Gradio与VSCode集成开发&#xff1a;图像修复插件开发指南 1. 开发环境准备 开始之前&#xff0c;我们需要准备好开发环境。VSCode作为代码编辑器&#xff0c;配合Python环境&#xff0c;可以让你更高效地开发PowerPaint-V1的图像修复插件。 首先确保你的系统…...

ReactPy服务端渲染终极指南:如何在Python中构建现代Web应用

ReactPy服务端渲染终极指南&#xff1a;如何在Python中构建现代Web应用 【免费下载链接】reactpy Its React, but in Python 项目地址: https://gitcode.com/gh_mirrors/re/reactpy ReactPy是Python中构建用户界面的革命性库&#xff0c;让你无需JavaScript就能创建现代…...

AIO PathProb 时序概率路径系统

本文由&#xff08;拓世网络技术开发工作室&#xff09;技术支持&#xff0c;欢迎共同开发第一部分&#xff1a;伪代码 / 算法描述&#xff08;给算法/工程侧&#xff09;1. 全局定义&#xff08;状态与概率&#xff09;import numpy as npfrom dataclasses import dataclass# …...

突破限制,让老旧Mac焕发新体验:OpenCore Legacy Patcher全解析

突破限制&#xff0c;让老旧Mac焕发新体验&#xff1a;OpenCore Legacy Patcher全解析 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款强大…...