在单个java文件中,尝试连接数据库,跟python的模块包安装方式很接近,已经测试成功,把博客写一下,记录下来。
 
首先把jdb的驱动包下载下来,就是一个jar包,下面是官网下载地址
官网下载地址:
 
配置驱动包环境变量,我这里用的是Mac,如果是windows,直接在path环境变量中配置好它就行了。
* 下载postgresql包postgresql-42.2.9.jar,把它放到JDK安装路径lib下面,然后把lib下面的这个postgresql包放到全局变量中,
* 也就是官网所说的CLASSPATH下面
 
在用户~目录下,编辑环境变量文件
vim ~/.bash_profile

添加你自己的JDK安装路径,还有postgresql的jar包路径

# JAVA_HOME JDK path
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

再执行一下这个环境变量文件

source ~/.bash_profile
下面这个地址就是官网事例的地址。把classpath路径配置好,就能在Java文件中就能直接引用它了。
import java.sql.*;
import java.util.*;

下面是官网的代码事例

我自己找资料的时候,下面这一段是关键点,网上很多博客都是在告诉你怎么在springboot中可以用它,在maven中的ide里面怎么配置环境,没有人告诉你怎么在单页面里面测试demo,下面这一段在官网中有说明,我这篇博客就是把官网的说明摘出来,翻译成中文而已。

Setting up the Class Path

To use the driver, the JAR archive named postgresql-MM.nn.pp.jar needs to be included in the class path, either by putting it in the CLASSPATH environment variable, or by using flags on the java command line.

下面这个demo可以直接使用,能运行,改成你自己的库和sql语句就行了

import java.util.Date;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.util.Properties;
import java.sql.DriverManager;
// import java.sql.PreparedStatement;
// 要是嫌上面引入的这么具体比较麻烦,就可以直接引入*替换上面的所有包。import java.sql.*;import java.util.*;
class MyMethod{
static void myMethod() {
System.out.println("try to connect database!");
} public static void main(String[] args) {
// myMethod();
testConn();
} static void testConn(){
//单个文件测试java连接数据库,测试成功
String url = "jdbc:postgresql://localhost/test";
Properties props = new Properties();
props.setProperty("user", "dm-mac");
props.setProperty("password", "");
// props.setProperty("ssl", "false");//默认就是ssl=false
String pg_driver="org.postgresql.Driver";// 这里是固定写法,官网要求的,驱动就是这么写
try{
Class.forName(pg_driver);
}catch(Exception ex){
//catch异常捕获是语法要求,否则编译不通过。下面的异常捕获也是这样
ex.printStackTrace();
}
// String url = "jdbc:postgresql://localhost/test?user=dm-mac&password=&ssl=false";
try{
// Connection conn = DriverManager.getConnection(url);//获取链接的两种方式
Connection conn = DriverManager.getConnection(url, props);
Statement stm = conn.createStatement();
String sql_sentence="select host_id,host_type,host_name,"+
"dep_id,dep_type,dep_name,idx,date from tb_relation limit 3";
ResultSet res = stm.executeQuery(sql_sentence);
System.out.println("res: "+res.getType()+" :"+res);
System.out.println();
while(res.next()){
//下面就是遍历查出来的数据,拼接输出数据结构
String host_id=res.getString("host_id");
String host_type=res.getString("host_type");
String host_name=res.getString("host_name");
String dep_id=res.getString("dep_id");
String dep_type=res.getString("dep_type");
String dep_name=res.getString("dep_name");
Integer id=res.getInt("idx");
Date date=res.getDate("date");
System.out.println(
"调用方ID:"+host_id+" 调用方类型:"+host_type+" 调用方名称:"+host_name+
" 被调用方ID:"+dep_id+" 被调用方类型:"+dep_type+" 被调用方名称:"+dep_name+
" id:"+id+" 当前时间:"+date);
System.out.println();
}
//释放数据库连接
res.close();
conn.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}

最新文章

  1. XML数据的解析
  2. Angular指令渗透式理解
  3. Struts2返回json
  4. CentOS 6.5下Git服务器搭建
  5. iOS NSString常用用法大全
  6. iOS 10 的一些变化
  7. 后台找到repeater里面的div并添加客户端点击事件
  8. MVVM1
  9. 如何让 Git 忽略掉文件中的特定行内容?
  10. [POJ 3243]Clever Y
  11. 面板JPanel,滚动面板JScrollPane,文本域JTextArea
  12. centos 7安装mysql 执行./scripts/mysql_install_db --user=mysql 报错 FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
  13. lldb调试mysql 插件命令
  14. bzoj 泛做
  15. Sqoop与HDFS、Hive、Hbase等系统的数据同步操作
  16. maven自动部署Tomcat错误排除
  17. 求n得阶乘得最后一位非零数字
  18. GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)
  19. 【Nodejs】使用put方式向后端查询数据并在页面显示
  20. vue中点击添加class,双击去掉class

热门文章

  1. 前端向后端发送请求(FormData),你们不要吐槽我,有的时候我也不想写注释
  2. StringBuilder的原理-append方法
  3. 2211-11Flask入门教程
  4. 解决 Vue3 中路由切换到其他页面再切换回来时 Echarts 图表不显示的问题
  5. C++_bind用法
  6. Mybatis的缓存与动态SQL
  7. React Hooks的理解,React Hooks有哪些,解决了什么问题
  8. nodejs实现保存文件到本地或者服务器
  9. 【JS入门小游戏】01-骰子游戏
  10. [代码审计基础 03]-RCE-fork,system,execve