我有一个使用mybatis进行对象持久化的应用程序.但是我有机会运行任意的sql(来自用户).我可以用mybatis做吗?
更新:
我选择使用dbutils(JDBC)来运行用户定义的sql,但我需要一个DataSource实例来创建QueryRunner.有什么方法可以从mybatis获取数据源吗?
解决方法
我用这个实用类:
import java.util.List; import org.apache.ibatis.annotations.SelectProvider; public interface sqlMapper { static class PuresqlProvider { public String sql(String sql) { return sql; } public String count(String from) { return "SELECT count(*) FROM " + from; } } @SelectProvider(type = PuresqlProvider.class,method = "sql") public List<?> select(String sql); @SelectProvider(type = PuresqlProvider.class,method = "count") public Integer count(String from); @SelectProvider(type = PuresqlProvider.class,method = "sql") public Integer execute(String query); }