jdbcTemplate等根据connection链接动态获取数据库类型

分类: 工作记录 0人评论 selfly 1年前发布

写了个数据库的通用dao,想要再扩展一下,采用拦截器等方式实现查询的分页等功能,使之更加方便通用。但是每个数据库的分页查询方式都有点不一样,所以在处理时必须要先得到数据库的类型。

为了使代码简洁没有配置文件等这类玩意,最好的办法是根据数据源动态的获取数据库的类型,研究了一下还真可以,可以说十分的简单,只要有connection链接对象就能得到数据库类型,理论上任何的持久化框架都行的通,这里以spring的jdbcTemplat为例,主要代码:

DatabaseMetaData md = this.jdbcTemplate.getDataSource().getConnection().getMetaData();  
System.out.println(md.getDatabaseProductName());  
System.out.println(md.getDatabaseProductVersion());

得到了数据库类型之后,接下来要做什么处理就方便了