RAYDATA链接PGSQL做图表

1.拖一个脚本进去

2.拖一个柱状图进去

3.双击脚本写代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Ventuz.Kernel;
using Npgsql;
using System.Threading;
using System.Threading.Tasks;


public class Script : ScriptBase, System.IDisposable
{
    
    // 这个变量使用在 Validate() 方法中,通过改变 true 还是 false 可以决定 Generate() 方法在下一次执行期间是否进入到 if(changed) 语句,进而通知与此脚本绑定的所有节点。
    private bool changed;

    string connStr = "66666666666666666666666666666";
    // 在打开场景,复制并粘贴此组件时,调用此方法。
    public Script()
    {
        // 注意:构造方法不能访问该脚本节点的输入或输出属性,因为此时它们还没有被分配。
    }
    
    // 在关闭场景,删除或释放组件时,调用此方法
    public virtual void Dispose()
    {
    }
    
    // 如果输入属性的值已更改,则调用此方法
    public override void Validate()
    {
        // 切记:如果更改了输出属性,需要设置成员 changed 为 true,请参阅 Generate()方法。
		
		
    }
	Task p;
    // 每次渲染帧之前都会调用此方法。
    // 返回值:如果为true,RayData 将通知与此脚本绑定的所有节点,代表脚本中一个输出值发生了变化,因此其他节点需要重新验证。因为性能原因请谨慎使用此方法,仅在输出值真的发生改变时返回值为true。
    public override bool Generate()
    {
		if (p==null)  
		{  
		   p=new Task(() => {	GetAllData();	});
			p.Start();
			VLog.Info("Task");	
		}  
	//VLog.Info("299999");
        if (changed)
        {
            changed = false;
            return true;
        }

        return false;
    }
	
	private void GetAllData()
	{
		while (true)
		{
			try
			{
				VLog.Info("199999");
				GetSingleData();
	
				System.Threading.Thread.Sleep(4000); // 等待5秒
			}
			catch (Exception ex)
			{
				VLog.Info(ex.Message);
				Console.WriteLine(ex.Message);
			}
       
			System.Threading.Thread.Sleep(5000); // 等待5秒
		}
	}

	private void GetSingleData()
	{
		
		List<int> list1 = new List<int>();
		List<string> list2 = new List<string>();
		// 创建连接对象  
		using (var connection = new NpgsqlConnection(connStr))
		{
			// 打开连接  
			connection.Open();

			// 创建查询命令  
			using (var command = new NpgsqlCommand("select  callsign,height from ads_b_data where callsign <>'' order by create_time desc limit 10", connection))
			{
				// 执行查询并获取结果  
				using (var reader = command.ExecuteReader())
				{
					// 读取数据,假设表中有两列:Id 和 Name  
					while (reader.Read())
					{
						string hangban = reader["callsign"].ToString(); // 读取第一列(Id)  
						int height =Convert.ToInt32(reader["height"]); // 读取第二列(Name)  
						list1.Add(height);
						list2.Add(hangban);//添加航班名称
                        title="航班信息";
					
						VLog.Info("xxxx", $"hangban: {hangban}, height: {height}", VPopup.Never);
						//VLog.Info(System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());
						//Console.WriteLine($"Id: {id}, Name: {name}");
					}
				}
			}
		}
		//赋值给外部变量
	    yheight=String.Join(",", list1); //高度
	    xhangban=String.Join(",", list2); //名称
		ct = list1.Count;
		changed = true;
		
	}
}

然后编译保存

将三个值都绑定到脚本上。注意数组值也是字符串,逗号隔开。

最后完事儿

可以通过以下步骤将Keycloak与Pgsql数据库进行链接: 1. 首先,确保已经安装并运行了Pgsql数据库。可以使用以下命令在Docker中运行Pgsql数据库: ```shell docker run --name myPgsql_11_3 --restart=always -p 5433:5432 -e POSTGRES_PASSWORD=root -d postgres:11.3 ``` 2. 在Keycloak的安装目录下,找到`standalone/configuration/standalone.xml`文件,并编辑该文件。 3. 在`<datasources>`标签内添加以下内容,以配置Pgsql数据库连接: ```xml <datasource jndi-name="java:jboss/datasources/KeycloakPgsqlDS" pool-name="KeycloakPgsqlDS" enabled="true" use-java-context="true"> <connection-url>jdbc:postgresql://localhost:5433/keycloak</connection-url> <driver>postgresql</driver> <pool> <max-pool-size>20</max-pool-size> </pool> <security> <user-name>postgres</user-name> <password>root</password> </security> </datasource> ``` 请注意,根据您的Pgsql数据库配置,可能需要修改`connection-url`、`user-name`和`password`的值。 4. 在`<drivers>`标签内添加以下内容,以配置Pgsql数据库驱动程序: ```xml <driver name="postgresql" module="org.postgresql"> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> </driver> ``` 5. 在Keycloak的安装目录下,创建一个名为`modules/org/postgresql/main`的目录,并在该目录下创建一个名为`module.xml`的文件。文件内容如下: ```xml <?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.3" name="org.postgresql"> <resources> <resource-root path="postgresql-<version>.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module> ``` 请将`<version>`替换为您使用的Pgsql驱动程序的版本号。 6. 将Pgsql驱动程序的JAR文件复制到`modules/org/postgresql/main`目录下,并将其命名为`postgresql-<version>.jar`。 7. 重新启动Keycloak服务器。 现在,Keycloak将能够与Pgsql数据库进行链接。您可以使用Keycloak的单点登录功能来实现与Pgsql的集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcagy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值