第三十二课 电商系统增删改查统一接口的编写

商品增删改查

统一接口

接口方法,只有五个

Add增

Delete 删

Update 更新

findAll查询所有

findOne查询某一个

add增加一个数据

不管增加哪一个表的数据

  1. 表名(小写)与类名一致
  2. 表中的字段在类中私有化封装

采用:java技术

  1. 反射,传入类名的字符串,使用反射技术注册这个类

Class.forName(“传入类名”);

  1. getDeclaredFields()方法获取所有的私有字段。相当于程序控制每个属性的输入。 

后面构造添加数据的sql语句

首先取字段:

String fields=mymaps.keySet().toString().replace("[","(").replace("]",")");

再去取表名  

通过类名的小写取表名.

String myclass_arr = class_name.substring(class_name.lastIndexOf(".")+1);

myclass_arr.toLowerCase()

构建insert语句的前部分

Insert into 表名(字段) values,values后面跟的是占位符问号。

再 构建语句中的问号。

int position_wenhao=mymaps.keySet().size();
String wenhao_sql="";
for(int i=0;i<position_wenhao;i++){
    wenhao_sql+="?,";
}
int wenhao_sql_len=wenhao_sql.length();
wenhao_sql=wenhao_sql.substring(0,wenhao_sql_len-1);

构建后,需要对values进行传值。   

mymaps.values存储的所有的值, 这个集合中的值类型是Collection,把Collection传给JDBC的工具类。

Collection中的内容除了toArray转数据去遍历所有的内容,不能用别的方法引用其中的元素。这里采用迭代器next() 方法取数据。

int index=0;
Iterator<String> myiter=args.iterator();
while(myiter.hasNext()){
    String item=myiter.next();
    System.out.println(item);
     if(item.matches("^[0-9]+$") ){
        ps.setInt(index+1,Integer.parseInt(item));
    }else if(item.matches("^[0-9]+.[0-9]][0-9]$")){
        ps.setDouble(index+1,Integer.parseInt(item));
    }else{
        ps.setString(index+1,item);
    }
     //保证PreparedStatement能够进行每一个参数的对应
     index++;
}

最后调用这个add接口直接传入类名

MyShop myshop=new MyShopImpl();
myshop.add("goods.MyGoods");

做订单的添加

建表保证id可以自增。

统一的删除

在编程中,凡是键值对存在的数据,一个类型是类,类在实例时,很难辩别类型。Class.forName这里传入一个字符串,反射后实例化,new Instance();,考虑HashMap

 

 

  

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S终于迎来交换内存Beta支持!那么什么是交换内存beta支持呢?

随着云计算和容器化技术的快速发展&#xff0c;Kubernetes&#xff08;K8S&#xff09;作为一个开源的容器编排引擎&#xff0c;一直在持续改进和完善自身的功能和性能。近期&#xff0c;K8S迎来了一个令人振奋的消息&#xff1a;交换内存&#xff08;Swap&#xff09;Beta支持…

统信UOS_麒麟KYLINOS上使用命令行配置NTP服务器

原文链接&#xff1a;统信UOS/麒麟KYLINOS上使用命令行配置NTP hello&#xff0c;大家好啊&#xff0c;今天我要给大家介绍的是在统信UOS/麒麟KYLINOS操作系统上使用命令行配置NTP&#xff08;Network Time Protocol&#xff09;服务器的方法。在内网环境下&#xff0c;许多企业…

实用篇 | 一文学会人工智能中API的Flask编写(内含模板)

----------------------- &#x1f388;API 相关直达 &#x1f388;-------------------------- &#x1f680;Gradio: 实用篇 | 关于Gradio快速构建人工智能模型实现界面&#xff0c;你想知道的都在这里-CSDN博客 &#x1f680;Streamlit :实用篇 | 一文快速构建人工智能前端展…

SQL手工注入漏洞测试(PostgreSQL数据库)-墨者

———靶场专栏——— 声明&#xff1a;文章由作者weoptions学习或练习过程中的步骤及思路&#xff0c;非正式答案&#xff0c;仅供学习和参考。 靶场背景&#xff1a; 来源&#xff1a; 墨者学院 简介&#xff1a; 安全工程师"墨者"最近在练习SQL手工注入漏洞&#…

小红书笔记投流全攻略,打造爆款内容

在小红书平台上&#xff0c;信息流投放和搜索广告是两种主要的广告形式。信息流投放主要通过用户刷作品时展示你的笔记&#xff0c;而搜索广告则是用户搜索相关关键词时展示出的内容。今天就和大家分享下小红书笔记投流全攻略&#xff0c;打造爆款内容&#xff01; 一、什么样你…

计算机毕业设计 基于SpringBoot的电动车租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【深度学习】注意力机制(三)

本文介绍一些注意力机制的实现&#xff0c;包括EMHSA/SA/SGE/AFT/Outlook Attention。 【深度学习】注意力机制&#xff08;一&#xff09; 【深度学习】注意力机制&#xff08;二&#xff09; 目录 一、EMHSA&#xff08;Efficient Multi-Head Self-Attention&#xff09;…

flstudio21.3.2304高级版水果编曲音乐软件

flstudio高级版是一款适用于广泛领域的音频编辑软件。它支持多通道混音器和VST插件&#xff0c;包括数百种乐器和效果插件。它还为您提供了一个乐谱编辑器&#xff0c;需要对不同乐器的节奏进行必要的编辑。Flstudio具有许多内置电子合成声音&#xff0c;可提供更广泛的电子声音…

从电商API接口谈电商ERP系统介绍

部分网友反馈小红书APP出现闪退问题。对此&#xff0c;小红书客服微博发文称&#xff0c;如遇到小红书APP无法启动的情况&#xff0c;用户可前往App Store下载最新版本&#xff08;详情可见&#xff1a; &#xff09;小红书闪退崩溃出bug&#xff0c;IT人员要背故障吗&#xff…

強強联手!M88明陞宣布与G2 电子竞技俱乐部成为官方合作伙伴!

M88明陞作为亚洲领先的在线游戏平台&#xff0c;正式宣布与G2电子竞技俱乐部建立具有突破性意义的官方合作伙伴关系&#xff0c;G2电子竞技俱乐部是全球领先的电子竞技品牌之一。作为官方合作伙伴关系&#xff0c;双方将合作开展一系列活动。 M88明陞将在G2 电子竞技俱乐部追求…

一文读懂制造型企业数字化诊断过程

一文读懂制造型企业数字化诊断过程](https://mp.weixin.qq.com/s/qDaXwSbu4nLUV9wg7c3z1w) 最近&#xff0c;前有财政部、工业和信息化部奖补亿元&#xff0c;积极推动中小企业数字化转型。 后有南昌市工业和信息化局发布通知“为了解决广大中小企业数字化转型不会转的问题&a…

探讨3D开发工具HOOPS在PLM领域的革新与应用

产品生命周期管理&#xff08;PLM&#xff09;领域在现代工业中扮演着至关重要的角色&#xff0c;负责协调和管理从产品设计到退役的整个生命周期过程。随着科技的迅猛发展&#xff0c;三维图形技术的应用成为提高PLM系统效能和用户体验的关键因素之一。在这一领域&#xff0c;…