- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Hibernate 时遇到了一个非常奇怪的错误,该错误仅在今天出现,因为昨天一切正常,并且我没有对配置文件进行任何更改。似乎java想要执行定义的列并将它们导出到数据库,但随后出现Error waiting DDL engine=MyISAM"via JDBC Statement
。
我读到该错误可能是由于 hibernate.cfg.xml 中的 MySQLDialect
而不是 MySQL5Dialect
而出现的,但这不是问题,因为我使用 MySQL5Dialect
从头开始。
我对我连接的本地数据库进行操作。
<小时/><?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//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.url">jdbc:mysql://localhost:3306/users</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update </property>
<mapping class="UserData"/>
</session-factory>
</hibernate-configuration>
import javax.persistence.*;
@Table
@Entity(name="users")
public class UserData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private String firstName;
@Column
private String lastName;
@Column
private int telephoneNo;
@Column
private String email;
@Column
private String pickUp;
@Column
private String dropOff;
public UserData(){}
public UserData(String firstName, String lastName, int telephoneNo, String email, String pickUp, String dropOff){
this.firstName = firstName;
this.lastName = lastName;
this.telephoneNo = telephoneNo;
this.email = email;
this.pickUp = pickUp;
this.dropOff = dropOff;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getTelephoneNo() {
return telephoneNo;
}
public void setTelephoneNo(int telephoneNo) {
this.telephoneNo = telephoneNo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPickUp() {
return pickUp;
}
public void setPickUp(String pickUp) {
this.pickUp = pickUp;
}
public String getDropOff() {
return dropOff;
}
public void setDropOff(String dropOff) {
this.dropOff = dropOff;
}
}
1,Reanna,Colepio,159031625,reanna_colepio123@gmail.com,London,Glasgow
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateConfig {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory(){
try {
return new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex){
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static void shutdown(){
getSessionFactory().close();
}
}
import org.hibernate.Session;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class ManageData {
public static void readFile() {
String line = "";
Session session = HibernateConfig.getSessionFactory().openSession();
try (BufferedReader br = new BufferedReader(new FileReader("/Users/ggabrychowicz/IdeaProjects/Bus Managing System/src/main/java/sample.csv"))){
while ((line = br.readLine()) != null){
String[] tempArr = line.split(",");
UserData userData = new UserData();
userData.setFirstName(tempArr[1]);
userData.setLastName(tempArr[2]);
userData.setTelephoneNo(Integer.parseInt(tempArr[3]));
userData.setEmail(tempArr[4]);
userData.setPickUp(tempArr[5]);
userData.setDropOff(tempArr[6]);
session.beginTransaction();
session.save(userData);
session.getTransaction().commit();
}
session.close();
}
catch (IOException e) {
if (session!=null){
session.getTransaction().rollback();
}
e.printStackTrace();
}
}
}
Mar 25, 2020 11:20:43 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.4.10.Final}
Mar 25, 2020 11:20:43 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
Mar 25, 2020 11:20:43 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Mar 25, 2020 11:20:43 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/users]
Mar 25, 2020 11:20:43 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {password=****, user=root}
Mar 25, 2020 11:20:43 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Mar 25, 2020 11:20:43 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Wed Mar 25 11:20:43 CET 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Mar 25, 2020 11:20:44 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
Mar 25, 2020 11:20:44 AM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@423b2b62] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
Mar 25, 2020 11:20:44 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException
WARN: GenerationTarget encountered exception accepting command : Error executing DDL "
create table users (
firstName varchar(255) not null auto_increment,
dropOff varchar(255),
email varchar(255),
lastName varchar(255),
pickUp varchar(255),
telephoneNo integer,
primary key (firstName)
) engine=MyISAM" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
create table users (
firstName varchar(255) not null auto_increment,
dropOff varchar(255),
email varchar(255),
lastName varchar(255),
pickUp varchar(255),
telephoneNo integer,
primary key (firstName)
) engine=MyISAM" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:277)
at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:184)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:320)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at HibernateConfig.buildSessionFactory(HibernateConfig.java:12)
at HibernateConfig.<clinit>(HibernateConfig.java:7)
at ManageData.readFile(ManageData.java:14)
at Main.main(Main.java:4)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect column specifier for column 'firstName'
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2439)
at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:829)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:729)
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
... 16 more
Hibernate:
create table users (
firstName varchar(255) not null auto_increment,
dropOff varchar(255),
email varchar(255),
lastName varchar(255),
pickUp varchar(255),
telephoneNo integer,
primary key (firstName)
) engine=MyISAM
Mar 25, 2020 11:20:44 AM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Exception in thread "main" java.lang.NumberFormatException: For input string: "Colepio"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:658)
at java.base/java.lang.Integer.parseInt(Integer.java:776)
at ManageData.readFile(ManageData.java:27)
at Main.main(Main.java:4)
Process finished with exit code 1
最佳答案
异常(exception)情况是:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
Incorrect column specifier for column 'firstName'
这是因为它尝试添加具有 auto_increment 的列firstName。 auto_increment 不适用于 VARCHAR 列。
在您的代码中:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private String firstName;
我假设您忘记了 id 属性,它应该如下所示:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String firstName;
关于java - GenerationTarget接受命令时遇到异常: Error executing DDL engine=MyISAM"via JDBC Statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60830596/
有没有办法为模式差异生成 DDL,就像 TOAD 中的同步功能一样? 不确定如何使用“updateSQL”选项?我正在使用 diff 选项来比较模式。 最佳答案 您可以通过两个步骤来完成: 在两个模式
我正在向表中添加一些新列,并希望向表 DDL 添加文档以供将来的开发人员使用。如何解决这个问题? 最佳答案 通用语法: COMMENT ON {OBJECT} {OBJECTNAME} AS '{25
我有一个连接到 postgresql 数据库的 spring 项目。连接在此 application.yml 文件中定义: spring: datasource: #TODO replace ap
这个问题与Converting MySQL DDL to SQL Server DDL完全相反 . 我有一个 SQL Server 2008 DDL 文件。我想将其导入MySQL。 有什么工具或建议可
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
当下拉列表值已从某些外部资源修改时,如何在下拉列表的 JQuery 中调用更改事件? 如果我更改下拉列表中的值,下面的代码可以很好地工作。 Jan Feb $('#month').ch
我们有大量不同的数据源,包括 oracle、db2、mysql。我们还需要在最后添加一些审计列。我遇到了以下 Java 类 org.apache.sqoop.hive.HiveTypes。我计划创建一
我有一个为 MySQL 5 生成的模型,但现在我需要在 SQL Server 安装上创建这些表。 年以来我一直在使用 SQL 服务器,我想确保我可以将此脚本转换为兼容。 我真的不知道要寻找什么 TBQ
我的 View 中有三个 DDL。我在第一个 DDL 的“onchange”上触发一个 JavaScript 函数来填充第二个 DDL,并在第二个 DDL 的“onchange”上触发一个 JavaS
我试图将一个事件绑定(bind)到下拉列表,因为昨天没有任何帮助去 JavaScript 聊天室,没有人能够找到解决我的问题的方法,但后来我以某种方式尝试绑定(bind)我的下拉列表,如下所示 $('
我正在尝试学习如何为给定的 Hive 数据库中的所有表自动创建 DDL。 例如,我有一个名为 abc_db 的数据库。我写了一个Hive脚本,将所有的表写入一个名为abc_db.txt的文件中。文件中
我正在尝试使用jpa-ddl-maven-plugin,如here所述但我使用 Apache Maven 3.0.3 时收到以下错误。有什么想法我哪里出错了吗? 我的 pom.xml:
我是 Spring 和 Hibernate 的新手,我已经尝试了所有我能找到的方法来解决这个问题,但没有成功。任何帮助将不胜感激。我目前正在关注一本书中的一个示例项目,并且收到一条错误消息“Gener
鉴于架构: MACHINE_TYPE { machine_type } 机器{机器,机器类型} SORT_PLAN { sort_plan, machine_type } 日程表 { day_of_w
DML、DDL、DCL区别 . 总体解释: DML(data manipulation language): 它们是SELECT、UPDATE、IN
我需要在 Oracle 数据库上执行一堆(最多约 1000000 条)sql 语句。这些语句最后应该导致引用一致的状态,如果发生错误,所有语句都应该回滚。这些语句不是按引用顺序出现的。因此,如果启用了
在这种情况下,可能具有SQLITE DDL(LineNum为AUTO INCREMENT列是TransDate列的一部分)。如果我在行中插入新的每日交易条目,则将自动使用AUTO INCREMENT
我最近开始学习 hive 。我有一个具有以下值的python列表 list=['hello:struct', 'env:string', 'element:struct','AppId:string'
我正在将表从Hive 1迁移到HDInsight Hive 2,并且在从源到目标的表上重新创建表时,DDL中的以下行未正确解析: FIELDS TERMINATED BY ' ' COLLECTION
我正在尝试在 HSQL 数据库中重新创建一个 oracle 数据库。 这是为了在本地开发人员系统上进行更好的单元测试。 我需要知道的是,是否有任何我可以在 oracle 服务器/客户端中使用的工具/命
我是一名优秀的程序员,十分优秀!