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

怎么把做的页面放到网站上精品网站建设费用 搜搜磐石网络

怎么把做的页面放到网站上,精品网站建设费用 搜搜磐石网络,自动升级wordpress失败 —— 请再试一次.,个人网站价格“哲学家们只是用不同的方式解释世界#xff0c;而问题在于改变世界。” ——卡尔马克思 (Karl Marx) 解读#xff1a;马克思强调了实践的重要性#xff0c;主张哲学不仅要理解世界#xff0c;更要致力于改造世界。 本文我们引入 Mybatis Plus 作为 ORM #xff0c;并且使… “哲学家们只是用不同的方式解释世界而问题在于改变世界。” ——卡尔·马克思 (Karl Marx) 解读马克思强调了实践的重要性主张哲学不仅要理解世界更要致力于改造世界。 本文我们引入 Mybatis Plus 作为 ORM 并且使用 PgSQL 作为数据库实现一个自定义复合类型数组参数的自定义函数。 一、POM 依赖 !-- https://mvnrepository.com/artifact/org.postgresql/postgresql -- dependencygroupIdorg.postgresql/groupIdartifactIdpostgresql/artifactIdversion42.6.0/version /dependency!-- https://mvnrepository.com/artifact/com.alibaba/druid -- dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.8/version /dependency!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -- dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version /dependency!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.30/versionscopeprovided/scope /dependency!-- web -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency二、配置 YML spring:datasource:# 数据源基本配置url: jdbc:postgresql://127.0.0.1:5432/dbnameusername: postgrespassword: #################driver-class-name: org.postgresql.Drivertype: com.alibaba.druid.pool.DruidDataSource 三、配置 Mybatis package com.example.pgsqldemo.config;import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration;/*** version: V1.0* author: 余衫马* description: mybatis 配置* data: 2024-10-25 14:25**/ Configuration MapperScan(com.example.pgsqldemo.dao) public class MybatisConfig { } 四、实体类封装 模拟复合类型传参创建 MySettingsDTO 类 package com.example.pgsqldemo.dto;import lombok.Data;/*** version: V1.0* author: 余衫马* description: 自定设置类 DTO* data: 2024-10-25 14:42**/ Data public class MySettingsDTO {/*** 配置项*/private String item;/*** 配置值*/private String content;} 创建 TestDTO 类它有一个成员 ListMySettingsDTO mySettingsDTOList package com.example.pgsqldemo.dto;import lombok.Data;import java.util.List;/*** version: V1.0* author: 余衫马* description: 测试 DTO* data: 2024-10-25 14:37**/ Data public class TestDTO {private ListMySettingsDTO mySettingsDTOList;} 五、数据库操作 创建复合类型 CREATE TYPE type_my_setting AS (item text,content text ); 创建函数 dynamic_sql_query 输出 item 字母顺序上最大的一行记录 CREATE OR REPLACE FUNCTION dynamic_sql_query (arr type_my_setting []) RETURNS type_ptl_setting AS $$ DECLAREmax_record type_my_setting ; BEGIN-- Initialize max_record with the first element of the arraymax_record : arr[1];-- Loop through the array to find the record with the maximum item valueFOR i IN 2 .. array_length(arr, 1) LOOPIF arr[i].item max_record.item THENmax_record : arr[i];END IF;END LOOP;RETURN max_record; END; $$ LANGUAGE plpgsql; 函数测试 SELECT dynamic_sql_query (ARRAY[ROW(apple, content1)::type_my_setting ,ROW(banana, content2)::type_my_setting ,ROW(cherry, content3)::type_my_setting ]); 六、自定义handler 处理复合类型数组 package com.example.pgsqldemo.handler;import com.example.pgsqldemo.dto.MySettingsDTO; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.postgresql.util.PGobject;import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Objects;/*** version: V1.0* author: 余衫马* description: MySettings复合类型数组处理器* data: 2024-10-25 17:07**/ public class MySettingsArrayTypeHandler extends BaseTypeHandlerListMySettingsDTO {Overridepublic void setNonNullParameter(PreparedStatement ps, int i, ListMySettingsDTO parameter, JdbcType jdbcType) throws SQLException {Connection conn ps.getConnection();PGobject[] pgObjects new PGobject[parameter.size()];// 每个对象都是 type_my_setting 复合类型for (int j 0; j parameter.size(); j) {MySettingsDTO mySettingsDTO parameter.get(j);PGobject pgObject new PGobject();pgObject.setType(type_my_setting);pgObject.setValue(String.format((%s,%s), mySettingsDTO.getItem(), mySettingsDTO.getContent()));pgObjects[j] pgObject;}// pgsql 复合数组类型 type_my_setting[]Array array conn.createArrayOf(type_my_setting, pgObjects);ps.setArray(i, array);}Overridepublic ListMySettingsDTO getNullableResult(ResultSet rs, String columnName) throws SQLException {return toList(rs.getArray(columnName));}Overridepublic ListMySettingsDTO getNullableResult(ResultSet rs, int columnIndex) throws SQLException {return toList(rs.getArray(columnIndex));}Overridepublic ListMySettingsDTO getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {return toList(cs.getArray(columnIndex));}private ListMySettingsDTO toList(Array pgArray) throws SQLException {if (pgArray null) {return null;}Object[] array (Object[]) pgArray.getArray();ListMySettingsDTO list new ArrayList();for (Object obj : array) {PGobject pgObject (PGobject) obj;String[] values Objects.requireNonNull(pgObject.getValue()).replace((, ).replace(), ).split(,);MySettingsDTO mySettingsDTO new MySettingsDTO(values[0], values[1]);list.add(mySettingsDTO);}return list;} } 七、Mapper 与 XML 编写 在 DAO 层新建一个动态查询方法 dynamicSqlQuery package com.example.pgsqldemo.dao;import com.example.pgsqldemo.dto.TestDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;import java.util.HashMap; import java.util.List;/*** version: V1.0* author: 余衫马* description: 测试 DAO* data: 2024-10-25 14:26**/ Mapper public interface TestDao {public ListHashMapString, Object dynamicSqlQuery(Param(dto) TestDTO dto);} select iddynamicSqlQuery resultTypejava.util.HashMap statementTypeCALLABLEselect * FROM dynamic_sql_query(#{dto.mySettingsDTOList,jdbcTypeARRAY,typeHandlercom.example.pgsqldemo.handler.MySettingsArrayTypeHandler}); /select 八、Postman测试 POST localhost:8080/api/dynamicSqlQuery# 请求报文 {mySettingsDTOList: [{item: AAAAA,content: BBBBB},{item: 123,content: 456},{item: ABC,content: FFFFFF}] }# 响应报文 [{item: ABC,content: FFFFFF} ] 可以看到传复合类型的数组参数可以被 SQL 函数正常执行并返回了预期结果。
http://www.pierceye.com/news/727877/

