gpt4 book ai didi

java - 为什么我无法从表中获取数据?

转载 作者:行者123 更新时间:2023-11-30 08:12:59 24 4
gpt4 key购买 nike

有一个名为leagues的表,创建为:

CREATE TABLE leagues(id INT NOT NULL AUTO_INCREMENT,lname VARCHAR(255),
season VARCHAR(255),PRIMARY KEY (lname),KEY id(id));

其映射 hibernate xml 是:

<hibernate-mapping>
<class name="pojo.Leagues" table="leagues">
<id column='lname' name='leaguename' type="string"> </id>
<property column="id" name="id" type="integer" />
<property column="season" name="season" type="string" />
</class>
</hibernate-mapping>

我正在尝试从 leagues 表中获取数据,但无法获取。这是执行此操作的方法:

查询不返回任何内容,代码也不会进入循环。

public LinkedList<String> getLeagues() {
String hql = "select leaguename from pojo.Leagues";
lnames = new LinkedList<String>();
Configuration configuration = new Configuration().configure();
SessionFactory sessFact = configuration.buildSessionFactory();
Session sess = sessFact.openSession();

Query query = sess.createQuery(hql);
List list = query.list();
System.out.println("Heyyyyyyy:ll");
Iterator i = list.iterator();
while(i.hasNext()) {
System.out.println("Inside while block");
Leagues lname = (Leagues)i.next();
lnames.add(lname.getLeaguename());
}
return lnames;
}

我哪里出错了?为什么我无法获取数据?

最佳答案

您没有从数据库获取任何数据的原因是您正在使用纯SQL查询并调用

Query query = sess.createQuery(hql);

根据 createQuery() - Hibernate Doc 在 HQL 上运行。

如果你想使用纯SQL查询那么你必须使用createSQLQuery() - Hibernate Doc

String sqlQuery = "select leaguename from pojo.Leagues";
SQLQuery query = sess.createSQLQuery(sqlQuery);

或将查询更改为 HQL 格式,如下所示

String hqlQuery = "from pojo.Leagues";

关于java - 为什么我无法从表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com