我的Java代码出现此错误
Caused by :`com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException`: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB` server version for the right syntax to use near 'type = `MyISAM`' at line 1
这是hibernate传递的查询:
Hibernate: create table EMPLOYEE (emp_id integer not null, FNAME varchar(255), LNAME varchar(255), primary key (emp_id)) type=MyISAM
我已经查看了与此错误有关的所有问题。但是在所有这些问题中,用户本身都在传递查询“ type = MyISAM
”,因此他们可以将“ type
”
更改为“ engine
”,但是hibernate在这里负责创建表,因此我不知道错误在哪里以及如何解决。
这是我的配置文件:
<hibernate-configuration>
<session-factory >
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/servletcheck</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"> </property>
<property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
这是我的映射文件:
<hibernate-mapping>
<class name="first.Employee" table="EMPLOYEE">
<id name="id" type="int">
<column name="emp_id" />
<generator class="assigned" />
</id>
<property name="fname" type="java.lang.String">
<column name="FNAME" />
</property>
<property name="lname" type="java.lang.String">
<column name="LNAME" />
</property>
</class>
</hibernate-mapping>
这是我的课程文件:
public class StoreData {
public static void main(String[] args) {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
org.hibernate.Transaction t=session.beginTransaction();
Employee e=new Employee();
e.setId(1);
e.setFname("yogesh");
e.setLname("Meghnani");
session.persist(e);
t.commit();
}
}
问题是该方言org.hibernate.dialect.MySQLDialect
适用于MySQL
4.x或更早版本。TYPE=MYISAM
由该方言生成的片段在MySQL 4.0中已弃用,在5.5中已删除。
鉴于您使用了MariaDB,因此需要使用以下一种方法(取决于MariaDB的版本,可能还取决于Hibernate的版本):
org.hibernate.dialect.MariaDBDialect
org.hibernate.dialect.MariaDB53Dialect
如果您使用的是MySQL,或者您的Hibernate版本中不存在上述两种MariaDB方言:
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL55Dialect
org.hibernate.dialect.MySQL57Dialect
我的Java代码出现了这个错误 这是Hibernate传递的查询: 我已经看过与这个错误有关的所有问题。但是在所有这些问题中,用户本身传递查询“”,这样他们就可以将“”更改为“”,但是这里hibernate负责创建表,所以我不明白错误在哪里,以及如何修复它。
尝试使用 HQL 从表中获取记录时出现错误 原因:com . Mysql . JDBC . exceptions . JDBC 4 . MySQL syntaxerrorexception:您的SQL语法有错误;请查阅与您的MySQL服务器版本相对应的手册,了解使用near '的正确语法。userinfo userinfo 0 _ where userinfo 0 _。login_id='musk
问题内容: 我从数据库中删除记录时遇到问题。几个小时以来,我一直在努力弄清自己在做错什么。我在这里搜索了一些主题,但没有一个回答我在做什么错。我在数据库中制作了这3个表: 这是我的hibernate映射文件: 因此,当我尝试从jTable中删除一条记录时,它给了我一个错误。这是我用来从jTable和数据库中删除数据的代码: ServiceCheck.java 这是错误: 任何帮助将不胜感激! 问题
我试图通过使用postgres数据库设置Spring Boot项目。我的实体是:- 用户 作用 用户_角色 我的< code > application . properties 文件如下所示 所以每当我运行这个应用程序。在postgresql数据库上成功创建了user_role和role表。但用户实体抛出异常。 错误说:- 正如您所看到的实体上的错误点。但是当应用程序连接到mysql数据库时,相
我正在练习JPA/Hibernate,在运行下面的代码时: 和Book类(没有getters和setters): 我收到以下错误: 我真的不知道这意味着什么以及如何解决它,我花了几个小时搜索,找不到类似的东西。persistence.xml代码: 我在这里真的找不到任何错误——我在互联网上的许多地方看到了非常相似的代码。正如另一位用户所指出的,这是Hibernate生成的sql语句:创建表Book
我有以下代码片段 我尝试运行应用程序时出现以下错误(部分) 似乎type="num "没有被处理。我怀疑年龄int也可能是一个问题,因为它是一个int,但需要一个string。从sting到int的反向转换也可能是一个问题。 任何帮助是值得赞赏的。 谢谢