返回
环保机械设备首页
会员登陆

这是用框架的通病么(框架有啥用)

本文作者投稿用户

发布时间更新时间:2025-11-10

阅读量335

内容摘要:这是用框架的通病么(框架有啥用)大家好,我是鱼皮。前段时间,星球里一位学 Java 的朋友问我:鱼皮你好,请问怎么能够根据前台用户的输入,自动创建和修改数据库的表呢?这是用框架的通病么(框架有啥用)在我看的视频教程中,都是先根据需求设计并且手动创建好库表,再去做增删改查。现在数据库表的字段是不固定的,就不知道怎

大家好,我是鱼皮。

前段时间,星球里一位学 Java 的朋友问我:

鱼皮你好,请问怎么能够根据前台用户的输入,自动创建和修改数据库的表呢?

这是用框架的通病么(框架有啥用)

这是用框架的通病么(框架有啥用)

在我看的视频教程中,都是先根据需求设计并且手动创建好库表,再去做增删改查。现在数据库表的字段是不固定的,就不知道怎么能动态地操作库表了。

这个问题并不难,所有的创建库表操作都是要通过 SQL 来执行的,所以我们只需要根据前端传来的字段来生成一句建表 SQL 就可以了。

举个例子:

前端传递:表名 user,字段 username 字符串、age 数字、is_ikun 布尔,并且把这些值封装为了一个对象

后端得到对象并进行遍历,生成下面的 SQL:

create table user { username varchar, age int, is_ikun boolean }得到 SQL 后,让程序来自动执行即可。

本来以为这个问题已经解决了,但这位小伙伴又找到我说:

鱼皮,拼接 SQL 我可以写出来。但我用的是 MyBatis Plus,代码里也没有对应的 Mapper、IService 之类的,甚至连访问接口都没有。。。我该怎么控制程序读取这个代码创建的数据库呢?

看到这里,我明白了,又是一位被框架 “害了” 的朋友。

记得学 Java 基础时,我们就接触过 JDBC(Java 数据库连接 API),可以通过它来连接数据库并执行 任意 SQL 语句,就像下面这样:

// 连接数据库 Connection conn = DriverManager.getConnection(url,username,password); // 输入任意 SQL String sql = "insert into table values('鱼皮');";PreparedStatement stat = conn.prepareStatement(sql); // 执行 SQL int update = stat.executeUpdate();而 MyBatis 数据访问框架的底层正是 JDBC!无论是 MyBatis 还是 MyBatis Plus 框架,它们都是对 JDBC 进行了抽象封装(比如上面说的 Mapper),让我们少写或不写 SQL 完成开发。

也就是说,使用 MyBatis 框架,一样可以执行任意 SQL 语句!

你可以随便定义一个 Mapper,直接将任意完整的 SQL 作为 value 传递到 mapper.xml 中,比如下面这样:

${value}

鼎商环保网-首页 - 专业的环保机械设备信息发布平台

Copyright 2020-2030 鼎商环保网 All Rights Reserved
备案号:鲁ICP备2022029780号-3

专业提供一体化污水处理设备,环境检测仪器,工业废水处理工程等信息发布平台,厂家直销,远销中国山东,广东,江苏,四川,安徽,浙江,辽宁,河南,福建,湖南,北京,天津,河北,山西,内蒙古,吉林,上海,深圳,杭州,江西,湖北,重庆,陕西,甘肃等地

本站内容部分均来自网络,如有侵权嫌疑,请作者本人留言或直接联系管理员,本网站看到留言后将尽快审核删除!