源代码:

package cn.finedo.fdcollect_service.util;

import java.sql.Connection;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; public class DoConnection {
private static Logger logger = LogManager.getLogger(); public static Connection connection(String dbtype,String linktype,String tns,String ip,String port,String dbname,String username,String password){
Connection conn = null;
try {
String jdbcurl = "";
if ("ORACLE".equals(dbtype.toUpperCase())) {
if("单节点".equals(linktype)){
jdbcurl = "jdbc:oracle:thin:@" + ip + ":"
+ port + ":" + dbname;
}else{
jdbcurl = "jdbc:oracle:thin:@ "+ tns;
}
conn =DBHelper.initOracle(jdbcurl,username,password, false); } else if ("MYSQL".equals(dbtype.toUpperCase())) {
jdbcurl = "jdbc:mysql://" + ip + ":"
+ port + "/" + dbname
+ "?useUnicode=true&characterEncoding=utf-8";
conn =DBHelper.initMysql(jdbcurl, username,password, false); } else if ("DB2".equals(dbtype.toUpperCase())) {
jdbcurl = "jdbc:db2://" + ip + ":"
+ port + "/" + dbname;
conn =DBHelper.initDB2(jdbcurl, username,password, false); } else if ("SQLSERVER".equals(dbtype.toUpperCase())) {
jdbcurl = "jdbc:sqlserver://" + ip + ":"
+ port + ";DatabaseName=" + dbname;
conn =DBHelper.initSQLServer(jdbcurl, username,password, false); }else if("GREENPLUM".equals(dbtype.toUpperCase())){
/*jdbcurl = "jdbc:pivotal:greenplum://" + ip + ":"
+ port + ";DatabaseName=" + dbname;*/
jdbcurl = tns;
conn = DBHelper.initGreenPlum(jdbcurl, username, password, false);
}else if("HIVE".equals(dbtype.toUpperCase())){
/*jdbcurl = "jdbc:hive2://" + ip + ":"+port + "/default";*/
jdbcurl = tns;
conn = DBHelper.initHIVE(jdbcurl, username, password, false);
}else {
return null;
}
} catch (Exception e) {
logger.error("数据源连接失败",e);
return null;
} return conn;
} public static void close(Connection conn){
if (conn != null) {
DBHelper.closeDB(conn, null, null);
} else {
DBHelper.closeDB(conn, null, null);
}
}
}

DBHelper.java

package cn.finedo.fdcollect_service.util;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; public class DBHelper {
private static Logger logger = LogManager.getLogger();
// public static Connection conn=null;
/**
* @author Liyg
* @description 创建ORACLE连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initOracle(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
conn = DriverManager.getConnection(jdbcurl, username, password);
conn.setAutoCommit(autoCommit);
// logger.debug(jdbcurl);
// logger.debug("username=【"+username+"】");
// logger.debug("Oracle DATABASE: Connection success!");
}catch(Exception se) {
//连接失败
// logger.debug("initOra:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
//System.exit(0);
logger.error("ORACLE连接失败",se);
return null;
}
return conn;
} /**
* @author Liyg
* @description 创建DB2连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initDB2(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Driver driver=(Driver) Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
//连接数据库
DriverManager.registerDriver(driver);
conn = DriverManager.getConnection(jdbcurl, username, password);
conn.setAutoCommit(autoCommit);
// logger.info("db2 DATABASE:" + jdbcurl + " Connection success!");
}catch(Exception se) {
// logger.debug("initDB2:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
logger.error("DB2连接失败",se);
return null;
}
return conn;
} /**
* @author Liyg
* @description 创建MYSQL连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initMysql(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
//连接数据库
conn = DriverManager.getConnection(jdbcurl, username, password);
conn.setAutoCommit(autoCommit);
// logger.debug(jdbcurl);
// logger.debug("username=【"+username+"】");
// logger.debug("MYSQL DATABASE: Connection success!");
}catch(Exception se) {
//连接失败
conn = null;
// logger.debug("initMYSQL:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
logger.error("MYSQL连接失败",se);
return null;
}
return conn;
} /**
* @author Liyg
* @description 创建SQLServer连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initSQLServer(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 连接数据库
conn = DriverManager.getConnection(jdbcurl, username, password);
conn.setAutoCommit(autoCommit);
// logger.debug(jdbcurl);
// logger.debug("username=【" + username + "】");
// logger.debug("SQLSERVER DATABASE: Connection success!");
} catch (Exception se) {
// 连接失败
// logger.debug("initSQLServer:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
// System.exit(0);
logger.error("SQLSERVER连接失败",se);
return null;
}
return conn;
} /**
* @author zk
* @description 创建GreenPlum连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initGreenPlum(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Class.forName("com.pivotal.jdbc.GreenplumDriver");
//conn = DriverManager.getConnection("jdbc:pivotal:greenplum://192.168.229.146:5432;DatabaseName=database", "gpadmin", "111");
conn = DriverManager.getConnection(jdbcurl,username, password);
conn.setAutoCommit(autoCommit);
// logger.debug("GreenPlum DATABASE: Connection success!");
} catch (Exception se) {
// 连接失败
// logger.debug("GreenPlum:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
logger.error("GREENPLUM连接失败",se);
return null;
}
return conn;
} /**
* @author zk
* @description 创建HIVE连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @return
*/
public static Connection initHIVE(String jdbcurl, String username, String password, boolean autoCommit) {
Connection conn=null;
try {
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
//conn = DriverManager.getConnection("jdbc:pivotal:greenplum://192.168.229.146:5432;DatabaseName=database", "gpadmin", "111");
conn = DriverManager.getConnection(jdbcurl,username, password);
conn.setAutoCommit(autoCommit);
// logger.debug("HIVE: Connection success!");
} catch (Exception se) {
// 连接失败
// logger.debug("HIVE:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
logger.error("HIVE连接失败",se);
return null;
}
return conn;
}
/**
* @author Liyg
* @description 根据传入的数据源类型,创建Connection连接信息
* @param jdbcurl
* @param username
* @param password
* @param autoCommit
* @param dbtype
* @return
*/
public static Connection intiConnection(String jdbcdriver,String jdbcurl, String username, String password, boolean autoCommit, String dbtype) {
Connection conn = null;
try {
Class.forName(jdbcdriver);
// 连接数据库
conn = DriverManager.getConnection(jdbcurl, username, password);
conn.setAutoCommit(autoCommit);
// logger.debug(jdbcurl);
// logger.debug("username=【" + username + "】");
// logger.debug("SQLSERVER DATABASE: Connection success!");
} catch (Exception se) {
// 连接失败
// logger.debug("initSQLServer:"+jdbcurl + "\r\n" + " Connection failed! " + se.getMessage());
// System.exit(0);
logger.error("连接失败",se);
return null;
}
return conn;
} /**
* 关闭数据库
* @author Liyg
* @param conn
* @param pstmt
*/
public static void closeDB(Connection conn, PreparedStatement pstmt,ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
rs = null; if (pstmt != null) {
pstmt.close();
}
pstmt = null; if (conn != null) {
conn.close();
}
conn = null;
} catch (Exception ee) {
// logger.info("关闭数据库操作异常:" + ee.getMessage());
logger.error("数据源关闭失败",ee);
}
} }

