任务:通过在DOS黑框框命令行窗口输入sql语句对opengauss数据库进行操作,opengauss数据库里真实内容也要修改
首先连接opengauss数据库 其中参数需要换成自己的 其中一些语句都是定义好的API 只需要换具体内容就行了
//opengauss的初始化 连接和注册 static final String JDBC_DRIVER = "org.postgresql.Driver"; static final String DB_URL = "jdbc:postgresql://ip address/DB"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "name"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS);
区别于在程序里就定义好sql语句 这里的要求实在DOS命令行里输入 所以我们要加入一个输入流
//导包
import java.util.Scanner;
//导包 import java.util.Scanner; //定义一个输入流s2 然后令s2等于sql语句即可 Scanner scanner2 = new Scanner(System.in); String s2 = scanner2.nextLine(); String sql; sql =s2;
最后 完整代码如下
import java.sql.*; import java.util.Scanner; public class openGaussDemo { static final String JDBC_DRIVER = "org.postgresql.Driver"; static final String DB_URL = "jdbc:postgresql:///"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = ""; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询输入流 输入sql语句 System.out.println(" 实例化Statement对象..."); stmt = conn.createStatement(); Scanner scanner2 = new Scanner(System.in); String s2 = scanner2.nextLine(); String sql; sql =s2; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ // 通过字段检索 int pro_id = rs.getInt("pro_id"); String pro_income = rs.getString("pro_income"); //String url = rs.getString("url"); // 输出数据 System.out.print("pro_id: " + pro_id); System.out.print(", income: " + pro_income); //System.out.print(", 站点 URL: " + url); System.out.print("\n"); } // 完成后关闭 rs.close(); stmt.close(); conn.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 se){ se.printStackTrace(); } } System.out.println("Goodbye!"); } }