mybatis实现支持哪些数据库
答案:2 悬赏:20 手机版
解决时间 2021-03-11 22:12
- 提问者网友:饥饿走向夜
- 2021-03-11 00:45
mybatis实现支持哪些数据库
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-03-11 01:52
mybatis使用java jdbc。所以只要jdbc支持的数据库都支持。而jdbc是提供了可扩展性的,所以只有这个数据库有提供针对java的jar包则就可以使用咯。
全部回答
- 1楼网友:平生事
- 2021-03-11 03:03
方法:在系统运行过程中,针对不同数据库类型区分加载不同文件路径下的sqlmap配置。留给开发人员做的事依旧是快乐地编写原始数据库语句,而不再为多数据库兼容问题挠头。
分析问题:
1、解决ibatis多数据库兼容的问题,实际上就是让ibatis可以自动选择不同数据库sqlmap配置文件。
2、打开ibatis源码工程并进行代码跟踪,最终定位到com.ibatis.sqlmap.engine.builder.xml.sqlmapconfigparser.java处,系统中运行的sqlmap节点均从这里统一转化加载的。
3、很明显sqlmapconfigparser源码中的addsqlmapnodelets负责解析“/sqlmapconfig/sqlmap”路径,即也就是sqlmap文件路径。
4、要实现“多数据库兼容”,这里改造下这个方法即可。
解决方法:
1、首选我们在节点新增一个“dbproductname”用于判断数据库种类。当然通过java.sql.databasemetadata也可以获得,但这太依赖于jdbc驱动,还是手动配置保险。
2、重构sqlmapconfigparser的addsqlmapnodelets方法。
" 1)首选获得单个sqlmap文件的位置,如 sqlmap主目录\xxx.xml;
2)依据上面设置的dbproductname属性值获得数据库类型;
3)将sqlmap的文件路径重定位到运行数据库类型文件下。如 sqlmap主目录\mysql\xxx.xml,代表程序当前运行于msql数据库上,并加载系统mysql数据库对应的 sqlmap文件"
4、ok,现在ibatis支持“多数据库兼容”了(完整源码见附件)。
使用方法:
1、编译sqlmapconfigparser.java生成可运行文件sqlmapconfigparser.class(见附件),并将其覆盖添加到ibatis.jar中。
2、在系统sqlmap配置文件存放主目录如src\conf\mapping添加多数据库兼容支持的子目录,如src\conf\mapping\mysql,src\conf\mapping\oracle等
3、以实际项目需要编写多数据库sqlmap配置文件。注意:不同数据库类型需要确保具有相同的sqlmap配置文件名和sql节点名
4、在ibatis主配置文件(如sql-map-config.xml)中,指定当前程序运行数据库类型
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