java连接postgresql数据库代码及maven配置方式

 更新时间:2022年09月29日 10:50:19   作者:Storm Mun  
这篇文章主要介绍了java连接postgresql数据库代码及maven配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java连接postgresql代码及maven配置

postgresql数据库有默认数据库用户postgres,密码安装库时自己输入;

当然也可以连接其他用户;

maven依赖

db2依赖

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <scope>provided</scope>
</dependency>

连接postgresql的依赖

<dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>8.2-504.jdbc3</version>
</dependency>

Oracle

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc14</artifactId>
        <version>10.2.0.2.0</version>
</dependency>

MySQL

 <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.0.5</version>
</dependency>

QL Server

<dependency>
        <groupId>net.sourceforge.jtds</groupId>
        <artifactId>jtds</artifactId>
        <version>1.2</version>
</dependency>

java代码:

package com.weimanage.data;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
import java.util.Properties;
public class getDataSource {
    @Bean(name="dataSource")
    public static DataSource getDataSource(){
        Properties props = new Properties();
        props.setProperty("driver","org.postgresql.Driver");
        props.setProperty("url","jdbc:postgresql://127.0.0.1:5432/postgres");
        props.setProperty("user","postgres");
        props.setProperty("password ","1");
        DataSource dataSource = null;
        try {
            dataSource = BasicDataSourceFactory.createDataSource(props);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataSource;
    }
}

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配置

        <!--oracle-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>
        <!--sqlserver-->
        <dependency>
            <groupId>com.huawei.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!--GaussDB-->
        <dependency>
            <groupId>com.huawei.gaussDb</groupId>
            <artifactId>gsjdbc4</artifactId>
            <version>1.0.0</version>
        </dependency>

注:有的驱动包maven配置好从网上下载不下来,我这里是都已经有个相应个驱动包,然后手动安装的。

如执行以下命令:

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=E:\ojdbc6.jar

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Golang Protocol Buffer案例详解

    Golang Protocol Buffer案例详解

    这篇文章主要介绍了Golang Protocol Buffer案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java的枚举enum示例详解

    Java的枚举enum示例详解

    这篇文章主要给大家介绍了关于Java的枚举enum的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Java实现Map集合二级联动示例

    Java实现Map集合二级联动示例

    Java实现Map集合二级联动示例,需要的朋友可以参考下
    2014-03-03
  • Spring Boot项目传参校验的最佳实践指南

    Spring Boot项目传参校验的最佳实践指南

    有参数传递的地方都少不了参数校验,在web开发中前端的参数校验是为了用户体验,后端的参数校验是为了安全,下面这篇文章主要给大家介绍了关于Spring Boot项目传参校验的最佳实践,需要的朋友可以参考下
    2022-04-04
  • springboot2学习世界著名程序springboot开发体验

    springboot2学习世界著名程序springboot开发体验

    这篇文章主要为大家介绍了世界著名程序springboot开发体验,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 关于SpringBoot创建存储令牌的媒介类和过滤器的问题

    关于SpringBoot创建存储令牌的媒介类和过滤器的问题

    这篇文章主要介绍了SpringBoot创建存储令牌的媒介类和过滤器的问题,需要在配置文件中,添加JWT需要的密匙,过期时间和缓存过期时间,具体实例代码参考下本文
    2021-09-09
  • Unity2019-2020 个人版官方免费激活详细方法

    Unity2019-2020 个人版官方免费激活详细方法

    这篇文章主要介绍了Unity2019-2020 个人版官方免费激活详细方法,激活方法分位两种一种是激活新许可证,一种是手动激活,感兴趣的朋友跟随小编一起看看吧
    2021-04-04
  • Java实现复杂的进制转换器功能示例

    Java实现复杂的进制转换器功能示例

    这篇文章主要介绍了Java实现复杂的进制转换器功能,结合实例形式分析了java数学运算的相关实现技巧,需要的朋友可以参考下
    2017-01-01
  • java内部类使用总结

    java内部类使用总结

    本文主要介绍了java内部类使用总结。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Spring-Retry的使用详解

    Spring-Retry的使用详解

    在日常的一些场景中, 很多需要进行重试的操作.而spring-retry是spring提供的一个基于spring的重试框架,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-11-11

最新评论