В этом примере показано, как соединиться с базой данных, вставить строку в существующую таблицу базы данных и откатить вставку с помощью собственного интерфейса MySQL ®. В примере используется база данных MySQL версии 5.7.22 с драйвером 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)
close
| mysql
| rollback
| sqlread
| sqlwrite