Java连接PostGreSql

这篇具有很好参考价值的文章主要介绍了Java连接PostGreSql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本次试验怎么用jdbc连接PostGreSql数据库。首先需要安装一个pgsql数据库,安装就不介绍了。安装后自己用SQL创建表,如有下图的库和表,怎么用java带SQL参数连接他取的数据。

PG库下载地址
java postgresql,java,postgresql,开发语言
首先到官网上根据自己的Java版本下载jdbc驱动jdbc下载地址

下载后把驱动投入libs
java postgresql,java,postgresql,开发语言
同时拷贝maven串
java postgresql,java,postgresql,开发语言

把maven串贴入工程
java postgresql,java,postgresql,开发语言

然后添加引用jar包
java postgresql,java,postgresql,开发语言

然后写代码操作数据库

import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.lang.Class;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.jar.JarFile;
import java.util.jar.JarEntry;

import ZLZJar.*;

import java.sql.*;

//zlz练习
public class Main {

    //m主方法
    public static void main(String[] args) {
        try {
            //自己生成jar包路径
            URL url = new File("D:\\ZLZJar\\out\\artifacts\\ZLZJar\\ZLZJar.jar").toURI().toURL();
            URL[] urls = new URL[]{url};
            //加载程序集
            URLClassLoader loader = new URLClassLoader(urls);
            //加载类
            Class c = loader.loadClass("ZLZJar.Test");
            //创建对象
            Object o = c.newInstance();
            //得到方法
            Method m = c.getMethod("Hello");
            //执行
            m.invoke(o);
            //有参数的方法通过名称无法得到,自己包装一下
            //Method mAdd = c.getMethod("Add");
            Method mAdd = GetMethod(c, "Add");
            Object ret = mAdd.invoke(o, 1, 2);
            System.out.println("求和结果:" + ret);
            //转换成接口,这个很重要,后面的实现类都实现特定接口,通过反射得到对象调用,实现多态和动态调用
            ITest it = (ITest) o;
            //接口调用
            it.Invoke("zlz调用传入的参数");
            PgSqlTest();

        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

    //连接PostGreSql测试
    public static void PgSqlTest() {
        //连接串,最后的是数据库名称
        String url = "jdbc:postgresql://localhost:5432/dhclisdata";
        //用户
        String user = "postgres";
        //密码
        String password = "SYS";
        //建立连接
        Connection conn = null;
        //command
        PreparedStatement stmt = null;
        try {
            //加载驱动
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(url, user, password);

            //编译和执行SQL语句,传输SQL参数查询1997-2000行
            String sql = "SELECT * FROM dbo.SYS_Form where \"RowID\">? and \"RowID\"<?;";
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1,1997);
            stmt.setInt(2,2000);
            //结果集
            ResultSet rs = stmt.executeQuery();

            // 处理查询结果
            while (rs.next()) {
                //取列数据
                int RowID = rs.getInt("RowID");
                String CName = rs.getString("CName");
                String Path = rs.getString("Path");
                //输出
                System.out.println(RowID + "\t" + CName + "\t" + Path);
            }

            // 关闭 ResultSet、Statement 和 Connection 对象
            rs.close();
        }
        catch (SQLException se) {
            // 处理 JDBC 异常
            se.printStackTrace();
        }
        catch (Exception e) {
            // 处理 Class.forName 异常
            e.printStackTrace();
        }
        finally {
            // 关闭资源
            try {
                if (stmt != null)
                {
                    stmt.close();
                }
            }
            catch (SQLException se2) {
            }
            try {
                if (conn != null)
                {
                    conn.close();
                }
            }
            catch (SQLException se2) {
            }
        }
    }

    //通过类型和名称得到方法
    public static Method GetMethod(Class c, String name) {
        Method[] methods = c.getMethods();

        for (Method method : methods) {
            System.out.println("类名:" + method.getName().intern());
            if (method.getName().intern() == name) {

                return method;

            }
        }
        return null;
    }

}

操作数据库部分

//连接PostGreSql测试
    public static void PgSqlTest() {
        //连接串,最后的是数据库名称
        String url = "jdbc:postgresql://localhost:5432/dhclisdata";
        //用户
        String user = "postgres";
        //密码
        String password = "SYS";
        //建立连接
        Connection conn = null;
        //command
        PreparedStatement stmt = null;
        try {
            //加载驱动
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(url, user, password);

            //编译和执行SQL语句,传输SQL参数查询1997-2000行
            String sql = "SELECT * FROM dbo.SYS_Form where \"RowID\">? and \"RowID\"<?;";
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1,1997);
            stmt.setInt(2,2000);
            //结果集
            ResultSet rs = stmt.executeQuery();

            // 处理查询结果
            while (rs.next()) {
                //取列数据
                int RowID = rs.getInt("RowID");
                String CName = rs.getString("CName");
                String Path = rs.getString("Path");
                //输出
                System.out.println(RowID + "\t" + CName + "\t" + Path);
            }

            // 关闭 ResultSet、Statement 和 Connection 对象
            rs.close();
        }
        catch (SQLException se) {
            // 处理 JDBC 异常
            se.printStackTrace();
        }
        catch (Exception e) {
            // 处理 Class.forName 异常
            e.printStackTrace();
        }
        finally {
            // 关闭资源
            try {
                if (stmt != null)
                {
                    stmt.close();
                }
            }
            catch (SQLException se2) {
            }
            try {
                if (conn != null)
                {
                    conn.close();
                }
            }
            catch (SQLException se2) {
            }
        }
    }