相关文章:

  • 锦州网站建设公司湘潭市高新建设局施工报建网站
  • 前端网站开发江阴外贸网站建设
  • 手机网站建设的整体流程seo是什么职位的简称
  • 川畅咨询 做网站多少钱注册企业邮箱要钱吗
  • 网站制作成本包含游戏咨询网站建设目标是什么
  • 江门seo网站推广做网站营销怎么去推广
  • 厦门网站建设系统深圳网站建设骏域网站建设
  • 工商网站备案查询建设新农村网站
  • 建筑网站资料排行榜移动互联网的概念是什么
  • 浙江省建设诚信系统网站网上购物哪个网站最好
  • 做网站电销和生活爱辽宁下载安装
  • 安监网站安全建设信息wordpress电影影视主题
  • 网站打不开服务器错误网站怎么设置支付
  • 做网站的宽度为多少云南省建设工程信息服务平台
  • 网站优化公司大家好桂林网络搭建
  • 做a漫画在线观看网站网站建设这个工作怎么样
  • 商城网站建设缺点培训机构退费
  • 大型网站需要什么样的团队建购物网站 教程
  • 商业设计网站推荐网站注册免费qq
  • 做微信首图的网站阿里网站建设App开发
  • .网站链接策略网页制作手机版
  • 河南网站优化要多少钱网站技术有哪些
  • 域名还在备案可以做网站吗高端设计公司名字大全
  • 简洁的门户网站网站开发文案
  • 信息网站 模板中国建设银行手机银行下载官方网站
  • 番禺网站开发设计小程序后端数据库搭建
  • 丰都集团网站建设云南网站开发公司
  • 赶集网的二级域名网站怎么做海南网站建设报价方案
  • dede做手机网站网站开发小作业
  • 网站建设推广ppt室内设计知名网站