В настоящее время я изучаю Java JDBC с базой данных MSSQL.И я не могу вставить данные в таблицу Stats с помощью приведенного ниже кода, хотя все шаги завершаются успешно.
Код: получение данных из таблицы Entity, сохранение их в Collection.Наконец, ввод данных из этой коллекции в таблицу Stats
.
Код insertCommand.executeUpdate()
возвращает 1, но таблица Stats
не содержит данных, которые код пытается вставить.
Почему это происходит?
protected void FillStats(Connection connection) throws SQLException {
PreparedStatement selectCmd = DatabaseHelper.createCommand(connection,
"Select Id, Created, CreatedBy, Updated, UpdatedBy from Entity");
System.out.println("A SQL statement has been created to retrieving data from Entity table.");
List<Object[]> list = new ArrayList<Object[]>();
try (ResultSet results = selectCmd.executeQuery()) {
int numberOfObject = 0;
System.out.println(">>> Start getting data from Entity table.");
while (results.next()) {
list.add(new Object[] { results.getInt(1), results.getDate(2), results.getString(3), results.getDate(4),
results.getString(5) });
++numberOfObject;
}
System.out.println("Total number of records retrieved: " + numberOfObject);
}
for (Object[] media : list) {
PreparedStatement insertCmd = DatabaseHelper.createCommand(connection,
"Insert into Stats ([Id], [Created], [CreatedBy], [Updated], [UpdatedBy]) values (?, ?, ?, ?, ?)");
insertCmd.setInt(1, (int) media[0]);
insertCmd.setDate(2, (Date) media[1]);
insertCmd.setString(3, (String) media[2]);
insertCmd.setDate(4, (Date) media[3]);
insertCmd.setString(5, (String) media[4]);
int updated = insertCmd.executeUpdate();
if (updated > 0) {
System.out.println("success");
} else {
System.out.println("Stuck somewhere");
}
}
}
Команда создания таблицы статистики:
createCommand(con, "create table Stats "
+ "(Id INT not null, "
+ "Created DATETIME not null, "
+ "CreatedBy NVARCHAR(255) not null, "
+ "Updated DATETIME null, "
+ "UpdatedBy NVARCHAR(255) null, "
+ "primary key (Id))").execute()
Объект таблицы:
CREATE TABLE [Entity](
[Id] [int] NOT NULL,
[Version] [int] NOT NULL,
[Name] [nvarchar](255) NOT NULL,
[Description] [nvarchar](max) NULL,
[Properties] [nvarchar](max) NULL,
[TypeId] [int] NOT NULL,
[TypeVersionId] [int] NOT NULL,
[Created] [datetime] NOT NULL,
[CreatedBy] [nvarchar](255) NOT NULL,
[Updated] [datetime] NULL,
[UpdatedBy] [nvarchar](255) NULL,
PRIMARY KEY
(
[Id] ASC
))