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

python实现基于文心一言大模型的sql小工具

一、准备工作
注册与登录:
登录百度智能云千帆控制台,注册并登录您的账号。
创建千帆应用:
根据实际需求创建千帆应用。创建成功后,获取AppID、API Key、Secret Key等信息。如果已有千帆应用,可以直接查看已有应用的API Key、Secret Key等信息。
API授权:
应用创建成功后,千帆平台默认为应用开通所有API调用权限,无需额外申请授权。但请注意,针对付费服务,如果用户在使用过程中终止了付费,则无法调用对应的API。如需重新开通,请在千帆大模型平台-在线服务页面点击开通付费。
二、获取接口访问凭证access_token
调用获取access_token接口:
使用API Key和Secret Key调用获取access_token接口,获取access_token。这个token是调用API接口的身份验证凭证,需要妥善保管。access_token默认有效期为30天,生产环境请注意及时刷新。
三、调用API接口
构造请求:
根据API文档构造请求,包括设置请求参数、请求头等。其中,prompt是与大模型对话的入口,其质量直接决定了大模型的输出质量。因此,需要编写高质量的prompt。
发送请求:
将构造好的请求发送到API服务器。这通常是通过HTTP请求完成的。

 java 调用的代码如下:

package com.mg.mgchat.service;//import org.apache.http.HttpResponse;
//import org.apache.http.client.methods.HttpPost;
//import org.apache.http.entity.StringEntity;
//import org.apache.http.impl.client.CloseableHttpClient;
//import org.apache.http.impl.client.HttpClients;
//import org.apache.http.util.EntityUtils;import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.stereotype.Service;import java.io.IOException;@Service
public class ErnieSpeedService {public static final String API_KEY = "****";   //修改为自己的public static final String SECRET_KEY = "***;static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();static  final  String orgDescStr="湖北长江电影集团是一家致力于电影产业的企业,涵盖了电影的制作、发行和放映等多个环节。关于湖北长江电影集团放映公益电影的情况,这是一个值得赞赏的举措。在社会责任感的驱使下,许多电影公司都会参与公益电影的放映,旨在为广大观众提供有益的文化内容,同时促进社会发展。湖北长江电影集团可能会定期或不定期地参与放映公益电影,这可能包括安全教育、文化传承、环境保护等主题的电影。这些公益电影的放映可能是在电影院、社区、学校或其他公共场所进行,以最大限度地覆盖更多的观众。要了解湖北长江电影集团具体的公益电影放映情况,建议访问其官方网站或关注其社交媒体账号,以获取最新的信息。同时,也可以关注当地的新闻资讯,以了解更多的放映详情。";public JSONObject askQuestion(String question) throws Exception {MediaType mediaType = MediaType.parse("application/json");JSONObject r = new JSONObject();//declare json object arrayJSONArray jsonArray = new JSONArray();JSONObject jsonObject1 = new JSONObject();jsonObject1.put("role", "user");jsonObject1.put("content", "湖北长江电影集团放映公益电影");jsonArray.put(jsonObject1);JSONObject jsonObject2 = new JSONObject();jsonObject2.put("role", "assistant");jsonObject2.put("content", orgDescStr);jsonArray.put(jsonObject2);r.put("orgDesc", orgDescStr);JSONObject jsonObject3 = new JSONObject();jsonObject3.put("role", "user");jsonObject3.put("content", "电影:" + question);jsonArray.put(jsonObject3);JSONObject jsonObject_q = new JSONObject();jsonObject_q.put("messages", jsonArray);int i = 0;while (i <= 2) {i++;String json_question = jsonObject_q.toString();RequestBody body = RequestBody.create(mediaType, json_question);Request request = new Request.Builder().url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/json").build();Response response = HTTP_CLIENT.newCall(request).execute();String s = response.body().string();JSONObject jsonObject_r1 = new JSONObject(s);String s1 = jsonObject_r1.getString("result");if (i == 1) {r.put("filmDesc", s1);  // film desc save to r  json objectJSONObject jsonObject4 = new JSONObject();jsonObject4.put("role", "assistant");jsonObject4.put("content", s1);  // film descjsonArray.put(jsonObject4);     // add to json array ,to prepare for next queryJSONObject jsonObject5 = new JSONObject();   // prepare for next query ,user queryjsonObject5.put("role", "user");jsonObject5.put("content", "电影:" + question + "的主要演员有哪些,他们的演技怎么样,都演过什么电影");jsonArray.put(jsonObject5);} else if (i == 2) {r.put("performerDesc", s1);  // film desc save to r  json object}}return r;}/*** 从用户的AK,SK生成鉴权签名(Access Token)** @return 鉴权签名(Access Token)* @throws IOException IO异常*/static String getAccessToken() throws IOException {MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY+ "&client_secret=" + SECRET_KEY);Request request = new Request.Builder().url("https://aip.baidubce.com/oauth/2.0/token").method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();Response response = HTTP_CLIENT.newCall(request).execute();return new JSONObject(response.body().string()).getString("access_token");}}

测试代码:

package com.mg.mgchat.service;import okhttp3.*;
import org.json.JSONObject;import java.io.*;/*** 需要添加依赖* <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->* <dependency>*     <groupId>com.squareup.okhttp3</groupId>*     <artifactId>okhttp</artifactId>*     <version>4.12.0</version>* </dependency>*/class Sample {public static final String API_KEY = "***";public static final String SECRET_KEY = "***";static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();public static void main(String []args) throws IOException{MediaType mediaType = MediaType.parse("application/json");//   {//    "role": "assistant",//    "content": "这是一个测试信息。请问有什么我可以帮助您的吗?"//  }, it is string parameter//String  s={"messages":[{"role":"user","content":"test"}]}String json = "{\"messages\":[{\"role\":\"user\",\"content\":\"辽沈战役类似的电影有哪些\"},{\"role\":\"assistant\",\"content\":\"与辽沈战役相关的电影有很多,以下是一些类似的电影:\\n\\n1. 《大决战》:这是一部非常知名的战争电影,描述了辽沈战役的全过程,再现了中国共产党的英勇奋斗和伟大胜利。\\n2. 《辽沈战役之鹰击长空》:这部电影描绘了空军在辽沈战役中的重要作用,展现了空军的英勇无畏和战争中的艰苦历程。\\n3. 《风雨辽沈》:这部电影展现了辽沈战役期间的复杂局势和人物关系,描绘了一幅生动的历史画卷。\\n4. 《决战辽沈》:这部电影聚焦于辽沈战役的重要战役和事件,再现了战争中的关键时刻和英勇事迹。\\n5. 《中国蓝军大决战》:这部电影以辽沈战役为背景,展现了人民解放军的战斗精神和英勇无畏。\\n\\n除了以上电影,还有一些其他战争题材的电影,如《建党伟业》、《辛亥革命》等,虽然不直接描述辽沈战役,但也涉及到相关的历史事件和人物。\\n\\n以上内容仅供参考,如需更多关于辽沈战役的电影信息,可以在各大影视网站或App上查询。\"},{\"role\":\"user\",\"content\":\"推荐一部电影\"}]}";RequestBody body = RequestBody.create(mediaType, json);//RequestBody body = RequestBody.create(mediaType, "{\"messages\":[{\"role\":\"user\",\"content\":\"辽沈战役类似的电影有哪些\"}\\,{\"role\":\"assistant\",\"content\":\"与辽沈战役相关的电影有很多,以下是一些类似的电影:\\n\\n1. 《大决战》:这是一部非常知名的战争电影,描述了辽沈战役的全过程,再现了中国共产党的英勇奋斗和伟大胜利。\\n2. 《辽沈战役之鹰击长空》:这部电影描绘了空军在辽沈战役中的重要作用,展现了空军的英勇无畏和战争中的艰苦历程。\\n3. 《风雨辽沈》:这部电影展现了辽沈战役期间的复杂局势和人物关系,描绘了一幅生动的历史画卷。\\n4. 《决战辽沈》:这部电影聚焦于辽沈战役的重要战役和事件,再现了战争中的关键时刻和英勇事迹。\\n5. 《中国蓝军大决战》:这部电影以辽沈战役为背景,展现了人民解放军的战斗精神和英勇无畏。\\n\\n除了以上电影,还有一些其他战争题材的电影,如《建党伟业》、《辛亥革命》等,虽然不直接描述辽沈战役,但也涉及到相关的历史事件和人物。\\n\\n以上内容仅供参考,如需更多关于辽沈战役的电影信息,可以在各大影视网站或App上查询。\"}\\,{\"role\":\"user\",\"content\":\"推荐一部电影\"}]}");Request request = new Request.Builder().url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/json").build();Response response = HTTP_CLIENT.newCall(request).execute();System.out.println(response.body().string());}/*** 从用户的AK,SK生成鉴权签名(Access Token)** @return 鉴权签名(Access Token)* @throws IOException IO异常*/static String getAccessToken() throws IOException {MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY+ "&client_secret=" + SECRET_KEY);Request request = new Request.Builder().url("https://aip.baidubce.com/oauth/2.0/token").method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();Response response = HTTP_CLIENT.newCall(request).execute();return new JSONObject(response.body().string()).getString("access_token");}}

ernie-speed-128k在URL中指的是使用的具体模型名称或标识符。ERNIE(Enhanced Representation through kNowledge IntEgration)是百度开发的一系列预训练语言模型,它们经过训练能够理解自然语言文本,并根据上下文生成回答。speed-128k可能表示这个模型在某种性能指标(如推理速度)上的优化,或者是模型的某个特定版本。 

用python 写一个调用:

先测试一下

官网还有示例代码 可以直接copy

这里我们写一个通过ai  执行sql的py 小程序:

完整代码如下:


import tkinter as tk
from tkinter import messagebox
import requests
import pymysql
import json
import re
# 百度文言一心大模型API的配置
API_KEY = '****'   #更换为自己的
SECRET_KEY = '***'
TOKEN_URL = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_KEY}&client_secret={SECRET_KEY}'# MySQL数据库的配置
DB_HOST = 'localhost'
DB_USER = 'root'
DB_PASSWORD = '1'
DB_NAME = 'xx'def get_access_token():"""获取百度API的访问令牌"""response = requests.get(TOKEN_URL)return response.json().get('access_token')
# 提取SQL语句  只能是ddl
def extract_sql(response_text):"""从API响应中提取SQL语句"""# 使用正则表达式匹配SQL代码块match = re.search(r'```sql\n([\s\S]*?)\n```', response_text, re.DOTALL)if match:return match.group(1).strip()else:raise ValueError("无法从响应中提取SQL语句")def generate_sql(prompt, access_token):"""调用百度文言一心大模型API生成SQL语句"""url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()payload = json.dumps({"messages": [{"role": "user","content": prompt}]}, ensure_ascii=False)headers = {'Content-Type': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload.encode("utf-8"))response_text = response.textprint(response.text)# headers = {#     'Content-Type': 'application/json',#     'Authorization': f'Bearer {access_token}'# }# data = {#     "messages": [#         {#             "role": "user",#             "content": prompt#         }#     ]# }# response = requests.post(url, headers=headers, json=data)if response.status_code == 200:try:#把response_text 转换为json对象response_json = json.loads(response_text)#get result  from response_jsonif "error_code" in response_json:raise Exception(f"API请求失败: {response_json['error_code']}, {response_json['error_msg']}")if "result" not in response_json:raise Exception("API响应中缺少'result'字段")result_text=response_json["result"];sql = extract_sql(result_text)return sqlexcept ValueError as e:raise Exception(f"无法解析API响应: {e}")else:raise Exception(f"API请求失败: {response.status_code}, {response.text}")def execute_sql(sql):"""执行SQL语句"""connection = pymysql.connect(host=DB_HOST, user=DB_USER, password=DB_PASSWORD, database=DB_NAME)try:with connection.cursor() as cursor:cursor.execute(sql)result = cursor.fetchall()connection.commit()return resultfinally:connection.close()def on_submit():"""用户提交操作要求时的回调函数"""# 获取用户输入prompt = entry.get()if not prompt:messagebox.showwarning("输入错误", "请输入对数据库操作的要求!")returntry:# 获取访问令牌access_token = get_access_token()# 调用API生成SQL语句sql = generate_sql(prompt, access_token)sql_text.delete(1.0, tk.END)  # 清空之前的SQL语句sql_text.insert(tk.END, sql)  # 显示生成的SQL语句# 询问用户是否执行confirm = messagebox.askyesno("确认执行", f"生成的SQL语句为:\n{sql}\n\n是否执行?")if confirm:result = execute_sql(sql)result_text.delete(1.0, tk.END)  # 清空之前的结果result_text.insert(tk.END, "执行成功,结果为:\n")for row in result:result_text.insert(tk.END, f"{row}\n")except Exception as e:messagebox.showerror("错误", f"发生错误: {e}")# 创建主窗口
root = tk.Tk()
root.title("数据库操作助手")# 用户输入框
tk.Label(root, text="请输入对数据库操作的要求:").pack(pady=5)
entry = tk.Entry(root, width=50)
entry.pack(pady=5)# 提交按钮
submit_button = tk.Button(root, text="提交", command=on_submit)
submit_button.pack(pady=10)# 显示生成的SQL语句
tk.Label(root, text="生成的SQL语句:").pack(pady=5)
sql_text = tk.Text(root, height=5, width=50)
sql_text.pack(pady=5)# 显示执行结果
tk.Label(root, text="执行结果:").pack(pady=5)
result_text = tk.Text(root, height=10, width=50)
result_text.pack(pady=5)# 运行主循环
root.mainloop()

界面:

 

执行结果是创建了表:

相关文章:

python实现基于文心一言大模型的sql小工具

一、准备工作 注册与登录&#xff1a; 登录百度智能云千帆控制台&#xff0c;注册并登录您的账号。 创建千帆应用&#xff1a; 根据实际需求创建千帆应用。创建成功后&#xff0c;获取AppID、API Key、Secret Key等信息。如果已有千帆应用&#xff0c;可以直接查看已有应用的AP…...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

前言:什么是大模型微调

一、大模型微调的基础知识 1. 什么是大模型微调&#xff1f; 大模型微调&#xff08;Fine-tuning&#xff09;是指在预训练模型的基础上&#xff0c;针对特定的任务或数据集进行进一步训练的过程。预训练模型通常在大规模的通用数据上训练&#xff0c;具备广泛的语言理解和生…...

TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险

在网络安全的世界里&#xff0c;漏洞就像隐藏在黑暗中的“定时炸弹”&#xff0c;稍有不慎就会引发灾难性的后果。今天&#xff0c;我们要聊的是一个与 PDF 生成相关的漏洞——TCPDF 任意文件读取漏洞。这个漏洞可能让攻击者轻松读取服务器上的敏感文件&#xff0c;甚至获取整个…...

unity学习53:UI的子容器:面板panel

目录 1 UI的最底层容器&#xff1a;canvas 1.1 UI的最底层容器&#xff1a;canvas 1.2 UI的合理结构 2 UI的子容器&#xff1a;面板panel 2.1 创建panel 2.2 面板的本质&#xff1a; image &#xff0c;就是一个透明的图片&#xff0c;1个空容器 3 面板的属性 4 面板的…...

水环境水质在线监测系统解决方案

在当今社会&#xff0c;水资源作为人类生存和发展的基础性资源&#xff0c;其质量的优劣直接关系到生态平衡、人类健康以及社会经济的可持续发展。然而&#xff0c;随着工业化、城市化的快速推进&#xff0c;各类污染物不断排入水体&#xff0c;导致水环境面临严峻挑战。水环境…...

HBuilder X中,uni-app、js的延时操作及定时器

完整源码下载 https://download.csdn.net/download/luckyext/90430165 在HBuilder X中&#xff0c;uni-app、js的延时操作及定时器可以用setTimeout和setInterval这两个函数来实现。 1.setTimeout函数用于在指定的毫秒数后执行一次函数。 例如&#xff0c; 2秒后弹出一个提…...

BigDecimal线上异常解决方案:避免科学计数法输出的坑

文章目录 问题背景为什么BigDecimal会输出科学计数法&#xff1f;线上异常场景场景1&#xff1a;数据传递异常场景2&#xff1a;日志记录异常场景3&#xff1a;数据存储异常 解决方案1. 使用toPlainString()方法2. 设置格式化输出3. 自定义工具类 代码示例总结 在Java开发中&am…...

【C语言】指针笔试题

前言&#xff1a;上期我们介绍了sizeof与strlen的辨析以及sizeof&#xff0c;strlen相关的一些笔试题&#xff0c;这期我们主要来讲指针运算相关的一些笔试题&#xff0c;以此来巩固我们之前所学的指针运算&#xff01; 文章目录 一&#xff0c;指针笔试题1&#xff0c;题目一…...

深入理解Redis:数据类型、事务机制及其应用场景

在当今快速发展的技术领域中&#xff0c;Redis作为一种高性能的内存数据库&#xff0c;已经被广泛应用于各种场景&#xff0c;从简单的缓存实现到复杂的数据处理任务。其灵活性和高效性主要来源于对多种数据结构的支持以及强大的功能特性&#xff0c;如事务处理、持久化选项、高…...

RGMII(Reduced Gigabit Media Independent Interface)详解

一、RGMII的定义与作用 RGMII&#xff08;精简版千兆介质无关接口&#xff09;是一种用于千兆以太网&#xff08;1Gbps&#xff09;的高效接口标准&#xff0c;旨在减少传统GMII接口的引脚数量&#xff0c;同时保持相同的传输速率。其核心作用包括&#xff1a; 减少引脚数量&a…...

学习Flask:Day 1:基础搭建

学习目标&#xff1a;完成第一个Flask应用 # app.py from flask import Flask app Flask(__name__)app.route(/) def home():return <h1>Hello Flask!</h1>app.route(/api/greet/<name>) def greet(name):return {message: fHello {name}!}if __name__ __…...

XTOM工业级蓝光三维扫描仪在笔记本电脑背板模具全尺寸检测中的高效精准应用

——某3C精密制造企业模具优化与质量管控案例 镁合金具有密度小、强度高、耐腐蚀性好等优点&#xff0c;成为笔记本电脑外壳主流材料。冲压模具作为批量生产笔记本电脑镁合金背板的核心工具&#xff0c;其精度直接决定了产品的尺寸一致性、结构可靠性与外观品质。微米级模具误…...

网络安全 机器学习算法 计算机网络安全机制

&#xff08;一&#xff09;网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型&#xff1a; 自主访问控制强制访问控制 访问控制措施&#xff1a; 入…...

分享些常用的工具类

一、照片 1、Unsplash&#xff1a;https://unsplash.com/ 2、pixabay&#xff1a;https://pixabay.com/zh/ 二、壁纸 1、Wallpaper Engine 2、wallhaven&#xff1a;https://wallhaven.cc/ 3、极简壁纸&#xff1a;https://bz.zzzmh.cn/ 三、AI语音 1、微软Azure项目&…...

VUE四:Vue-cli

什么是Vue-cli vue-cli是官方提供的一个脚手架,用于快速生成一个vue的项目模板; 预先定义好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven项目时可以选择创建一个骨架项目&#xff0c;这个骨架项目就是脚手架,我们的开发更加的快速; 什么是web pack 本质上&#…...

以下是自定义针对 Vite + TypeScript 项目的完整路径别名配置流程:

以下是针对 Vite TypeScript 项目的完整路径别名配置流程&#xff1a; 1. 安装必要依赖 bash npm install -D types/node 2. 配置 vite.config.ts typescript // vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from pat…...

LangGraph系列教程:基于状态构建上下文感知的AI系统

本文深入探讨LangGraph中的“状态”概念及其在AI工作流中的核心作用。通过基础状态&#xff08;如计数器&#xff09;和复杂状态&#xff08;含消息历史&#xff09;的定义&#xff0c;结合代码示例&#xff0c;演示如何通过函数式编程实现状态的不可变修改。然后进一步解析了如…...

图像处理、数据挖掘、数据呈现

目录 图像处理方法 阈值分割 图像处理方法 图像平滑 图像锐化 图像增强 阈值分割 边缘检测 阈值分割 特征提取 提取边界 区域提取 主成分压缩 POI 多源数据 数据挖掘 多源数据提取 关联度提取 位置集群&#xff0c; 新闻事件&#xff0c; 权限 个人喜好 历史…...

利用python和gpt写一个conda环境可视化管理工具

最近在学习python&#xff0c;由于不同的版本之间的差距较大&#xff0c;如果是用环境变量来配置python的话&#xff0c;会需要来回改&#xff0c;于是请教得知可以用conda来管理&#xff0c;但是conda在管理的时候老是要输入命令&#xff0c;感觉也很烦&#xff0c;于是让gpt帮…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...