Ibatis/MyBatis动态选择,无需创建任何Pojo/Mapper
有没有办法使用Ibatis/MyBatis动态选择/更新/删除?
当我说“动态”时,这意味着我根本不想创建任何 POJO/DataMapper。
任何 URL 示例都会受到欢迎。
Is there any way to select/update/delete dynamically using Ibatis/MyBatis?
When I say "dynamically" it means I don't want to create any POJO/DataMapper at all.
Any URL example would be welcomed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是的,只需将
resultType
属性设置为map
,表数据就会被放入列名到值的 HashMap 中。如果查询返回多于 1 行,则映射的行将放入列表中。如果您想选择单个列,则可以仅获取该值(如 String、int 等)或列表。这适用于MyBatis 3;我认为你可以在 iBatis 2 中做类似的事情。
Yes, just set the
resultType
attribute tomap
and the table data will be placed into a HashMap of column names to values. If the query returns more than 1 row, the mapped rows will be put into a List. If you want to select a single column, you can get just that value (as String, int, etc) or as a list.This applies to MyBatis 3; I think you can do something similar in iBatis 2.
以下方法可能很有用。
假设您有一些通用选择界面,例如:
例如单列或日期范围或任何范围),您可以在模板
Common.xml
中定义以下查询:根据某些外部类型( 从mybatis接收的是java.util.Map。然后你可以像下面这样使用它:
其中 SetParameter 可以表示为以下形式:
此外,你可以定义一些WhereStmt,例如:
最后,在 mybatis generic
Common.xml
中,你可以这样使用它:并结合sql语句作为模板,说:
The following approach can be useful.
Say, you have some generic select interface, like:
According to some external type (say, single column or date range or range whatsoever) you can define the following query in the template
Common.xml
:What you receive from mybatis is the java.util.Map. Then you can you use it some kind like:
where the SetParameter can be represented as the following:
Moreover, you can define some WhereStmt like:
Finally, in mybatis generic
Common.xml
you can use it like:And combine sql statements as the template, say:
是的,应该可以通过 API 在运行时构建映射,并使用映射而不是实体类。
Yes, it should be possible to build the mapping in runtime through an API, and to use Maps instead of entity classes.
是的,您可以在不使用 POJO 的情况下进行选择/更新/删除。
在 myBatis 中,您可以在 Mapper XML 中编写查询并设置将从 SQL 语句返回的 resultType 并将其存储在对象中。
例如,
您可以使用地图列表来存储这些结果。
Yes, you can do select/update/delete without using POJO.
In myBatis you can write your query in Mapper XML and set the resultType that will be returned from SQL statement and store that in objects.
For Example,
You can use List of Maps to store those results.