Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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 HIBERNATE:无法使用HIBERNATE从MySQL提取数据_Java_Mysql_Hibernate - Fatal编程技术网

Java HIBERNATE:无法使用HIBERNATE从MySQL提取数据

Java HIBERNATE:无法使用HIBERNATE从MySQL提取数据,java,mysql,hibernate,Java,Mysql,Hibernate,对不起打扰你了。我是hibernate的新手,我有一个愚蠢的问题。我不能独自处理这件事。每次我试图从DB中选择数据时,都会出现语法错误,因此我决定使用虚拟表(但问题与以前相同): 休眠配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

对不起打扰你了。我是hibernate的新手,我有一个愚蠢的问题。我不能独自处理这件事。每次我试图从DB中选择数据时,都会出现语法错误,因此我决定使用虚拟表(但问题与以前相同):

休眠配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">qayxsw</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/training</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.default_schema">training</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.default_schema">training</property>
        <mapping resource="Test.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
Main.java:

import java.util.LinkedList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import s.Test;

public class Main {

    public Session session;

    public static void main(String[] args) {

        Main test = new Main();

        test.session = HibernateUtil.getSessionFactory().openSession();
        test.session.beginTransaction();

        //Query query = test.session.createQuery("from user where nick = Turdus");
        Query query = test.session.createQuery("from Test");

        final List<Test> pass = new LinkedList<Test>();
        query.list();
        for(final Object o : query.list()) {
            pass.add((Test)o);
        }

        for(Test password : pass){

            System.out.println(password.getName());
        }

        test.session.close();
    }
}
import java.util.LinkedList;
导入java.util.List;
导入org.hibernate.Query;
导入org.hibernate.Session;
进口美国测试;
公共班机{
公开会议;
公共静态void main(字符串[]args){
主测试=新主测试();
test.session=HibernateUtil.getSessionFactory().openSession();
test.session.beginTransaction();
//queryquery=test.session.createQuery(“来自用户,其中nick=Turdus”);
queryquery=test.session.createQuery(“来自测试”);
最终列表过程=新建LinkedList();
query.list();
for(最终对象o:query.list()){
通过。添加((测试)o);
}
用于(测试密码:通过){
System.out.println(password.getName());
}
test.session.close();
}
}
以下是错误消息:

Mar 16, 2015 7:14:15 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
Mar 16, 2015 7:14:15 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.8.Final}
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate.cfg.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: Test.hbm.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/training]
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Mar 16, 2015 7:14:15 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Mar 16, 2015 7:14:15 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
Mar 16, 2015 7:14:15 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Mar 16, 2015 7:14:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1064, SQLState: 42000
Mar 16, 2015 7:14:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.test test0_' at line 1
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2066)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839)
    at org.hibernate.loader.Loader.doQuery(Loader.java:910)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
    at org.hibernate.loader.Loader.doList(Loader.java:2554)
    at org.hibernate.loader.Loader.doList(Loader.java:2540)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
    at org.hibernate.loader.Loader.list(Loader.java:2365)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at Test2.main(Test2.java:25)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.test test0_' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
    at com.mysql.jdbc.Util.getInstance(Util.java:360)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)
    ... 15 more
