1

我正在尝试在 windows-7 上制作一个简单的 Java 应用程序,它可以从 mysql 进行数据库备份。我需要 mysql 基本路径。我尝试使用 JPQL

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("BackupRestoreMysqlDatabasePU");
    EntityManager em = emf.createEntityManager();
    String path = em.createQuery("SELECT @@basedir").getSingleResult().toString();
    System.out.println("My Database Path::" + path);

当我运行它时,显示以下错误:

 Exception in thread "main" java.lang.IllegalArgumentException: An exception occurred     while creating a query in EntityManager: 
 Exception Description: Syntax error parsing [SELECT @@basedir]. 
 [16, 16] A select statement must have a FROM clause.
 [7, 16] The identification variable '@@basedir' is not following the rules for a Java identifier.
       at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1585)
       atJava Result: 1

请帮我。

4

1 回答 1

0
SELECT @@basedir

这不仅是 SQL,而且是 MySQL 特定的 SQL。显然,它不是有效的 JPQL。JPQL 始终与实体一起工作,并且是一种与数据库无关的语言。

使用本机查询。

于 2013-08-17T12:23:22.713 回答