请教一个 Java 面试题

2021-04-01 10:00:18 +08:00
 qwer666df

Java 使用 mybatis 能否完成自定义的 insert 查询

A 表是配置表 里面存的是数据库字段名

然后前端有一个 <列表>

里面字段名是从 A 表动态读的, 这里有啥前端就显示啥

然后问 数据表数据库应该怎么设计 或者 有什么其他思路

这个,在 php,go 里面很好实现, 凭借好语句直接发送给 db query 就好了.

但是, Java 里面好像是要 xml 映射吧? 没法做到动态

1770 次点击
所在节点    问与答
11 条回复
huyujievip
2021-04-01 10:05:59 +08:00
MyBatis Plus 可以实现简单的查询
huyujievip
2021-04-01 10:08:20 +08:00
也需要创建 xml,但是不需要编写查询语句,使用 MyBatis Plus 的 queryMappr 对象可以组织查询或者插入条件
assiadamo
2021-04-01 10:10:20 +08:00
没必要特别设计吧,表需要存什么数据就是什么数据,然后 jdbc 有接口可以获取表和库的元数据,列名和类型全都能获取出来,既然 jdbc 能,在 jdbc 上的 mybatis 肯定也能
之后就可以组装数据,一套前端模板就可以显示 N 个表了
Dimomo
2021-04-01 10:10:27 +08:00
mybatis annotation
RuzZ
2021-04-01 11:28:57 +08:00
如果是要简单的拼接 sql,直接用 jdbcTemplate 就可以了;如果是想动态映射 bean 到数据库,不写 xml 映射这种的,jooq 、mybatis dynamic sql 、甚至 mybatis-plus 都可以。
RuzZ
2021-04-01 11:34:59 +08:00
@RuzZ 看你的描述,应该是 bean 到数据库的映射是确定的,但是 select 的字段和 where 条件是动态变化的,这种 mybatis dynamic sql 和 jooq 应该可以满足你的要求,不过这个 mybatis dynamic sql 社区资料不是很丰富,jooq 相对丰富一些,你可以自己调研看看
rancc
2021-04-01 11:37:05 +08:00
实现 mybatis-plugin,根据配置内容在 Interceptor 里拼接要执行的 sql
whitelee8080
2021-04-01 11:41:34 +08:00
mybatis 可以动态查询
```xml
<select id="dyQuery" resultType="java.util.Map" parameterType="java.lang.String" statementType="STATEMENT">
select
${field}
from
${tableName}
</select>
```
将 A 表保存的字段名(拼接好的),数据库名传如就行,但是有 sql 注入风险。

不知道是否符合题主所说的问题。
arthas2234
2021-04-01 11:44:36 +08:00
暴露表结构给前端,并不是一个好的设计
uselessVisitor
2021-04-01 12:41:35 +08:00
$ 就可以了吧,有啥不能动态的
xiaoxinshiwo
2021-04-01 16:51:19 +08:00
json 格式存储也可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX