数据库连接工具类

我是标题

有点用好像完全又没有用的工具类

java代码

package com.lydata.handfulcode.common.utils;

import cn.hutool.core.convert.Convert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Arrays;

/**
 * @author: aQ
 * @program: workspace
 * @description: 数据库链接工具类
 * @company date: 海葵 2021-05-08 14:24
 **/
public class DataBaseConnectionUtil {

    private static final Logger logger = LoggerFactory.getLogger(DataBaseConnectionUtil.class);

    /**
     * 创建ORACLE连接信息
     *
     * @param linkType
     * @param ip
     * @param port
     * @param dbname
     * @param username
     * @param password
     * @param autoCommit
     * @return java.sql.Connection
     * @author: aQ
     * @date 2021/5/8 15:17
     **/
    public static Connection initOracle(String linkType, String ip, String port, String dbname, String username, String password, boolean autoCommit) {
        String jdbcUrl = "";
        if ("Basic".equals(linkType)) {
            // oracle数据库用户名需要带上C##开头
            jdbcUrl = "jdbc:oracle:thin:@" + ip + ":" + port + "/" + dbname;
        } else if ("TNS".equals(linkType)) {
            jdbcUrl = "jdbc:oracle:thin:@ " + ip;
        } else {
            return null;
        }
        String jdbcDriver = "oracle.jdbc.driver.OracleDriver";
        return intiConnection(jdbcDriver, jdbcUrl, username, password, autoCommit);
    }

    public static Connection initOracle(String linkType, String ip, String port, String dbname, String username, String password) {
        return initOracle(linkType, ip, port, dbname, username, password, Boolean.TRUE);
    }

    /**
     * 创建MYSQL连接信息
     *
     * @param ip
     * @param port
     * @param dbname
     * @param username
     * @param password
     * @param autoCommit
     * @return java.sql.Connection
     * @author: aQ
     * @date 2021/5/8 15:11
     **/
    public static Connection initMysql(String ip, String port, String dbname, String username, String password, boolean autoCommit) {
        String jdbcDriver = "com.mysql.jdbc.Driver";
        String jdbcUrl = "jdbc:mysql://" + ip + ":" + port + "/" + dbname + "?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
        return intiConnection(jdbcDriver, jdbcUrl, username, password, autoCommit);
    }

    public static Connection initMysql(String ip, String port, String dbname, String username, String password) {
        return initMysql(ip, port, dbname, username, password, Boolean.TRUE);
    }

    /**
     * 创建SQLServer连接信息
     *
     * @param ip
     * @param port
     * @param dbname
     * @param username
     * @param password
     * @param autoCommit
     * @return java.sql.Connection
     * @author: aQ
     * @date 2021/5/8 15:12
     **/
    public static Connection initSQLServer(String ip, String port, String dbname, String username, String password, boolean autoCommit) {
        String jdbcDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String jdbcUrl = "jdbc:sqlserver://" + ip + ":" + port + ";DatabaseName=" + dbname;
        return intiConnection(jdbcDriver, jdbcUrl, username, password, autoCommit);
    }

    public static Connection initSQLServer(String ip, String port, String dbname, String username, String password) {
        return initSQLServer(ip, port, dbname, username, password, Boolean.TRUE);
    }

    /**
     * 创建HANA连接信息
     *
     * @param ip
     * @param port
     * @param dbname
     * @param username
     * @param password
     * @param autoCommit
     * @return java.sql.Connection
     * @author: aQ
     * @date 2021/5/8 16:29
     **/
    public static Connection initHana(String ip, String port, String dbname, String username, String password, boolean autoCommit) {
        String jdbcDriver = "com.sap.db.jdbc.Driver";
        String jdbcUrl = "jdbc:sap://" + ip + ":" + port + "/databaseName=" + dbname;
        return intiConnection(jdbcDriver, jdbcUrl, username, password, autoCommit);
    }

    public static Connection initHana(String ip, String port, String dbname, String username, String password) {
        return initHana(ip, port, dbname, username, password, Boolean.TRUE);
    }

