您的位置:首页 > 财经 > 产业 > 长春市宽城区疫情最新消息_安阳后营吧_数据分析方法_如何让百度收录自己的网站信息

长春市宽城区疫情最新消息_安阳后营吧_数据分析方法_如何让百度收录自己的网站信息

2025/4/1 4:30:01 来源:https://blog.csdn.net/baidu_25347287/article/details/146033544  浏览:    关键词:长春市宽城区疫情最新消息_安阳后营吧_数据分析方法_如何让百度收录自己的网站信息
长春市宽城区疫情最新消息_安阳后营吧_数据分析方法_如何让百度收录自己的网站信息

设计概述

有时候我们不需要太重的持久层,就像要一个最简的、轻量的持久层,便于维护和扩展,代码掌握在自己手里,那么我们可以基于springboot的自动配置,快速的构建一个自己的持久层轻量框架,不说废话,直接上代码,可以根据自己的需要扩展

类图

uses
uses
DbUtils
+insert(String sql, Object... args)
+insert(String sql, Map params)
+update(String sql, Object... args)
+update(String sql, Map params)
+delete(String sql, Object... args)
+delete(String sql, Map params)
+queryForObject(String sql, RowMapper rowMapper, Object... args)
+queryForObject(String sql, Map params)
+query(String sql, RowMapper rowMapper, Object... args)
+query(String sql, Map params)
SqlBuilder
-StringBuilder sql
+SqlBuilder()
+abstract String build()
+append(String part)
+appendWithSpace(String part)
SelectBuilder
+columns(String... columns)
+from(String table)
+where(String condition)
+and(String condition)
+or(String condition)
+limit(int limit)
InsertBuilder
+columns(String... columns)
+values(List values)
+values(Map values)
UpdateBuilder
+set(Map updates)
+where(String condition)
+and(String condition)
+or(String condition)
DeleteBuilder
+where(String condition)
+and(String condition)
+or(String condition)
JdbcTemplate
NamedParameterJdbcTemplate

工程结构

在这里插入图片描述

代码说明

DbUtils.java

这个类是一个工具类,实现了 ApplicationContextAware 接口,用于获取 Spring 应用上下文。它提供了一系列静态方法,用于执行插入、更新、删除和查询操作。这些方法支持两种参数类型:可变参数数组和 Map

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;@Component
public class DbUtils implements ApplicationContextAware {private static ApplicationContext context;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {context = applicationContext;}private static JdbcTemplate getJdbcTemplate() {return context.getBean(JdbcTemplate.class);}private static NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() {return new NamedParameterJdbcTemplate(getJdbcTemplate());}// 插入数据public static void insert(String sql, Object... args) {getJdbcTemplate().update(sql, args);}// 更新数据public static void update(String sql, Object... args) {getJdbcTemplate().update(sql, args);}// 删除数据public static void delete(String sql, Object... args) {getJdbcTemplate().update(sql, args);}// 查询单个对象public static <T> T queryForObject(String sql, RowMapper<T> rowMapper, Object... args) {return getJdbcTemplate().queryForObject(sql, rowMapper, args);}// 查询多个对象public static <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) {return getJdbcTemplate().query(sql, rowMapper, args);}// 插入数据public static void insert(String sql, Map<String, Object> params) {getNamedParameterJdbcTemplate().update(sql, params);}// 更新数据public static void update(String sql, Map<String, Object> params) {getNamedParameterJdbcTemplate().update(sql, params);}// 删除数据public static void delete(String sql, Map<String, Object> params) {getNamedParameterJdbcTemplate().update(sql, params);}// 查询单个对象public static Map<String, Object> queryForObject(String sql, Map<String, Object> params) {return getNamedParameterJdbcTemplate().queryForMap(sql, params);}// 查询多个对象public static List<Map<String, Object>> query(String sql, Map<String, Object> params) {return getNamedParameterJdbcTemplate().queryForList(sql, params);}}
  • getJdbcTemplate()getNamedParameterJdbcTemplate() 方法用于获取 JdbcTemplateNamedParameterJdbcTemplate 实例。
  • insert, update, delete 方法用于执行相应的数据库操作。
  • queryForObjectquery 方法用于查询单个对象和多个对象。

sql 子文件夹

SqlBuilder.java

这是一个抽象类,用于构建 SQL 语句。它包含一个 StringBuilder 对象,用于拼接 SQL 语句的各个部分。

// ... existing code ...
protected void append(String part) {sql.append(part);
}
// ... existing code ...
  • append 方法用于直接拼接字符串。
  • appendWithSpace 方法用于在拼接字符串之前添加一个空格。
  • build 方法是一个抽象方法,由子类实现,用于返回最终的 SQL 语句。
SelectBuilder.java

这个类继承自 SqlBuilder,用于构建 SELECT 语句。

// ... existing code ...
public SelectBuilder columns(String... columns) {appendWithSpace(String.join(", ", columns));return this;
}
// ... existing code ...
  • columns 方法用于指定要查询的列。
  • from 方法用于指定查询的表。
  • where, and, or 方法用于添加查询条件。
  • limit 方法用于限制查询结果的数量。
InsertBuilder.java

这个类继承自 SqlBuilder,用于构建 INSERT 语句。

// ... existing code ...
public InsertBuilder columns(String... columns) {appendWithSpace("(");appendWithSpace(String.join(", ", columns));append(")");return this;
}
// ... existing code ...
  • columns 方法用于指定要插入的列。
  • values 方法用于指定要插入的值。支持 ListMap 两种参数类型。
UpdateBuilder.java

这个类继承自 SqlBuilder,用于构建 UPDATE 语句。

// ... existing code ...
public UpdateBuilder set(Map<String, Object> updates) {appendWithSpace("SET");appendWithSpace(updates.keySet().stream().map(key -> key + " = ?").collect(joining(", ")));return this;
}
// ... existing code ...
  • set 方法用于指定要更新的列和值。
  • where, and, or 方法用于添加更新条件。
DeleteBuilder.java

这个类继承自 SqlBuilder,用于构建 DELETE 语句。

// ... existing code ...
public DeleteBuilder where(String condition) {appendWithSpace("WHERE");appendWithSpace(condition);return this;
}
// ... existing code ...
  • where, and, or 方法用于添加删除条件。

完整工程链接(无需积分直接下)

最简持久层工具类

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com