电商系统增删改查统一接口的编写

本文介绍了如何使用Java反射技术,通过统一接口实现电商系统的增删改查操作,包括字段映射、SQL构建和参数绑定,以及如何处理不同类型的值输入。关键代码展示了如何通过Class.forName和newInstance动态创建对象并执行数据库操作。
摘要由CSDN通过智能技术生成

增删改查

统一接口

接口方法:

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

 

 代码在码云Gitee:电商系统增删改查统一接口的编写。 · f380f35 · zyt/麦当劳投资人 - Gitee.comicon-default.png?t=N7T8https://gitee.com/zytscode/mcdonalds-investors/commit/f380f353e8deb68d70dae89f9d35ff06a1e077c6

  

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值