    /**
     * 根据传入的数据源类型,创建Connection连接信息
     *
     * @param jdbcDriver
     * @param jdbcUrl
     * @param username
     * @param password
     * @param autoCommit
     * @return java.sql.Connection
     * @author: aQ
     * @date 2021/5/8 14:56
     **/
    public static Connection intiConnection(String jdbcDriver, String jdbcUrl, String username, String password, boolean autoCommit) {
        Connection conn;
        try {
            Class.forName(jdbcDriver);
            // 连接数据库
            conn = DriverManager.getConnection(jdbcUrl, username, password);
            // 设置是否自动提交
            conn.setAutoCommit(autoCommit);
        } catch (Exception se) {
            logger.error("连接失败", se);
            return null;
        }
        return conn;
    }

    /**
     * 关闭数据库
     *
     * @param conn
     * @return void
     * @author: aQ
     * @date 2021/5/8 14:51
     **/
    public static void closeDB(Connection conn) {
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (Exception ee) {
            logger.error("数据源关闭失败", ee);
        }
    }

    public static void main(String[] args) throws SQLException {
//        Connection connection = initHana("192.168.3.107", "30015", "DBO", "DBO", "HaiKui1234",false);
//        Connection connection = initSQLServer("192.168.3.164", "1433", "fdi", "sa", "hk123456",false);
//        Connection connection = initOracle("Basic", "192.168.3.104", "1521", "ORCL", "HK", "1a2b3c4D",false);
        Connection connection = initMysql("192.168.3.105", "3306", "lydata_merchant_base", "root", "Lyhdata@mysql105", false);
        System.out.println(connection);
//        String sql = "select * from user_info";
//        PreparedStatement ps = connection.prepareStatement(sql);
//        ResultSet rs = ps.executeQuery();
//        if (rs.next()) {
//            do {
//                String text = "id:" + rs.getInt("id") + ",name:" + rs.getString("name");
//                System.out.println(text);
//            } while (rs.next());
//        }

//        String sql = "INSERT INTO fdi_job_3 (id,merchant_id,job_name) VALUES (?,?,?)";
//        String sql = "UPDATE fdi_job_3 SET remark = 1 WHERE id = ? and merchant_id = ? and job_name = ?";
        String sql = "DELETE FROM fdi_job_3 WHERE id = ? and merchant_id = ? and job_name = ?";
        int count = 1;
        // 执行sql
        PreparedStatement ps2 = connection.prepareStatement(sql);
        for (int i = 1; i <= 101; i++) {
            ps2.setLong(1, Convert.toLong(i));
            ps2.setLong(2, 1);
            ps2.setString(3, "aaa" + i);
            // 添加批处理
            ps2.addBatch();
            if (count % 10 == 0 || count == 101) {
                int[] executeBatch = ps2.executeBatch();
                System.out.println(Arrays.toString(executeBatch));
                long executeBatchCount = Arrays.stream(executeBatch).filter(x -> x == 1).count();
                System.out.println(executeBatchCount);
                ps2.clearBatch();
                connection.commit();
            }
            count++;
        }
        closeDB(connection);
    }
}

pom引入

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.13</version>
</dependency>
<dependency>
	<groupId>com.oracle.database.jdbc</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.4</version>
</dependency>
<dependency>
	<groupId>com.microsoft.sqlserver</groupId>
	<artifactId>mssql-jdbc</artifactId>
	<version>9.2.1.jre8</version>
</dependency>
<dependency>
	<groupId>com.sap.cloud.db.jdbc</groupId>
	<artifactId>ngdbc</artifactId>
	<version>2.8.14</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.hexiang.utils.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.log4j.Logger; public class DBConnection { /** * 获得与数据库的连接 * * @param path * @return Connection */ public static Connection getConn(String classDriver, String url, String user, String pwd) { try { Class.forName(classDriver); return DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(DataSource dataSource) { try { return dataSource.getConnection(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(String jndiName) { try { Context ctx; ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/" + jndiName); return dataSource.getConnection(); } catch (NamingException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(Properties properties) { try { String driver = properties.getProperty("jdbc.driverClassName"); String url = properties.getProperty("jdbc.url"); String user = properties.getProperty("jdbc.username"); String password = properties.getProperty("jdbc.password"); Class.forName(driver); return DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } /** * oracle连接 * * @param path * @return Connection */ public static Connection getOracleConn(String

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值