单个Java文件连接数据库demo
2024-10-20 09:26:51
在单个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();
}
}
}
最新文章
- XML数据的解析
- Angular指令渗透式理解
- Struts2返回json
- CentOS 6.5下Git服务器搭建
- iOS NSString常用用法大全
- iOS 10 的一些变化
- 后台找到repeater里面的div并添加客户端点击事件
- MVVM1
- 如何让 Git 忽略掉文件中的特定行内容?
- [POJ 3243]Clever Y
- 面板JPanel,滚动面板JScrollPane,文本域JTextArea
- 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
- lldb调试mysql 插件命令
- bzoj 泛做
- Sqoop与HDFS、Hive、Hbase等系统的数据同步操作
- maven自动部署Tomcat错误排除
- 求n得阶乘得最后一位非零数字
- GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)
- 【Nodejs】使用put方式向后端查询数据并在页面显示
- vue中点击添加class,双击去掉class
热门文章
- 前端向后端发送请求(FormData),你们不要吐槽我,有的时候我也不想写注释
- StringBuilder的原理-append方法
- 2211-11Flask入门教程
- 解决 Vue3 中路由切换到其他页面再切换回来时 Echarts 图表不显示的问题
- C++_bind用法
- Mybatis的缓存与动态SQL
- React Hooks的理解,React Hooks有哪些,解决了什么问题
- nodejs实现保存文件到本地或者服务器
- 【JS入门小游戏】01-骰子游戏
- [代码审计基础 03]-RCE-fork,system,execve