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}}< ...
随机推荐
- Python爬虫教程-06-爬虫实现百度翻译(requests)
使用python爬虫实现百度翻译(requests) python爬虫 上一篇介绍了怎么使用浏览器的[开发者工具]获取请求的[地址.状态.参数]以及使用python爬虫实现百度翻译功能[urllib] ...
- 对View的onMeasure()方法的进一步研究
在Android开发中,很多人对自定义View是望而生畏,但这又是向高级进阶的必经之路,主要是对View里面的很多方法不知道怎么理解,其中一个就是onMeasure()方法. 首先,我自定义一个MyV ...
- Eclipse 中出现红色下划波浪线与红色感叹号
一直用eclipse写Python,老是看到一些字符串都给出红色波浪线, 看着就不舒服.弄了老半天终于消除了,原来是拼写检查 Windows->Preferences->General-& ...
- .NET的那些事儿(9)——C# 2.0 中用iTextSharp制作PDF(基础篇) .
该文主要介绍如何借助iTextSharp在C# 2.0中制作PDF文件,本文的架构大致按照iTextSharp的操作文档进行翻译,如果需要查看原文,请点击一下链接:http://itextsharp. ...
- 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 ...
- CSMA/CD 3
一.二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据. 目的:重传时再次发生碰撞的 ...
- Xcode 下载地址 与Macos版本要求
Xcode下载地址:https://developer.apple.com/download/more/ 参考文档:https://zh.wikipedia.org/wiki/Xcode
- SOJ 4309 Sum of xor 异或/思维
Source ftiasch 解题思路: 本题的题解有参考这里,但是那篇年代太久远,讲的也不甚清晰,所以可能会对很多新手造成困扰,所以又写了这一篇. 亦或有很多规律,本题使用到的是n^(n+1)=1, ...
- Go testing 库 testing.T 和 testing.B 简介
testing.T 判定失败接口 Fail 失败继续 FailNow 失败终止 打印信息接口 Log 数据流 (cout 类似) Logf format (printf 类似) SkipNow 跳过当 ...
- CentOS7图文安装教程
CentOS 7下载: CentOS 7只提供64位版本,虽然有不少国内镜像节点,不过还是觉得通过BT下载是不错的选择.镜像大小6.7G,联通20M光纤下载,不到小时.以下是中国大陆的下载地址列表: ...