查看: 11881|回复: 5

读取外部数据库

升级   6.41%

42

主题

98

回帖

641

积分

注册会员

Rank: 2

积分
641
发表于 2022-9-2 21:16:10 | 显示全部楼层 |阅读模式
本帖最后由 irisnet 于 2022-9-2 21:42 编辑

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

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


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

使用道具 举报

升级   6.41%

42

主题

98

回帖

641

积分

注册会员

Rank: 2

积分
641
发表于 2022-9-2 21:18:16 | 显示全部楼层
我看到 消息 是支持 通过 配置外部数据库方式写入 到 外部数据库的。
回复

使用道具 举报

升级   6.41%

42

主题

98

回帖

641

积分

注册会员

Rank: 2

积分
641
发表于 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
    }
}
回复

使用道具 举报

升级   6.41%

42

主题

98

回帖

641

积分

注册会员

Rank: 2

积分
641
发表于 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();
回复

使用道具 举报

升级   6.41%

42

主题

98

回帖

641

积分

注册会员

Rank: 2

积分
641
发表于 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 );  }         
      }  
}
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-9-5 09:27:21 | 显示全部楼层
o2oa提供了很多后端api获取数据的,您可以在服务管理中创建接口,获取到数据后与外部系统交互
请参考:https://www.o2oa.net/cms/apicourse/325.html
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread