单个Java文件连接数据库demo

 
在单个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,下面这一段在官网中有说明,我这篇博客就是把官网的说明摘出来,翻译成中文而已。

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(); } } }

 

posted @ 2023-02-23 16:41  dream-子皿  阅读(50)  评论(0编辑  收藏  举报