本文共 1884 字,大约阅读时间需要 6 分钟。
基本与jdbc连接数据库的代码差不多,要支持多数据库,最关键的是分页的语句。
解决思路:编写一个统一处理sql的方法,接收业务SQL,根据不同的数据库类型,返回最终处理好的分页SQL。@Repositorypublic class BaseDao { /** * 处理业务SQL为可分页SQL * * @param sql 业务sql * @param start 开始索引 = (页号 - 1 ) * 每页条数 * @param end 结束索引 = 页号 * 每页条数 * @param valueList 参数list * @return */ public String searchByPage(String sql, int start, int end, List
参考文档:
oracle,mysql都可以用concat()函数进行连接,oracle的concat()只能传入两个参数,而mysql的可以传入多个参数,sqlserver则不能用concat()函数 ,只能用+来进行字符串的连接。
解决方式一:同一个mapper.xml,根据属性databaseId区分不同数据库
缺点:同样的sql要写很多份,文件异常庞大臃肿。不建议 升级:拆成多个xml。不建议解决方式二:根据不同的数据库,选用不同的mapper.xml
mapper映射采用在mybatis的配置文件中指定路径进行批量映射。 实现方式:通过配置文件读取到数据库类型,统一转换大小写,作为文件夹名称,每个数据库都有一个对应的存放mapper.xml的文件夹。 缺点:这种办法导致mapper.xml好几份,差别不大,很浪费,不建议使用。 升级:使用插件解决方式三:使用分页插件
转载地址:http://qwqgn.baihongyu.com/