为什么想要使用 smartsql ? 从 MyBatis 过来的,更多的场景,适合手写 SQL ,而不是使用 EF 这样的完全体 ORM。
而 SQL 语句又希望写在 xml 中,而不是代码中。
首先吐槽一句,文档写得相当不清楚。可以参考 SmartSql 源码中的 sample 来理解如何使用,以下基本是最简可用配置,加一些踩坑说明。
1 SmartSqlMapConfig.xml
坑1 SQL 语句中的前缀
写的 SQL 大概是这个样子:
SELECT * FROM t_user WHERE c_id= @id
这里的 @id 是需要被替换的参数,那前缀是 @,?,#,: 中的哪一个呢?文档没有说,源码 sample 中用的是 @,于是,我也用 @ ,结果,死活生成不了正确的 SQL。
看源码:
死活生成不了正确的 SQL 的解释是:默认情况下,Sqlite 使用的是 @ ,而 MySql 使用的是 ? . 而我配的是 $,所有,用 @ 当然不行啦。
可是,一开始鬼知道。
可以修改配置吗?可以的,在 SmartSqlMapConfig.xml 中,ParameterPrefix 就是