举个 c#的例子

```code
var table="";
string Sql =String.Fomat(@"
select
* from
{0}
",table)
```
这样子就可以了。

而在 java 里写 Sql 模板 sting Sql= "" + "" + ,或 append() ,非常令人难受。。
举报· 375 次点击
登录 注册 站外分享
30 条回复  
ccpp132 小成 2024-8-8 15:23:29
也不太行吧,比如这句你得考虑你的 table 有没有特殊字符,放到 sql 里要不要转义
miaotaizi 小成 2024-8-8 15:24:25
写到 XML 里面不就好了
dif 小成 2024-8-8 15:28:01
也不是吧,mybatis 能火主要是 SQL 能够直观地写出来,便于所谓的调优,另外就是也确实有些业务时 hibernate 无法实现的,必须通过编写 SQL 去解决。

我做过一个 python 项目,便遇到了类似的问题,因为没有 mybatis ,但 SQL 的拼装又非常复杂,所以最后实现的代码看起来就是依托答辩。但反观用 java mybatis 实现起来 相对来说,清晰了一点。 就我个人而言,一旦遇到数据分析之类的项目,首选肯定时 mybatis, cms 之类的会用 jpa 。 当然根据实际情况混用一下也不是不可以。反正最后都是一座屎山。
lucasj 小成 2024-8-8 15:28:05
"One of the most powerful features of MyBatis has always been its Dynamic SQL capabilities."
https://mybatis.org/mybatis-3/dynamic-sql.html

if, choose, when, otherwise, trim, where, set
dbpe 小成 2024-8-8 15:28:14
1. java14 之前,多行文本支持度不行,一堆“”+“”
2. 字符串模版木有。。。
ZZ74 小成 2024-8-8 15:29:37
java 也有 string format 的.....
主要原因大家都说了
lisongeee 小成 2024-8-8 15:30:48
可能他们还在用已经发布 10 年的 java8 ,另外我每天都能看到学习 java8 新语法 API 的文章

最新的 java 早就支持多行文本语法了

https://docs.oracle.com/en/java/javase/22/text-blocks/index.html
Goooooos 初学 2024-8-8 15:33:45
@lisongeee mybatis 在 java8 之前就火了
2024 小成 2024-8-8 15:34:19
现在不都是 orm 吗,为什么还要拼接? 根据 ide 点着下去不就好了。
user, has := admin2.NewOrmAdminUsers().WhereUsername(req.Username).First()
1234下一页
返回顶部