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

PG库下载地址 首先到官网上根据自己的Java版本下载jdbc驱动jdbc下载地址

下载后把驱动投入libs 同时拷贝maven串

把maven串贴入工程

然后添加引用jar包

然后写代码操作数据库

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) {

}

}

}

测试

jdbc操作数据库完成,第三个技术点积累完毕

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。