Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过JDBC连接时在会话信息中显示应用程序名称_Java_Postgresql_Jdbc_Pgadmin - Fatal编程技术网

Java 通过JDBC连接时在会话信息中显示应用程序名称

Java 通过JDBC连接时在会话信息中显示应用程序名称,java,postgresql,jdbc,pgadmin,Java,Postgresql,Jdbc,Pgadmin,我使用stardard JDBC驱动程序创建到postgres 9数据库的连接 ... Connection myCon = DriverManager.getConnection("jdbc:postgresql://localhost/test?&user=test&password=test"); ... 当我用PgAdmin检查服务器状态并显示所有数据库会话时,我可以看到没有为我的会话设置“应用程序名称”。有没有办法在JDBC连接中设置应用程序名称?可以将应用程序名称

我使用stardard JDBC驱动程序创建到postgres 9数据库的连接

...
Connection myCon = DriverManager.getConnection("jdbc:postgresql://localhost/test?&user=test&password=test"); 
...

当我用PgAdmin检查服务器状态并显示所有数据库会话时,我可以看到没有为我的会话设置“应用程序名称”。有没有办法在JDBC连接中设置应用程序名称?

可以将应用程序名称设置为连接参数,因为Postgres:

添加对在两个连接启动时设置应用程序名称的支持 然后通过Connection.setClientInfo。(朱尔卡)

例如:
jdbc:postgresql://localhost:5432/DbName?ApplicationName=MyApp

或者
Connection.setClientInfo(“应用程序名”、“我的应用程序”)

对于以前的版本,可以通过设置
application\u name
runtime参数来执行此操作:

s.execute("SET application_name TO 'MyApp'");

是时候回答我自己的问题了,它可以用以下代码设置:stmt=Con.prepareStatement(“SET application_name='myApp'”);stmt.execute();以防万一,这将对某人有所帮助:这可以专门针对具有附加属性的Oracle数据库执行:((BasicDataSource)datasource).addConnectionProperty(“v$session.program”,“Explicit connection label”)。这将显示在v$session Oracle视图中。当然,这种方法只适用于Oracle,您的JDBC解决方案(我不知道是谁)应该更加健壮。