2015年3月16日下午7:14:15 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{4.0.5.Final}
2015年3月16日下午7:14:15 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.3.8.Final}
2015年3月16日下午7:14:15 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2015年3月16日下午7:14:15 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2015年3月16日下午7:14:15 org.hibernate.cfg.Configuration
信息:HH000043:从资源配置:hibernate.cfg.xml
2015年3月16日下午7:14:15 org.hibernate.cfg.Configuration getConfigurationInputStream
信息:hh000040:配置资源:hibernate.cfg.xml
2015年3月16日下午7:14:15 org.hibernate.cfg.Configuration addResource
信息:HH000221:正在从以下资源读取映射:Test.hbm.xml
2015年3月16日下午7:14:15 org.hibernate.cfg.Configuration doConfigure
信息:HH000041:配置的会话工厂:null
2015年3月16日下午7:14:15 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HH000402:使用Hibernate内置连接池(不用于生产!)
2015年3月16日下午7:14:15 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000401:在URL[jdbc:mysql://localhost:3306/training]
2015年3月16日下午7:14:15 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000046:连接属性:{user=root,password=**}
2015年3月16日下午7:14:15 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000006:自动提交模式:错误
2015年3月16日下午7:14:15 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000115:休眠连接池大小:20(最小值=1)
2015年3月16日下午7:14:15 org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dialogue.mysqldialogue
2015年3月16日下午7:14:15 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
信息:HH000399:使用默认事务策略(直接JDBC事务)
2015年3月16日下午7:14:15 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory
信息:HH000397:使用ASTQueryTranslatorFactory
2015年3月16日下午7:14:16 org.hibernate.engine.jdbc.spi.SqlExceptionHelper日志异常
警告:SQL错误:1064,SQLState:42000
2015年3月16日下午7:14:16 org.hibernate.engine.jdbc.spi.SqlExceptionHelper日志异常
错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“.test test0”附近使用的正确语法
线程“main”org.hibernate.Exception.sqlgrammareexception中出现异常:无法提取结果集
位于org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)
位于org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
位于org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
位于org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91)
位于org.hibernate.loader.loader.getResultSet(loader.java:2066)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1863)
位于org.hibernate.loader.loader.executeQueryStatement(loader.java:1839)
位于org.hibernate.loader.loader.doQuery(loader.java:910)
在org.hibernate.loader.loader.doQueryAndInitializeNonLazyCollections(loader.java:355)上
位于org.hibernate.loader.loader.doList(loader.java:2554)
位于org.hibernate.loader.loader.doList(loader.java:2540)
位于org.hibernate.loader.loader.listIgnoreQueryCache(loader.java:2370)
位于org.hibernate.loader.loader.list(loader.java:2365)
位于org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
位于org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
位于org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
位于org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
位于Test2.main(Test2.java:25)
原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“.test test0”附近使用的正确语法
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.nativeConstructor Accessorimpl.newIn
package s;


import java.util.Date;

/*import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;*/

//@Entity
//@Table(name = "user")
public class Test{

    private Integer id;

    private String name;

    public Test(){

    }

    public Test(Integer id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
import java.util.LinkedList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import s.Test;

public class Main {

    public Session session;

    public static void main(String[] args) {

        Main test = new Main();

        test.session = HibernateUtil.getSessionFactory().openSession();
        test.session.beginTransaction();

        //Query query = test.session.createQuery("from user where nick = Turdus");
        Query query = test.session.createQuery("from Test");

        final List<Test> pass = new LinkedList<Test>();
        query.list();
        for(final Object o : query.list()) {
            pass.add((Test)o);
        }

        for(Test password : pass){

            System.out.println(password.getName());
        }

        test.session.close();
    }
}
Mar 16, 2015 7:14:15 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
Mar 16, 2015 7:14:15 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.8.Final}
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate.cfg.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: Test.hbm.xml
Mar 16, 2015 7:14:15 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/training]
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Mar 16, 2015 7:14:15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Mar 16, 2015 7:14:15 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Mar 16, 2015 7:14:15 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
Mar 16, 2015 7:14:15 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Mar 16, 2015 7:14:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1064, SQLState: 42000
Mar 16, 2015 7:14:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.test test0_' at line 1
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2066)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839)
    at org.hibernate.loader.Loader.doQuery(Loader.java:910)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
    at org.hibernate.loader.Loader.doList(Loader.java:2554)
    at org.hibernate.loader.Loader.doList(Loader.java:2540)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
    at org.hibernate.loader.Loader.list(Loader.java:2365)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at Test2.main(Test2.java:25)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.test test0_' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
    at com.mysql.jdbc.Util.getInstance(Util.java:360)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)
    ... 15 more
<property name="show_sql">true</property>
select test0_.id as id1_0_, test0_.name as name2_0_ from training.training.test test0_