Mybatis 可以直接 insert List<Map<String, String>> 数据吗

2022-12-21 09:32:29 +08:00
 ubuntuGary

刚接手一个旧项目,有个业务是从 Excle 读取数据插入数据库,读取 Excle 数据的方法已经实现了,返回的是 List<Map<String, String>>类型,数据与 mysql 表是一一对应的,我能直接定义一个数据表的 mapper.xml 将数据 insert 到 Mysql 吗,现在的问题是表结构字段类型存在 int 、float 、datatime 等类型,直接 insert 会不会自动转换到 int 类型( Mysql )?当然更好的做法是先转成 List<Bean>再插入,我只是想偷个懒。

2870 次点击
所在节点    Java
14 条回复
dcsuibian
2022-12-21 09:33:33 +08:00
Map 一时爽,重构火葬场
totoro52
2022-12-21 09:37:02 +08:00
你只管传 map 就好了,剩下的交给后人去处理
golangLover
2022-12-21 09:38:04 +08:00
能上来写这么多的字的功夫,都够你把这 bean 写好了。
7911364440
2022-12-21 09:38:56 +08:00
屎山就是这么堆出来的
ubuntuGary
2022-12-21 09:45:43 +08:00
@dcsuibian 这个旧项目已经是屎山了,全是传 Map 的
ubuntuGary
2022-12-21 09:46:28 +08:00
@totoro52 我现在就是前人的后人了
potatowish
2022-12-21 09:56:16 +08:00
和传入参数类型无关,MyBatis 只是组装成 sql 然后提交到数据库,数值类型参数作为字符串传入 mysql 会自动转换到字段对应的类型
kaf
2022-12-21 10:19:03 +08:00
可以
ljsh093
2022-12-21 10:29:43 +08:00
是不是可以先做下 Map->DO 的转换?当然是有时间完整测试的情况下。不然还是不要动前人的屎山了。
w292614191
2022-12-21 11:22:17 +08:00
额,借楼问个事情,Mybatis ,List<Map<String, Object>> 如果 sql 返回了 clob 就会报错,有什么解决方案吗?
ianEros
2022-12-21 14:13:25 +08:00
后来有一天这个 excel 和表加了个字段😏
tramm
2022-12-21 14:26:59 +08:00
beanutil 把 map 转 pojo 吧
dorothyREN
2022-12-21 14:54:49 +08:00
@ianEros #11 加个字段可能问题不是很大, 但要是哪天删了个字段。。。。
fengpan567
2022-12-27 14:57:24 +08:00
可以

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

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

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

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

© 2021 V2EX