SqlUtils 使用

server/2024/10/21 20:25:42/

一、前言

随着 Solon 3.0 版本发布,新添加的 SqlUtils 接口,用于操作数据库,SqlUtils 是对 Jdbc 原始接口的封装。适合 SQL 极少或较复杂,或者 ORM 不适合的场景使用。

二、SqlUtils 使用

1、引入依赖
<dependency><groupId>org.noear</groupId><artifactId>solon-data-sqlutils</artifactId>
</dependency>
2、新建数据库表(for MySql)
sql">CREATE TABLE `book`  (`id` bigint(20) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`author` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
3、定义实体类

使用了 lombok 的注解。

java">@Data
public class Book {private Long id;private String name;private String author;
}
4、添加数据源配置
solon.dataSources:book!: # ‘!’结尾表示默认class: "com.zaxxer.hikari.HikariDataSource"jdbcUrl: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=truedriverClassName: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456
5、注入 SqlUtils 并使用

注入

java">@Component
public class BookDao {@Injectprivate SqlUtils sqlUtils;
}

查询操作

java">public List<Book> getAllBooks() {return sqlUtils.sql("select * from book").queryRowList().toBeanList(Book.class);
}

新增操作

java">public Long addBook(Book book) {return sqlUtils.sql("INSERT INTO book (name , author) VALUES (?,?)", book.getName(), book.getAuthor()).updateReturnKey();
}

更新操作

java">public int updateBook(Book book) {return sqlUtils.sql("UPDATE book SET name=?, author=? WHERE id=?", book.getName(), book.getAuthor(), book.getId()).update();
}

总结

使用 SqlUtils 可以完成基本的数据库操作,有更好的透明性。当然,持久化数据库操作 ORM 是更方好方案。具体根据开发决定。


http://www.ppmy.cn/server/133717.html

相关文章

.net framework 3.5sp1安装错误进度条不动怎么办

遇到 .NET Framework 3.5 SP1 安装时进度条不动的问题&#xff0c;可以尝试以下几种方法来解决&#xff1a; 1.使用命令行安装&#xff1a; 打开“命令提示符”&#xff08;以管理员身份运行&#xff09;。 输入以下命令来启用 .NET Framework 3.5 功能&#xff08;这将自动安…

blender 理解 积木组合 动画制作 学习笔记

一、学习blender视频教程链接 案例2&#xff1a;积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…

HIS系统开发|HIS系统|医院HIS系统

HIS系统是医院信息化管理的重要工具&#xff0c;可以帮助医院提高工作效率、优化资源配置、提升医疗质量。以下是HIS系统开发能带给用户的一些优势&#xff1a; 1、提高工作效率&#xff1a;HIS系统能够对医疗流程进行数字化管理&#xff0c;包括挂号、就诊、检查、取药等环节&…

Loss:Focal Loss for Dense Object Detection

目录 3. 焦点损失(Focal Loss)3.1. 平衡交叉熵3.2. 焦点损失定义3.3. 类别不平衡与模型初始化3.4. 类别不平衡与两阶段检测器4. RetinaNet 检测器。4.1. 推理与训练。3. 焦点损失(Focal Loss) 焦点损失(Focal Loss)旨在解决单阶段目标检测场景中训练时前景和背景类别之间…

模型驱动架构(MDA)设计方法及其应用分析

引言 随着软件复杂度的增加&#xff0c;传统的软件开发方法难以应对需求不断变化和系统扩展的挑战。模型驱动架构&#xff08;Model-Driven Architecture, MDA&#xff09;是一种由OMG&#xff08;Object Management Group&#xff09;提出的架构思想&#xff0c;它通过强调模…

头歌——人工智能(启发式搜索算法)

文章目录 第1关&#xff1a;评估函数和启发信息第2关&#xff1a;A*搜索算法 第1关&#xff1a;评估函数和启发信息 1、 评估函数的作用就是估计待扩展结点在问题求解中的价值。 2、 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估&#xff0c;得到最好的位置…

【pytorch深度学习】CIFAR10图像分类

任务描述&#xff1a; 通过简单的自定义神经网络&#xff0c;实现CIFAR10数据集图像分类任务 import torch import torch.nn as nn import torch.nn.functional as F import torch.utils import torch.utils.data import torchvision import torchvision.transforms as transfo…

SpringBoot技术的车辆管理流程自动化

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…