我正在尝试获取在SQL Server中连接到的数据库的名称。我试着做:
Query query = session.createQuery("SELECT db_name()");
List<String> dbNames = query.list();
但是,出现以下错误:
[ERROR PARSER:35] *** ERROR: <AST>:0:0: unexpected end of subtree
Exception in thread "main" java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.MethodNode
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'db_name' {originalText=db_name}
\-[EXPR_LIST] SqlNode: 'exprList'
如何获得我连接的数据库的名称?
您可以:
使用创建一个本地SQL查询session.createSQLQuery(...)
。您可以使用提取一行结果uniqueResult()
。
Connection
从中获取JDBC Session
,然后从数据库元数据中提取连接字符串。对于SQL Server,我相信您需要解析connection.getMetaData().getURL()
才能提取实际的数据库名称。
请注意,它Session.connection()
已被弃用,您应该使用Session.doWork()
。
我刚来spring,有以下问题。 我正在处理一个应用程序,运行在JBoss服务器上,它必须使用JDBCTemplate在DB上执行查询。 在JBoss中,我设置了标识数据库连接的JNDI名称。 我尝试实现了这个JdbcTemplate的简单示例,对我来说,JdbcTemplate是如何工作的非常清楚。在本例中,为了创建到数据库的连接,它定义了一个dataSource bean,然后将其注入到使用J
问题内容: 有没有一种方法可以通过Hibernate 3.2 API获得一些基础数据库版本的信息?我在这里和javadoc中都找不到相关的位。 问题答案: 获取数据库引擎的版本是特定于实现的。这意味着没有获取版本的共享方法,因此Hibernate不能真正提供API,因为它没有绑定到任何特定的RDBMS。例如,以下是通过一些著名的RDBMS使用SELECT语句获取版本的几种不同方法: Oracle
本文向大家介绍JDBC如何获取数据库连接,包括了JDBC如何获取数据库连接的使用技巧和注意事项,需要的朋友参考一下 JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行交互。 JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序。 JDBC编程的第一步,就是要获取数据库连接。所谓的 “
用Python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。上一讲提到的那种操作方式,是看官直接通过交互模式来操作数据库。 安装python-MySQLdb 要想通过python来操作数据库,还需要在已经安装了mysql的基础上安装一个称之为mysqldb的库,它是一个接口程序,python通过它对mysql数据
问题内容: 想要连接到通过LAN连接的另一台PC上的数据库。我可以使用带有C:\ Users …这样的字符串的sql server db,但是我无法使用(\\ Server \ c \ user …)这样的字符串进行连接,但我尝试将db文件移动到“我的文档”中我得到这个错误。 我收到以下错误消息:尝试为文件(\\ SERVER \ Users \ Jeswills \ Documents \ TB
以下实体: JPQL查询: Hibernate生成正确的sql查询,但当它尝试收集数据时,它会进行额外的调用,例如: 我检查了查询返回null。如何避免此类数据库查询? 我的调查:据我所知,Hibernate创建key by(AA1.a_number和AA1.category)并尝试从上下文中检索实体。对于特定的行“left join”,查询返回空值,Hibernate按键询问上下文,而上下文返回