package org.ruoyi.common.chat.plugin; import org.ruoyi.common.chat.openai.plugin.PluginAbstract; import java.sql.*; /** * @author ageer */ public class SqlPlugin extends PluginAbstract { public SqlPlugin(Class r) { super(r); } @Override public SqlResp func(SqlReq args) { SqlResp resp = new SqlResp(); resp.setUserBalance(getBalance(args.getUsername())); return resp; } @Override public String content(SqlResp resp) { return "用户余额:"+resp.getUserBalance(); } public String getBalance(String userName) { // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; String DB_URL = "jdbc:mysql://43.139.70.230:3306/ry-vue"; // 数据库的用户名与密码,需要根据自己的设置 String USER = "ry-vue"; String PASS = "BXZiGsY35K523Xfx"; Connection conn = null; Statement stmt = null; String balance = "0.1"; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询 System.out.println(" 实例化Statement对象..."); stmt = conn.createStatement(); String sql; sql = "SELECT user_balance FROM sys_user where user_name ='" + userName + "'"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ // 通过字段检索 balance = rs.getString("user_balance"); // 输出数据 System.out.print("余额: " + balance); 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(); } } return balance; } }