Java 使用 mybatis 能否完成自定义的 insert 查询
A 表是配置表 里面存的是数据库字段名
然后前端有一个 <列表>
里面字段名是从 A 表动态读的, 这里有啥前端就显示啥
然后问 数据表数据库应该怎么设计 或者 有什么其他思路
这个,在 php,go 里面很好实现, 凭借好语句直接发送给 db query 就好了.
但是, Java 里面好像是要 xml 映射吧? 没法做到动态
1
huyujievip 2021-04-01 10:05:59 +08:00 via iPhone
MyBatis Plus 可以实现简单的查询
|
2
huyujievip 2021-04-01 10:08:20 +08:00 via iPhone
也需要创建 xml,但是不需要编写查询语句,使用 MyBatis Plus 的 queryMappr 对象可以组织查询或者插入条件
|
3
assiadamo 2021-04-01 10:10:20 +08:00
没必要特别设计吧,表需要存什么数据就是什么数据,然后 jdbc 有接口可以获取表和库的元数据,列名和类型全都能获取出来,既然 jdbc 能,在 jdbc 上的 mybatis 肯定也能
之后就可以组装数据,一套前端模板就可以显示 N 个表了 |
4
Dimomo 2021-04-01 10:10:27 +08:00
mybatis annotation
|
5
RuzZ 2021-04-01 11:28:57 +08:00
如果是要简单的拼接 sql,直接用 jdbcTemplate 就可以了;如果是想动态映射 bean 到数据库,不写 xml 映射这种的,jooq 、mybatis dynamic sql 、甚至 mybatis-plus 都可以。
|
6
RuzZ 2021-04-01 11:34:59 +08:00
@RuzZ 看你的描述,应该是 bean 到数据库的映射是确定的,但是 select 的字段和 where 条件是动态变化的,这种 mybatis dynamic sql 和 jooq 应该可以满足你的要求,不过这个 mybatis dynamic sql 社区资料不是很丰富,jooq 相对丰富一些,你可以自己调研看看
|
7
rancc 2021-04-01 11:37:05 +08:00
实现 mybatis-plugin,根据配置内容在 Interceptor 里拼接要执行的 sql
|
8
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 注入风险。 不知道是否符合题主所说的问题。 |
9
arthas2234 2021-04-01 11:44:36 +08:00
暴露表结构给前端,并不是一个好的设计
|
10
uselessVisitor 2021-04-01 12:41:35 +08:00
$ 就可以了吧,有啥不能动态的
|
11
xiaoxinshiwo 2021-04-01 16:51:19 +08:00
json 格式存储也可
|