Asc*_*ian 2 java sql-server hibernate
我试图获取我在SQL Server中连接的数据库的名称.我试过做:
Query query = session.createQuery("SELECT db_name()");
List<String> dbNames = query.list();
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
[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'
Run Code Online (Sandbox Code Playgroud)
如何获取我连接的数据库的名称?
你可以:
使用创建本机SQL查询session.createSQLQuery(...).您可以使用提取单行结果uniqueResult().
Connection从中获取JDBC Session,并从数据库元数据中提取连接字符串.对于SQL Server,我相信您需要解析connection.getMetaData().getURL()才能提取实际的数据库名称.
请注意,这Session.connection()被认为已弃用,您应该使用Session.doWork().
| 归档时间: |
|
| 查看次数: |
12543 次 |
| 最近记录: |