Java测试各种数据库连接(用Connection类)的更多相关文章

  1. 自学Java测试代码 - 简单地Student类

    2017-08-23  23:45:38 writer:pprp 写这个还蛮开心的 package test; public class Student { //创建成员变量 String name ...

  2. 1903021116—吉琛—Java第七周作业—客户类测试

    项目 内容 课程班级博客链接 19信计班 这个作业要求链接 第七周作业链接 博客名称 学号-姓名-Java第七周作业-客户类测试 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决 ...

  3. 1903021121-刘明伟-java第七周作业-客户类测试

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 作业要求链接 博客名称 1903021121-刘明伟-java第七周作业-客户类测试 要求 每道题要有题目,代码,截图 第一部分: 创建客 ...

  4. Java写的数据库连接池

    原文地址: http://lgscofield.iteye.com/blog/1820521 import java.sql.*; import java.util.Enumeration; impo ...

  5. JAVA jdbc获取数据库连接

    JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...

  6. java.sql.SQLException: Io 异常: Connection reset

    当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLExc ...

  7. spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常

    转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: ...

  8. java操作数据库的通用的类

    package cn.dao; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; ...

  9. Java基础-DBCP连接池(BasicDataSource类)详解

    Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 ...

随机推荐

  1. ubuntu 16.04.1 nginx彻底删除与重新安装

    1.删除nginx,-purge包括配置文件 sudo apt-get --purge remove nginx 2.移除全部不使用的软件包 sudo apt-get autoremove 3.罗列出 ...

  2. [.net]ConcurrentBag源码分析

    ConcurrentBag根据操作线程,对不同线程分配不同的队列进行数据操作.这样,每个队列只有一个线程在操作,不会发生并发问题.其内部实现运用了net4.0新加入的ThreadLocal线程本地存储 ...

  3. 设置TeeChart的提示文本

    使用第三方Steema的TeeChart控件,设置鼠标放在某一线条点上,显示某一点的数据标签问题(虚线型十字光标基准线,放在线上显示对应点的二维坐标轴数据数据),调用InitTeeChartTipTo ...

  4. BZOJ1558 等差数列

    题目链接:戳我 实话实话,看了几篇题解真的没看懂,我觉得讲的都有问题.这里对于线段树维护的s写了一点我自己的理解. 看到等差数列,我们考虑对数列做差,这样如果是等差数列,那么值应该相等.(比较容易维护 ...

  5. Android 音视频开发入门指南

    Android 音视频从入门到提高 —— 任务列表 http://blog.51cto.com/ticktick/1956269(以这个学习为基础往下面去学习) Android 音视频开发学习思路-- ...

  6. Java中运算符“|”和“||”以及“&”和“&&”区别

    1.“|”运算符:不论运算符左侧为true还是false,右侧语句都会进行判断,下面代码 int a =1,b=1; if(a++ == 1 | ++b == 2) System.out.printl ...

  7. django使用haystack来调用Elasticsearch搜索引擎

    如何使用django来调用Elasticsearch实现全文的搜索 环境:django ==1.11.11 Haystack为Django提供了模块化的搜索.它的特点是统一的,熟悉的API,可以让你在 ...

  8. 总结day12 ----装饰器

    一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事 ...

  9. Postgres中的SpinLock锁

    我们知道,在数据库中为了并发控制,少不了要使用各种各样的锁(lock).PostgreSQL中也不例外. 在PostgreSQL中有三种级别的锁,他们的关系如下: |上层 RegularLock | ...

  10. 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送

    01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...