提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


PostgreSQL

官网:https://www.postgresql.org/
gitcode: gitcode下载地址
在这里插入图片描述

1.PostgreSQL 简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.下载安装

下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
在这里插入图片描述
在这里插入图片描述

3.语法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.SpringBoot整合PostgreSQL

1.创建SpringBoot项目导入依赖

<!--mybtis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
<!--postgresql-->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>
<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

主配置文件中配置连接数据库参数

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/testdb
    username: postgres
    password: root
mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true # 驼峰

2.java代码

创建实体类

@Data
public class Book {
    private Integer id;
    private String bookName;
    private BigDecimal price;
}

创建mapper接口

@Mapper
public interface BookMapper {
    Book findById(Integer id);
}

创建mapper xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.woniuxy.postgresql.mapper.BookMapper">
    <select id="findById" resultType="com.woniuxy.postgresql.entity.Book">
        select * from public.books where id = #{id}
    </select>
</mapper>

测试类

@SpringBootTest
class PostgreSqlApplicationTests {
    @Resource
    private BookMapper bookMapper;
    @Test
    void contextLoads() {
        System.out.println(bookMapper.findById(1));
    }
}

在这里插入图片描述

结合大模型Checkpoint存储实现

在这里插入图片描述
在这里插入图片描述

1. PostgreSQL搭建与操作

在这里插入图片描述
在这里插入图片描述

docker run -d \
  --name postgres16 \
  -p 5432:5432 \
  -e POSTGRES_PASSWORD=postgres123 \
  -e POSTGRES_DB=langgraph_db \
  -v postgres_data:/var/lib/postgresql/data \
  --shm-size=256mb \
  --restart=unless-stopped \
  postgres:16

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.安装对应依赖

PostgresSaver 适合生产环境的多实例部署场景,使用PostgreSaver之前需要在对应的python环境中安装如下依赖:

pip install langgraph-checkpoint-postgres==3.1.1
pip install psycopg-binary==3.3.4

3.案例:使用PostgreSaver存储Checkpoint。

"""
PostgresSaver:使用 PostgreSQL 持久化 checkpoint
"""
from langchain.chat_models import init_chat_model
from dotenv import load_dotenv
import os
# 从.env文件中加载环境变量
load_dotenv(override=True)
model = init_chat_model(
model="gpt-5.4-mini",
model_provider="openai",
api_key=os.getenv("CLOSEAI_API_KEY"),
base_url=os.getenv("CLOSEAI_BASE_URL")
)

# 替换为你的实际数据库连接串
from langchain.agents import create_agent
from langchain.messages import HumanMessage
from langgraph.checkpoint.postgres import PostgresSaver

DB_URL = "postgresql://langchain_user:abcd1234@118.195.128.47:5432/langchain_db?sslmode=disable"

with PostgresSaver.from_conn_string(DB_URL) as checkpointer:

# 初始化PostgreSQL数据库
checkpointer.setup()
agent = create_agent(
    model=model,
    checkpointer=checkpointer
)

config = {"configurable": {"thread_id": "1"}}
response1 = agent.invoke(
    {"messages": [HumanMessage("你好,我是老王")]},
    config=config
)


print("=" * 30, "-> 第一次调用 <-", "=" * 30)
for msg in response1["messages"]:
    msg.pretty_print()
response2 = agent.invoke(
    {"messages": [HumanMessage("你好,我是谁?")]},
    config=config
)


print("=" * 30, "-> 第二次调用 <-", "=" * 30)
for msg in response2["messages"]:
    msg.pretty_print()

在这里插入图片描述

在这里插入图片描述

4.表数据分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