java业务逻辑,利用hibernate获取所连接的数据库信息
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获取所连接的数据库信息的更多相关文章
- iOS获取当前连接的wifi信息
导入框架CaptiveNetwork #import <SystemConfiguration/CaptiveNetwork.h> 获取当前连接的wifi信息 // 只能获取当前的SSID ...
- java 利用ManagementFactory获取jvm,os的一些信息--转
原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...
- 利用DNSLOG获取看不到的信息(给盲注带上眼镜)
一.前言 本文原创作者:sucppVK,本文属i春秋原创奖励计划,未经许可禁止转载! 毕业设计总算搞得差不多了,这个心累啊.这不,完成了学校的任务,赶紧回来给蛋总交作业.今天给大家分享一个姿势吧,不是 ...
- Java学习,利用IDEA开发工具连接redis
Idea连接redis及Jedis数据操作 注意是否开启了redis服务!!! 1.打开虚拟机终端,查看虚拟机防火墙是否关闭 查看防火墙当前状态命令: $sudo ufw status 我的是默认关闭 ...
- java通过配置文件(Properties类)连接Oracle数据库代码示例
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...
- 编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息
随着高速(20M)宽带.HTPC.大容量硬盘(3T)的普及,下载高清片并利用大屏幕观看也成为普通的事情. 随着下载影片的增多,管理就有了问题,有时在茫茫文件夹下找寻一个影片也是一件费时费力的事. 于是 ...
- 利用Hibernate 框架,实现对数据库的增删改查
增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...
- 获取电脑连接WiFi的信息
在cmd中执行如下命令,即可查看到所有连接过的WiFi信息 for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show ...
- 微信小程序开发(九)获取手机连接的wifi信息
// succ.wxml <view>WIFI ssid:{{wifissid}}</view> <view>WIFI bssid:{{wifiBssid}}< ...
随机推荐
- 131.006 Unsupervised Learning - Feature Scaling | 非监督学习 - 特征缩放
@(131 - Machine Learning | 机器学习) 1 Feature Scaling transforms features to have range [0,1] according ...
- IEC_62304_CheckList
IEC 62304 Reference Software Lifecycle Process Applicable for Class A Class B Class C PRIMARY LIFECY ...
- 【Leetcode】【Easy】Contains Duplicate
Given an array of integers, find if the array contains any duplicates. Your function should return t ...
- [翻译] VLDContextSheet
VLDContextSheet 效果: A clone of the Pinterest iOS app context menu. 复制了Pinterest应用的菜单效果. Example Usag ...
- linux 下通过过 hbase 的Java api 操作hbase
hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ...
- 在oracle电子商务套件中输出信息
一.用自定义用户HAND_SL登陆http://zd01.haasgz.hand-china.com:30000/ 添加可执行并发程序 执行文件名填写自己的包名称.入口函数/过程名 二.将可执行程序添 ...
- DRAM(动态)存储器
一.DRAM的存储元电路 常见的DRAM存储元电路有四管式和单管式两种,它们的共同特点是靠电容存储电荷的原理来存储信息.电容上存有足够多的电荷表示“1”,电容上无电荷表示“0”. 由于电容存储的电荷会 ...
- Mac OS 10.8 配置SVN服务器
Mac 10.8开始,不再默认安装svn,需要自行安装 如果您安装了XCode,会随同安装svn 更省事的办法: 1.安装homebrew,看看官网 http://brew.sh/index_zh-c ...
- [日常] NOIWC2019 冬眠记
NOIWC 2019 冬眠记 辣鸡rvalue天天写意识流流水账 Day 0 早上没有跑操(极度舒服.png) 和春哥在博客颓图的时候突然被来送笔电的老爹查水表(捂脸) 母上大人骗我说这功能机不能放存 ...
- Python 常用文件
获取当前文件的路径: from os import path d = path.dirname(__file__) #返回当前文件所在的目录 # __file__ 为当前文件, 若果在ide中运行此行 ...