Springboo连接数据库通用代码

一、创建连接并执行业务逻辑:

package com.hui.xiaoqiang;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

@Component
public class ScheduledTask {

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

    @Scheduled(cron="*/10 * * * * ?") // 每10秒钟执行一次
    private void process() throws SQLException {
        logger.info("开始-->");

        try {
            Connection conn_gauss = GaussUttils.getConnection("heheda", "123456");
            // 二级页面出数语句
            GaussUttils.executeFileSqls(conn_gauss);
            ResultSet duowei = GaussUttils.getset_dwfxhz(conn_gauss);
            while(duowei.next()){
                System.out.println("1--->");
            }
            //关闭数据库连接。
            conn_gauss.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        logger.info("结束-->");
    }
}

二、数据库通用类:

package com.hui.xiaoqiang;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.*;

public class ConnectionUtil {

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

    //创建数据库连接。
    public static Connection getConnection(String username, String passwd) {

        // oracle
        String driver = "oracle.jdbc.driver.OracleDriver";
        String sourceURL = "jdbc:oracle:thin:@//110.110.110.110:1521/xiaoqiang";

        // sqlserver
        //String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        //String sourceURL = "jdbc:sqlserver://110.110.110.110:1433;DatabaseName=小强签名设计";

        // GaussDB
        //String driver = "org.postgresql.Driver";
        //String sourceURL = "jdbc:postgresql://110.110.110.110:25308/db_heheda";        

        Connection conn;
        try {
            //加载数据库驱动。
            Class.forName(driver).newInstance();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

        try {
            //创建数据库连接。
            conn = DriverManager.getConnection(sourceURL, username, passwd);
            System.out.println("Connection gauss succeed!");
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return conn;
    };

    public static ResultSet getset_dwfxhz(Connection conn){
        String sql = "SELECT * FROM xiaoqiang.gr_js where ROWNUM <=5"; //oracle
        ResultSet set = null;
        try {
            Statement stmt = null;
            stmt = conn.createStatement();
            set = stmt.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return set;
    }

    // 执行文件中的SQL语句
    public static void executeFileSqls(Connection conn) {
        Statement stmt = null;
        try {
            stmt = conn.createStatement();

            String[] flieSqls = getSqls("heheda.sql"); // 把该文件放到resources目录下即可,注意文件命名不要用中文
            for (int i = 0; i < flieSqls.length; i++) {
                try {
                    stmt.execute(flieSqls[i]);
                } catch (SQLException e) {
                    e.printStackTrace();
                    System.out.println("该语句有问题,请排查-->" + flieSqls[i]);
                }
            }
            stmt.close();
        } catch (SQLException e) {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
            e.printStackTrace();
        }
    }

    public static String[] getSqls(String filename) {
        try {
            InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
            InputStreamReader isr = new InputStreamReader(io, "utf-8");
            BufferedReader br = new BufferedReader(isr);
            String line;
            StringBuilder gaussqls = new StringBuilder();
            while ((line = br.readLine()) != null) {
                if (!line.contains("--")) { // 把注释行去掉
                    gaussqls.append(line);
                    gaussqls.append(" "); // 解决拼接的两行中间可能没有空格的问题
                }
            }
            String[] sqls = gaussqls.toString().split(";");
            br.close();
            return sqls;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

三、maven配置:

        
        
            com.oracle
            ojdbc6
            11.2.0.1.0
        

        
        
            com.huawei.sqlserver
            sqljdbc4
            1.0.0
        

        
        
            com.huawei.gaussDb
            gsjdbc4
            1.0.0
        

注:有的驱动包maven配置好从网上下载不下来,我这里是都已经有个相应个驱动包,然后手动安装的。
如执行以下命令:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=E:\ojdbc6.jar

你可能感兴趣的:(Spring,boot,数据库)