使用JDBC处理Postgresql数据库

栏目: Java · 发布时间: 6年前

内容简介:不得不吐槽的是Java的配置真心的繁琐,如果没有有IDE的话,手动处理这些内容真心会累死人。今天简单的来说明下,如何使用JDBC来连接数据库,只能说是1个抛砖引玉的过程。这里,我们选择的Java版本为8,使用的数据库是Postgresql。首先我们使用maven下载对应的依赖:

不得不吐槽的是 Java 的配置真心的繁琐,如果没有有IDE的话,手动处理这些内容真心会累死人。

今天简单的来说明下,如何使用JDBC来连接数据库,只能说是1个抛砖引玉的过程。

这里,我们选择的Java版本为8,使用的数据库是Postgresql。首先我们使用maven下载对应的依赖:

<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->  
<dependency>  
    <groupId>org.postgresql</groupId>  
    <artifactId>postgresql</artifactId>  
    <version>42.2.5</version>  
</dependency>  
<dependency>  
    <groupId>com.alibaba</groupId>  
    <artifactId>fastjson</artifactId>  
    <version>1.2.49</version>  
</dependency>  
...

接着我们编写代码,引入如下的几个包:

import java.util.*;  
import java.io.*;  
import java.sql.*;  
import com.alibaba.fastjson.*;

然后定义1个公共类:

public class hello {  
    public static void main(String[] args) {  
        Properties properties = new Properties();  
        try {  
            Class.forName("org.postgresql.Driver");  
            InputStream stream = new FileInputStream("db.properties");  
            properties.load(stream);  
            String url = properties.getProperty("url");  
            String user = properties.getProperty("user");  
            String pwd = properties.getProperty("pwd");  
            stream.close();  
            Connection conn = DriverManager.getConnection(url, user, pwd);  
            Statement smt = conn.createStatement();  
            smt.setFetchSize(50);  
            smt.setMaxRows(10);  
            ResultSet rs = smt.executeQuery("select * from fund");  
            ResultSetMetaData metadata = rs.getMetaData();  
            JSONArray arr = new JSONArray();  
            while(rs.next()){  
                HashMap<String, Object> map = new HashMap<>();  
                int count = metadata.getColumnCount();  
                for(int i=0;i<count;i++){  
                    String label = metadata.getColumnLabel(i+1);  
                    Object val = rs.getObject(label);  
                    map.put(label, val);  
                }  
                arr.add(map);  
            }  
            rs.close();  
            String response = JSON.toJSONString(arr);  
            System.out.println(response);  
        } catch (Exception e){  
            e.printStackTrace();  
        }  

    }  
}

在这个类,我们可以将程序划分为如下3个部分:

  • 读取配置文件
  • 进行数据查询
  • 进行数据序列化

对于配置文件的读取,我们选择使用FileInputStream来读取1个文件,这个文件中的内容类似如下:

url=jdbc:postgresql://localhost:5432/dog  
user=dog  
pwd=123456

这里我们通过 Class.forName 导入对应包中的类,然后通过Properties实例的load方法将之前文件输入流传递来进来,从而得到1个键值对的对象。之后我们就可以通过Properties实例的 getProperty 进行键值的获取。

对于数据的查询,我们使用了 setMaxRows 方法设置其最大查询的行数,类似于如下的操作:

select * from fund limit 10

而对于数据的序列化,我们通过ResultSet实例的 getMetaData 方法得到1个ResultSetMetaData实例,之后我们调用其 getColumnCount 方法得到列的数量。之后,我们进行迭代,通过其 getColumnLabel 得到列的标签名称,而对应的值通过ResultSet实例的getObject方法来得到。

在这里,我们使用阿里巴巴公司fastjson来进行JSON的序列化处理,我们将对应的值添加到JSONArray中,最后调用 JSON.toJSONString 将对应的对象序列化为JSON字符串。其结果为:

[{"fund_type":8,"fund_id":"000001","fund_name":"华夏成长","fund_code":"HXCZ"},{"fund_type":8,"fund_id":"000002","fund_name":"华夏成长(后端)","fund_code":"HXCZ"},{"fund_type":6,"fund_id":"000003","fund_name":"中海可转债A","fund_code":"ZHKZZA"},{"fund_type":6,"fund_id":"000004","fund_name":"中海可转债C","fund_code":"ZHKZZC"},{"fund_type":7,"fund_id":"000005","fund_name":"嘉实增强信用定期债券","fund_code":"JSZQXYDQZQ"},{"fund_type":6,"fund_id":"000007","fund_name":"鹏华国企债债券","fund_code":"PHGQZZQ"},{"fund_type":3,"fund_id":"000008","fund_name":"嘉实中证500ETF联接","fund_code":"JSZZ500ETFLJ"},{"fund_type":10,"fund_id":"000009","fund_name":"易方达天天理财货币A","fund_code":"YFDTTLCHBA"},{"fund_type":10,"fund_id":"000010","fund_name":"易方达天天理财货币B","fund_code":"YFDTTLCHBB"},{"fund_type":8,"fund_id":"000011","fund_name":"华夏大盘精选","fund_code":"HXDPJX"}]

当然,在这个过程中我们甚至还可以进行一些键值的获取及剔除,再返回给前端。


以上所述就是小编给大家介绍的《使用JDBC处理Postgresql数据库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

并发的艺术

并发的艺术

Clay Breshears / 聂雪军 / 机械工业出版社 / 2010年9月 / 49.00元

如果你希望通过并发编程来充分发挥多核处理器的强大功能,那么本书将为你提供所需的理论知识和实际经验。《并发的艺术》是为数不多的几本介绍如何在多核处理器的共享内存模型中实现算法的书籍之一,它并非仅仅介绍一些理论模型或者分布式内存架构。本书详细分析了各种示例程序,这些内容非常有助于你将串行代码转换为并行代码,此外还介绍了如何避免一些常见的错误。 本书的作者是Intel公司的一位资深工程师,他从事并......一起来看看 《并发的艺术》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具