java之手搓简单ORM框架--SQL的DELETE

发布时间 2023-08-12 10:34:01作者: 九极致之术

1.手搓简单SQL增删改查框架-删除

1.1创建简单类,并使用泛型类,这里可能使用到之间写的三篇知识的内容,如果不了解的小伙伴可以去

java高级之泛型

java高级之映射

java高级之反射

当然,前提是必须要把数据库相关连接弄好,这里会专门出一篇 java之jdbc

现在咱们继续手搓框架开始叭!

1.2 前期的准备工作

这里已经在【手搓简单SQL增删改查框架-插入】的时候准备完成,如果没有准备的小伙伴可以去瞅瞅

并且这次依然延续用前两篇文章的模板,及dao、userdao、自定义接口、测试类文件

1.3 手搓!!!

删除的就很简单

直接开搓就完事了

就是干!!!

public int del(T t) throws Exception{
    //以下代码依然要拼接一条删除sql语句 DELETE FROM user WHERE id=88
    StringBuffer delete = new StringBuffer("DELETE FROM ");
    //通过反射获取类对象
    Class<?> aClass = t.getClass();
    //获取表名,前提是要判断类名与表名是否一致
    String simpleName = aClass.getSimpleName();
    TableName annotation = aClass.getAnnotation(TableName.class);
    if (annotation != null){
        simpleName = annotation.value();
    }
    //拼接表名
    delete.append(simpleName);

    //拿到id列名与列值
    String where = " where ";
    Field[] declaredFields = aClass.getDeclaredFields();
    for (Field declaredField : declaredFields) {
        declaredField.setAccessible(true);
        //通过注解获取id值
        TableId annotation1 = declaredField.getAnnotation(TableId.class);
        //判断id值,通过注解主要功能为判断id是否为主键,判断id是否与列名id一致
        if(annotation1 != null){
            String id = annotation1.value();
            Object o = declaredField.get(t);
            //拼接where
            where= where + id + "=" + o;
        }
    }
    delete.append(where);
    //        调用jdbc数据库运行sql语句
    Connection connection = DButils.getConnection();
    PreparedStatement preparedStatement = connection.prepareStatement(delete.toString());
    int i = preparedStatement.executeUpdate();
    return i;
}

1.3.1 猜想

这里有个猜想,如果可以的话,我感觉把对象传入直接换成id传入,可以更简便,要不然每次调用DELETE方法还要创建对象进去,属实麻烦。

如果可以直接传入id,万能id

感觉有可能

--------

 以上便是ORM框架中的SQL语句删除,如有漏缺请在下方留言告知,我会及时补充