测试
java postgresql,java,postgresql,开发语言

jdbc操作数据库完成,第三个技术点积累完毕文章来源地址https://www.toymoban.com/news/detail-820367.html

到了这里,关于Java连接PostGreSql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot使用Netty连接Tcp接口(c语言二进制字节码转java字符串)

    一、引入netty的jar包 io.netty netty-all 二、使用netty框架 1、创建客户端 package com.iflytek.digtal.netty; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel

    2024年02月20日
    浏览(48)
  • 【Java】后端开发语言Java和C#,两者对比注解和属性的区别以及作用

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月16日
    浏览(51)
  • BsinCopilot:Java版端到端大语言模型开发框架

    BsinCopilot是基于BsinPaaS开源框架构建的大语言模型应用SaaS服务,借鉴langchain的框架思想,引入  langchian4j组件,微前端微服务的架构设计,可快速助您构建和体验端到端的AI应用。 概念 说明 Bsin 毕昇缩写,毕昇,中国北宋发明家,活字印刷术的发明者。毕昇出身平民,长期在

    2024年03月13日
    浏览(57)
  • Android 安卓开发语言kotlin与Java该如何选择

            如今在Android开发中,应用层开发语言主要是Java和Kotlin,Kotlin是后来加入的,主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些,其实不然。         有人说kotlin的引入是解决开发者复杂的逻辑,并且对空指针控制的比较友好,但是我们在开

    2024年02月11日
    浏览(61)
  • Java转Go:java开发者转学go语言,请给我一些建议和学习推荐

    在做开发时遇到最无理的需求就是部门没了😂 遇到最无理的需求就是部门没了😂,差点人也在这个公司没了,但好在是跟着大部队换了一个部门,就是要转go,也可能要用js和solidity开发 一开始知道部门没了,第一时间一定是会担心,甚至后面知道有的同事要被毕业,有的同

    2024年02月13日
    浏览(50)
  • 【Java】学习一门开发语言,从TA的Hello World开始

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月23日
    浏览(53)
  • 编程开发8大语言详解,为什么Java是我最推荐的?

    很多没有接触过编程语言的同学,都会觉得编程开发特别高端和神奇,担心理解不了更担心学不会。 当然,也有人会认为,你既然是做编程的,那么你应该什么都会,什么软件的开发都能完成,这是平哥经常听到的两种声音。 在此,平哥需要给大家科普一下, 编程确实改变

    2024年02月05日
    浏览(70)
  • 【Java】十年老司机转开发语言,新小白从学习路线图开始

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月17日
    浏览(47)
  • java项目mysql转postgresql

    特殊函数 : mysql:         find_in_set(?, ancestors) postgresql:         ? = ANY (string_to_array(ancestors,\\\',\\\')) mysql:         date_format(t1.oper_time, \\\'%Y-%m-%d\\\') postgresql:         rksj::date         to_char(inDate,\\\'YYYY-MM-DD\\\') mysql:         concat(t1.id, ifnull(t1.perms, \\\'\\\')) postgresql:

    2024年02月10日
    浏览(34)
  • Java/Python/Go不同开发语言在进程、线程和协程的设计差异

    在多线程项目开发时,最常用、最常遇到的问题是 1,线程、协程安全 2,线程、协程间的通信和控制 本文主要探讨不同开发语言go、java、python在进程、线程和协程上的设计和开发方式的异同。 进程 进程是 操作系统进行资源分配的基本单位,每个进程都有自己的独立内存空

    2024年01月23日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包