В этом примере показано, как соединиться с базой данных, вставьте строку в существующую таблицу базы данных и откатывайте вставку с помощью собственного интерфейса MySQL®. Пример использует версию 5.7.22 базы данных MySQL с MySQL Connector/C ++ версия драйвера 8.0.15. База данных содержит таблицу productTable
.
Создайте собственное соединение с базой данных интерфейса MySQL к базе данных MySQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "MySQLDataSource"; username = "root"; password = "matlab"; conn = mysql(datasource,username,password);
Установите AutoCommit
свойство connection
возразите против off
. Любые обновления, которые вы делаете после выключения этого флага, не соглашаются на базу данных автоматически.
conn.AutoCommit = "off";
Просмотреть существующую таблицу базы данных productTable
прежде, чем добавить данные, импортируйте его содержимое в MATLAB® и отобразите последние несколько строк.
tablename = "productTable";
rows = sqlread(conn,tablename);
tail(rows,3)
ans=3×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
Составьте таблицу MATLAB, которая содержит данные для одного продукта.
data = table(30,500000,1000,25,"Rubik's Cube", ... 'VariableNames',["productnumber" "stocknumber" ... "suppliernumber" "unitcost" "productdescription"]);
Добавьте данные о продукте в таблицу базы данных productTable
.
sqlwrite(conn,tablename,data)
Импортируйте содержимое таблицы базы данных в MATLAB снова и отобразите последние несколько строк. Результаты содержат новую строку для вставленного продукта.
rows = sqlread(conn,tablename); tail(rows,4)
ans=4×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
30 5e+05 1000 25 "Rubik's Cube"
Откатывайте вставленную строку.
rollback(conn)
Импортируйте содержимое таблицы базы данных в MATLAB снова и отобразите последние несколько строк. Результаты больше не содержат вставленную строку.
rows = sqlread(conn,tablename); tail(rows,3)
ans=3×5 table
productNumber stockNumber supplierNumber unitCost productDescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
close(conn)
mysql
| close
| sqlread
| sqlwrite
| rollback