irisnet 发表于 2022-9-2 21:16:10

读取外部数据库

本帖最后由 irisnet 于 2022-9-2 21:42 编辑

请教一下, 现在和另外一个系统,采用中间表的方案。

1、中间表,建立在另外系统的MySQL数据库中;


请问这种方式, 我们应该如何读取 和 写入 中间表, 感谢!

irisnet 发表于 2022-9-2 21:18:16

我看到 消息 是支持 通过 配置外部数据库方式写入 到 外部数据库的。

irisnet 发表于 2022-9-2 22:34:55

本帖最后由 irisnet 于 2022-9-2 22:41 编辑

这种方式能连接外部数据库么?

function connectMysql(){ //连接MySQL
    try {      
      print("connect mysql==============================");      

      //加载驱动类
      Java.type("com.mysql.cj.jdbc.Driver");

      Connection connection = Java.type("com.mysql.cj.jdbc.DriverManager").getConnection("jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai", "root", "root");//通过DriverManager接口中的getConnection方法获取数据库连接

                PreparedStatement preparedStatement = connection.prepareStatement("string");//获取数据库操作对象,不同的是PreparedStatement是通过预编译的方式写入sql语句,可以有效防止sql注入

                var string = "SELECT * FROM student";//string语句中用来书写在数据库中的sql语句

                ResultSet resultSet = preparedStatement.executeQuery();//查询语句时使用,可以通过resultSet对象获取结果集
                resultSet.getInt("");//括号中填写属性名
                resultSet.getString("");
                int count = preparedStatement.executeUpdate();//增,删和修改语句时使用,可以通过resultSet对象返回修改的记录数


                resultSet.close();//只有查询语句时才需要关闭resultSet
                preparedStatement.close();//关闭开启的通道
                connection.close();//将开启的通道关闭,释放资源

         } catch (e) {
      e.printStackTrace();
      e.printStackTrace();
      result.state = "NMT0002";
      result.message = "失败";
      result.data = e.name + ": " + e.message
    }
}

irisnet 发表于 2022-9-2 22:45:15

或者这种:

var someDatabaseFun = function() {
    var Properties = Java.type("java.util.Properties");
    var Driver = Java.type("com.mysql.cj.jdbc.Driver");

    var driver = new Driver();
    var properties = new Properties();

    properties.setProperty("user", "sa");
    properties.setProperty("password", "");

    try {
      var conn = driver.connect(
            "jdbc:h2:~/test", properties);

      // Database code here
    }
    finally {
      try {
            if (conn) conn.close();
      } catch (e) {}
    }
}

someDatabaseFun();

irisnet 发表于 2022-9-2 22:51:06

// Declaring the runQuery function
function runQuery(conA, query) {
   try {
       var stmt = conA.prepareStatement(query);
       var resultSet = stmt.executeQuery();
       print("      --------------------------- ");
       while (resultSet.next()) {
          print("\t" + resultSet.getString("custId") + " - "+ resultSet.getString("custName"))
       }
       print("      --------------------------- ");
      
    } finally {
      if (resultSet)
         try {
            resultSet.close();
            print("\nResultSet Closed.");
         }
         catch(e) {}
      if (stmt)
         try {
            stmt.close();
            print("Statement Closed.");            
         } catch (e) { print( e );}
      if (conA)      
         try {
            conA.close();
            print( "Connection Closed." );
         } catch (e) { print( e );}         
      }
}

论坛管理员 发表于 2022-9-5 09:27:21

o2oa提供了很多后端api获取数据的,您可以在服务管理中创建接口,获取到数据后与外部系统交互
请参考:https://www.o2oa.net/cms/apicourse/325.html
页: [1]
查看完整版本: 读取外部数据库