1、本人程序架构是springMVC+hibernate,这次的需求是要针对不同的数据库,做不同的处理。

2、获取所连接的数据库是什么,oracle?  mysql?  sql server?  基础方法

public String getDatabaseProductName() {
String dpName = "";
Session session = null;
try {
session = this.getHibernateTemplate().getSessionFactory().openSession();
DatabaseMetaData dbData = session.connection().getMetaData();
dpName = dbData.getDatabaseProductName().toLowerCase();
} catch (SQLException e) {
log.error(e.getMessage(), e);
}finally{
if(session != null){
session.close();
session = null;
}
}
return dpName;
}

3、调用方法

String dbName = this.baseDao.getDatabaseProductName();
if(dbName.indexOf("oracle")>-1){//oracle
//做oracle的处理
}else if(dbName.indexOf("mysql")>-1){
//做mysql的处理
}else if(dbName.indexOf("sql server")>-1){
//做sql server的处理
}

4、题外话,如果想进一步获取用户实例名呢?

public String getDBName(String dbType) {
String dbName = "";
Session session = null;
try {
session = this.getHibernateTemplate().getSessionFactory().openSession();
DatabaseMetaData dbData = session.connection().getMetaData();
if("oracle".equals(dbType)){
dbName = dbData.getUserName();
}else if("mysql".equals(dbType)){ String url = dbData.getURL();
String str = url.substring(0, url.indexOf("?"));
dbName = str.substring(str.lastIndexOf("/") + 1);
}else if("sqlserver".equals(dbType)){
dbName = dbData.getUserName();
}
} catch (SQLException e) {
log.error(e.getMessage(), e);
}finally{
if(session != null){
session.close();
session = null;
}
}
return dbName.toLowerCase();
}

5、题外话调用方式

String test = baseDao.getDBName("mysql");

java业务逻辑,利用hibernate获取所连接的数据库信息的更多相关文章

  1. iOS获取当前连接的wifi信息

    导入框架CaptiveNetwork #import <SystemConfiguration/CaptiveNetwork.h> 获取当前连接的wifi信息 // 只能获取当前的SSID ...

  2. java 利用ManagementFactory获取jvm,os的一些信息--转

    原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...

  3. 利用DNSLOG获取看不到的信息(给盲注带上眼镜)

    一.前言 本文原创作者:sucppVK,本文属i春秋原创奖励计划,未经许可禁止转载! 毕业设计总算搞得差不多了,这个心累啊.这不,完成了学校的任务,赶紧回来给蛋总交作业.今天给大家分享一个姿势吧,不是 ...

  4. Java学习,利用IDEA开发工具连接redis

    Idea连接redis及Jedis数据操作 注意是否开启了redis服务!!! 1.打开虚拟机终端,查看虚拟机防火墙是否关闭 查看防火墙当前状态命令: $sudo ufw status 我的是默认关闭 ...

  5. java通过配置文件(Properties类)连接Oracle数据库代码示例

    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...

  6. 编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息

    随着高速(20M)宽带.HTPC.大容量硬盘(3T)的普及,下载高清片并利用大屏幕观看也成为普通的事情. 随着下载影片的增多,管理就有了问题,有时在茫茫文件夹下找寻一个影片也是一件费时费力的事. 于是 ...

  7. 利用Hibernate 框架,实现对数据库的增删改查

    增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...

  8. 获取电脑连接WiFi的信息

    在cmd中执行如下命令,即可查看到所有连接过的WiFi信息 for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show ...

  9. 微信小程序开发(九)获取手机连接的wifi信息

    // succ.wxml <view>WIFI ssid:{{wifissid}}</view> <view>WIFI bssid:{{wifiBssid}}< ...

随机推荐

  1. Python爬虫教程-06-爬虫实现百度翻译(requests)

    使用python爬虫实现百度翻译(requests) python爬虫 上一篇介绍了怎么使用浏览器的[开发者工具]获取请求的[地址.状态.参数]以及使用python爬虫实现百度翻译功能[urllib] ...

  2. 对View的onMeasure()方法的进一步研究

    在Android开发中,很多人对自定义View是望而生畏,但这又是向高级进阶的必经之路,主要是对View里面的很多方法不知道怎么理解,其中一个就是onMeasure()方法. 首先,我自定义一个MyV ...

  3. Eclipse 中出现红色下划波浪线与红色感叹号

    一直用eclipse写Python,老是看到一些字符串都给出红色波浪线, 看着就不舒服.弄了老半天终于消除了,原来是拼写检查 Windows->Preferences->General-& ...

  4. .NET的那些事儿(9)——C# 2.0 中用iTextSharp制作PDF(基础篇) .

    该文主要介绍如何借助iTextSharp在C# 2.0中制作PDF文件,本文的架构大致按照iTextSharp的操作文档进行翻译,如果需要查看原文,请点击一下链接:http://itextsharp. ...

  5. How to rename table name

    How to rename table name eg.  rename emp to emp01; see aslo: https://docs.oracle.com/javadb/10.8.3.0 ...

  6. CSMA/CD 3

    一.二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据. 目的:重传时再次发生碰撞的 ...

  7. Xcode 下载地址 与Macos版本要求

    Xcode下载地址:https://developer.apple.com/download/more/ 参考文档:https://zh.wikipedia.org/wiki/Xcode

  8. SOJ 4309 Sum of xor 异或/思维

    Source ftiasch 解题思路: 本题的题解有参考这里,但是那篇年代太久远,讲的也不甚清晰,所以可能会对很多新手造成困扰,所以又写了这一篇. 亦或有很多规律,本题使用到的是n^(n+1)=1, ...

  9. Go testing 库 testing.T 和 testing.B 简介

    testing.T 判定失败接口 Fail 失败继续 FailNow 失败终止 打印信息接口 Log 数据流 (cout 类似) Logf format (printf 类似) SkipNow 跳过当 ...

  10. CentOS7图文安装教程

    CentOS 7下载: CentOS 7只提供64位版本,虽然有不少国内镜像节点,不过还是觉得通过BT下载是不错的选择.镜像大小6.7G,联通20M光纤下载,不到小时.以下是中国大陆的下载地址列表: ...