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. Directly output the object name

    package basic.java; public class Case { public static void main(String[] args) { Student s = new Stu ...

  2. 如何提高 Java 中锁的性能

    锁不是问题的根源,锁之间的竞争才是 通常在多线程的代码中遇到性能方面的问题时,一般都会抱怨是锁的问题.毕竟锁会降低程序的运行速度和其较低的扩展性是众所周知的.因此,如果带着这种“常识”开始优化代码,其 ...

  3. 把KB转化为KB及以上单位

    /** * 把KB转化为KB及以上单位 * @param int $kb * @return string $new_val */ function return_over_kb($kb) { $kb ...

  4. 本地调试接口返回信息不对 以及 jar冲突问题

    今天下午在本地调试的时候碰到个很奇怪的问题:服务调用接口,返回的明明是有数据的,然后通过gson转换对象后,对象里面并没有自己想要的数据.看了代码什么的都没有问题.思考到底是哪里出了问题,想了半天想到 ...

  5. Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法

    https://blog.csdn.net/njchenyi/article/details/46641141

  6. Redis(二):c#连接Redis

    1.nuget StackExchange.Redis 2.建立RedisHelper类: public class RedisHelper { /// <summary> /// 连接字 ...

  7. JDBC连接数据库反射实现O/R映射

    测试preparedStatement public void testPreparedStatement(){ Connection connection=null; PreparedStateme ...

  8. 将csv导出json格式

    将csv导出json格式 import os,csv,json cf = open('D:\OneDrive\\Tech\\Script\\Powershell_Script\\Uxin_work\\ ...

  9. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

  10. Hydra初识

    Hydra词出自希腊神话,原意是是九头蛇,后被赫拉克罗斯所杀,成为赫拉克罗斯的12件伟大功绩之一.而在计算机上HC-HYDRA是一个支持多种网络服务的非常快速的网络登陆破解工具.支持ssh,RDP,M ...