{"id":2684,"date":"2020-04-22T17:35:00","date_gmt":"2020-04-22T20:35:00","guid":{"rendered":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/?p=2684"},"modified":"2025-09-02T13:58:18","modified_gmt":"2025-09-02T16:58:18","slug":"conexao-mysql-java","status":"publish","type":"post","link":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/2020\/04\/22\/conexao-mysql-java","title":{"rendered":"Conex\u00e3o MySQL \/ JAVA"},"content":{"rendered":"\n<section id=\"h.5a264b6c67ac1e51_17\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_14\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Nesta edi\u00e7\u00e3o iremos aprender a estabelecer uma conex\u00e3o MYSQL com JAVA e quatro opera\u00e7\u00f5es b\u00e1sicas: cria\u00e7\u00e3o (CREATE), consulta (READ), atualiza\u00e7\u00e3o (UPDATE) e destrui\u00e7\u00e3o (DELETE) para trabalhar com os dados do Banco de Dados, caracterizando o acr\u00f4nimo CRUD. Acesse o link do\u00a0<span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fgithub.com%2FRaissaArantes%2FConexaoMySQL_MetodosCRUD.git&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGf7HwYnGcRvu77g5Z0QigZ4JNvSg\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub\u00a0<\/a><\/span>para acesso ao c\u00f3digo e melhor acompanhamento da reda\u00e7\u00e3o.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Para come\u00e7ar, deve ser feito o download e a instala\u00e7\u00e3o do\u00a0<span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"http:\/\/www.google.com\/url?q=http%3A%2F%2Fdev.mysql.com%2Fdownloads%2Fmysql&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHLDJDeUonK_kRKpJMyCxGZ0Sex8w\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Server<\/a><\/span>\u00a0bem como a da IDE que se deseja utilizar (NetBeans, Intelij IDEA, Eclipse, etc.). Em seguida, precisamos do driver de conex\u00e3o entre o Java e o MySQL, o mysqlconnector. Drivers retornam dados consultados em um formato relacional e fornecem conectividade entre banco de dados por meio das interfaces de programa aplicativo (APIs) JDBC dispon\u00edveis na plataforma Java. O JDBC (Java Database Connectivity) descreve uma lista de m\u00e9todos SQL que um programador Java pode usar para acessar um banco de dados relacional. Neste tutorial, estamos utilizando a vers\u00e3o &#8220;<span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fdev.mysql.com%2Fdownloads%2Fconnector%2Fj%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHP9D5dNpBgEhIxi4ezFFk_g6Dk5Q\" target=\"_blank\" rel=\"noopener noreferrer\">mysql-connector-java-8.0.17.jar<\/a><\/span>&#8220;, bem como o\u00a0<span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fnetbeans.org%2Fdownloads%2F8.2%2Frc%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNErMG2y_vBATEAEuboiQlScFAQggQ\" target=\"_blank\" rel=\"noopener noreferrer\">Netbeans IDE 8.2<\/a><\/span>.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Ap\u00f3s as instala\u00e7\u00f5es, poderemos iniciar nosso projeto. No NetBeans, insira o conector na pasta &#8220;Bibliotecas&#8221; do seu projeto, como nas figuras a seguir:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_18\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_39\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-2878 alignleft\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud1-300x242.png\" alt=\"\" width=\"466\" height=\"376\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud1-300x242.png 300w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud1.png 364w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><\/div>\n<div>\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_40\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img decoding=\"async\" class=\"alignnone  wp-image-2879\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud2-300x242.png\" alt=\"\" width=\"453\" height=\"365\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud2-300x242.png 300w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud2.png 338w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_44\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_41\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Em seguida, crie um pacote em \u201cPacotes de C\u00f3digos-fonte\u201d para onde ser\u00e1 colocada a classe da conex\u00e3o com o banco. Nesse pacote, crie uma nova Classe Java para a sua classe de conex\u00e3o.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_52\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-II5mzb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_49\" class=\"hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img decoding=\"async\" class=\"aligncenter wp-image-2880 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud3.png\" alt=\"\" width=\"271\" height=\"236\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-II5mzb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_56\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_53\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p class=\"zfr3Q\" dir=\"ltr\">Para ser feita uma conex\u00e3o com o banco de dados, utilizamos um driver. Assim sendo, utilizamos a classe DriverManager para a comunica\u00e7\u00e3o com esses drivers. Com o m\u00e9todo getConnection, por sua vez, podemos informar com qual o banco devemos realizar a nossa conex\u00e3o, o usu\u00e1rio e a senha. O primeiro par\u00e2metro passado por esse m\u00e9todo \u00e9 a URL, uma String, que varia de acordo com o conector que se est\u00e1 utilizando. Neste exemplo, estamos usando o &#8220;mysql-connector-java-8.0.17.jar&#8221;, logo, essa String possui a seguinte formata\u00e7\u00e3o:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>URL = jdbc:mysql:\/\/ localhost:port\/nome_do_banco?useTimezone=true&amp;serverTimezone=UTC<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Os pr\u00f3ximos par\u00e2metros s\u00e3o o usu\u00e1rio e a senha de acesso ao banco de dados, respectivamente:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>DriverManager.getConnection(URL, USER, PASS);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Classe de conex\u00e3o:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>package DatabaseConnection;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>import java.sql.Connection;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>import java.sql.DriverManager;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>import java.sql.SQLException;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>public class Conexao{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\/\/ Informamos qual o Driver que est\u00e1 sendo utilizado<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>private static final String DRIVER = \"com.mysql.cj.jdbc.Driver\";<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>private static final String URL = \"jdbc:mysql:\/\/localhost:3306\/pet?useTimezone=true&amp;serverTimezone=UTC\";<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>private static final String USER = \"root\";<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>private static final String PASSWORD = \"senha\";<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>public static Connection getConnection() throws SQLException, ClassNotFoundException {<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>try{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ O m\u00e9todo forName carrega e inicia o driver passado por par\u00e2metro<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Class.forName(DRIVER);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ Estabelecendo a conex\u00e3o<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>return DriverManager.getConnection(URL, USER, PASSWORD);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}catch(ClassNotFoundException | SQLException ex){ \/\/ Tratamento de Exce\u00e7\u00f5es<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>System.out.println(ex);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>return null;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Agora, com a conex\u00e3o estabelecida, podemos gerar as classes que ir\u00e3o se relacionar com o banco de dados, buscando, alterando, inserindo e excluindo dados. Assim sendo, precisamos criar mais dois pacotes, um para as classes DAO e um para as classes bean.\u00a0 As classes DAO \u2013 Data Access Object \u2013 s\u00e3o as classes que fazem o interm\u00e9dio com o banco de dados, fazendo conex\u00f5es e transa\u00e7\u00f5es com o mesmo. J\u00e1 as classes bean, elas possuem todos os atributos privados (as colunas das tabelas do banco de dados) bem como os m\u00e9todos getters e setters destes. Exemplo de classe bean:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_65\" class=\"yaqOZd\">\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc yYI8W \">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_86\" class=\"hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2881 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud4.png\" alt=\"\" width=\"236\" height=\"272\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"oKdM2c\">\n<div id=\"h.5a264b6c67ac1e51_70\" class=\"hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\" style=\"text-align: center\"><small class=\"zfr3Q TMjjoe\">Pacotes j\u00e1 criados<\/small><\/div>\n<div>\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-wNfPc purZT-AhqUyc-II5mzb pSzOP-AhqUyc-wNfPc JNdkSc yYI8W \">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_87\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 OjCsFc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2882 size-full\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud5.png\" alt=\"\" width=\"404\" height=\"373\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud5.png 404w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud5-300x277.png 300w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"oKdM2c\">\n<div id=\"h.5a264b6c67ac1e51_75\" class=\"hJDwNd-AhqUyc-wNfPc pSzOP-AhqUyc-wNfPc jXK9ad D2fZ2 wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\" style=\"text-align: center\"><small class=\"zfr3Q TMjjoe\">Exemplo de classe Bean<\/small><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_91\" class=\"yaqOZd qeLZfd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_88\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<div id=\"h.f1m04f41ijiv\" class=\"GV3q8e aP9Z7e\">\u00a0<\/div>\n<div class=\"CjVfdc\"><strong>Dica<\/strong>: para gerar os getter e setters automaticamente no NetBeans: pressione Alt+Insert e selecione getter e setters e, a seguir, ser\u00e1 aberta uma janela em que poder\u00e3o ser selecionados os atributos sobre os quais se deseja que sejam gerados esses m\u00e9todos.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_94\" class=\"yaqOZd qeLZfd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"\">\u00a0<\/div>\n<div class=\"hJDwNd-AhqUyc-c5RTEf purZT-AhqUyc-c5RTEf pSzOP-AhqUyc-c5RTEf JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_92\" class=\"hJDwNd-AhqUyc-c5RTEf purZT-AhqUyc-c5RTEf pSzOP-AhqUyc-c5RTEf jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div>\u00a0<\/div>\n<div>\u00a0<\/div>\n<div class=\"t3iYD\" style=\"text-align: left\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-2883 \" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud6.png\" alt=\"\" width=\"418\" height=\"576\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud6.png 336w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud6-218x300.png 218w\" sizes=\"(max-width: 418px) 100vw, 418px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP\" style=\"text-align: left\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-c5RTEf purZT-AhqUyc-c5RTEf pSzOP-AhqUyc-c5RTEf JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_93\" class=\"hJDwNd-AhqUyc-c5RTEf purZT-AhqUyc-c5RTEf pSzOP-AhqUyc-c5RTEf jXK9ad D2fZ2 OjCsFc wHaque\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd baZpAe\">\n<div class=\"t3iYD\">\u00a0 <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2884 size-full alignleft\" src=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud7.png\" alt=\"\" width=\"420\" height=\"577\" srcset=\"https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud7.png 420w, https:\/\/www.ufsm.br\/app\/uploads\/sites\/791\/2020\/09\/mysql-crud7-218x300.png 218w\" sizes=\"(max-width: 420px) 100vw, 420px\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"h.5a264b6c67ac1e51_105\" class=\"yaqOZd\">\n<div class=\"yaqOZd IFuOkc\">\u00a0<\/div>\n<div class=\"mYVXT\">\n<div class=\"LS81yb VICjCf\">\n<div class=\"hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc\">\n<div class=\"JNdkSc-SmKAyb\">\n<div class=\"\">\n<div class=\"oKdM2c Kzv0Me\">\n<div id=\"h.5a264b6c67ac1e51_102\" class=\"hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc\">\n<div class=\"jXK9ad-SmKAyb\">\n<div class=\"tyJCtd mGzaTb baZpAe\">\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p dir=\"ltr\">\u00a0<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Criadas as classes bean, podemos nos dirigir \u00e0 cria\u00e7\u00e3o das classes DAO. Para a constru\u00e7\u00e3o dessas classes, \u00e9 necess\u00e1rio ter um conhecimento pr\u00e9vio na linguagem SQL, uma vez que \u00e9 atrav\u00e9s dela que a comunica\u00e7\u00e3o \u00e9 feita com o banco de dados. Primeiramente, precisamos buscar uma conex\u00e3o com o banco de dados. Isso \u00e9 feito por meio do m\u00e9todo getConnection(). A seguir, utilizamos o PreparedStatement, que \u00e9 usado para consultas parametrizadas, formatando os valores \u2013 inserindo dados de forma mais segura.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Exemplo de um m\u00e9todo para inser\u00e7\u00e3o de dados no banco de dados:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\/\/ O retorno \u00e9 vazio, e recebe um objeto do tipo Membros<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>public void Insert(Membros m) throws SQLException, ClassNotFoundException{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Connection con = Conexao.getConnection(); \/\/ Busca uma conex\u00e3o com o banco de dados<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>PreparedStatement stmt = null;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>try{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ Inserindo o comando SQL a ser usado<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>stmt = con.prepareStatement(\"INSERT INTO membros VALUES (DEFAULT, ?)\");<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ O m\u00e9todo setString, define que o valor passado ser\u00e1 do tipo inteiro<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0stmt.setString(1, m.getNome());<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ M\u00e9todo respons\u00e1vel por fazer a altera\u00e7\u00e3o no banco de dados<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>stmt.executeUpdate();\u00a0<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}catch(SQLException ex){\u00a0 \/\/ Tratamento das exce\u00e7\u00f5es<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>System.out.println(ex);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>} finally{ \/\/ Encerramento da conex\u00e3o<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Conexao.closeConnection(con, stmt);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Note que, os valores que s\u00e3o auto-increment\u00e1veis, n\u00e3o s\u00e3o passados atrav\u00e9s do m\u00e9todo get, como \u00e9 o caso do ID no exemplo.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">O m\u00e9todo para altera\u00e7\u00e3o, bem como para remo\u00e7\u00e3o de dados \u00e9 semelhante ao da inser\u00e7\u00e3o, diferindo apenas no comando SQL utilizado.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Agora, desenvolveremos um exemplo de busca de dados no banco de dados. Tendo em vista que, ao ser realizada uma busca (SELECT) em um banco de dados, recebemos como retorno v\u00e1rios itens\/linhas. Assim, trataremos esses dados como uma lista de informa\u00e7\u00f5es, ou seja, o retorno desse m\u00e9todo deve ser uma lista.<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Exemplo de um m\u00e9todo para busca de dados:<\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\/\/ O retorno \u00e9 uma lista<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>public List&lt;Membros&gt; Select () throws SQLException, ClassNotFoundException{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Connection con = Conexao.getConnection(); \/\/ Busca uma conex\u00e3o com o banco de dados<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>PreparedStatement stmt = null;<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>ResultSet rs = null; \/\/ Objeto que armazena o resultado de uma busca em uma estrutura de dados que pode ser percorrida<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\/\/ Instanciando uma nova lista para receber os valores do banco<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>List&lt;Membros&gt;membros = new ArrayList&lt;&gt;();<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>try{<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/\/ Inserindo o comando SQL a ser usado<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>stmt = con.prepareStatement(\"SELECT * FROM membros\");<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>rs = stmt.executeQuery(); \/\/ Executa o comando SQL<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0\/* Loop respons\u00e1vel pela busca dos dados no banco que o repetir\u00e1 at\u00e9 que n\u00e3o<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>\u00a0haja valores *\/<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>while(rs.next()){<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Membros mem = new Membros();<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>mem.setId(rs.getInt(\"id\"));<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>mem.setNome(rs.getString(\"nome\"));<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>membros.add(mem); \/\/ Adiciona o objeto na lista<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}catch(SQLException ex){ \/\/ Tratamento das exce\u00e7\u00f5es<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>Logger.getLogger(MembrosDAO.class.getName()).log(Level.SEVERE, null, ex);<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>return membros;\u00a0 \u00a0\/\/ Retorna a lista<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><code>}<\/code><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\">Tendo as classes DAO e bean, resta apenas o desenvolvimento de uma interface com o usu\u00e1rio. Dessa forma, pode-se testar a conex\u00e3o e suas intera\u00e7\u00f5es com o banco de dados. Esse \u00e9 um ponto de partida para as aplica\u00e7\u00f5es que precisem usar bancos de dados e \u00e9 extremamente importante sabermos lidar com essa intera\u00e7\u00e3o e, embora possa parecer complexo, uma vez que se entenda o funcionamento dos m\u00e9todos necess\u00e1rios, vemos que n\u00e3o \u00e9 t\u00e3o complicado assim.<\/p>\n<div id=\"h.xjljb73jhkrc\" class=\"GV3q8e aP9Z7e\">\u00a0<\/div>\n<div class=\"CjVfdc\">\n<div class=\"PPhIP rviiZ\">\n<div class=\"U26fgb mUbCce fKz7Od LRAOtb rm120e\" role=\"presentation\" aria-describedby=\"h.xjljb73jhkrc\" aria-label=\"Copiar link do t\u00edtulo\" data-tooltip=\"Copiar link do t\u00edtulo\" aria-hidden=\"true\" data-tooltip-position=\"top\" data-tooltip-vertical-offset=\"12\" data-tooltip-horizontal-offset=\"0\">\n<div class=\"VTBa7b MbhUzd\">\u00a0<\/div>\n<\/div>\n<\/div>\nRefer\u00eancias:<\/div>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"http:\/\/www.google.com\/url?q=http%3A%2F%2Fwww.codeacademy.com%2Farticles%2Fwhat-is-crud&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEcScDO_Q5gYhvtMk3rBlPcgi4RwA\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.codeacademy.com\/articles\/what-is-crud<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"http:\/\/www.google.com\/url?q=http%3A%2F%2Fwww.linhadecodigo.com.br%2Fartigo%2F832%2Foverview-de-javabeans.aspx&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGNjpf_4HIFuQcxWrmU8V1zJNeW_w\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.linhadecodigo.com.br\/artigo\/832\/overview-de-javabeans.aspx<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fpt.stackoverflow.com%2Fquestions%2F113840%2Fcomo-funciona-o-padr%25C3%25A3o-dao&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFENVj71u-BCtPMkvHO4uyRXlUOTw\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/pt.stackoverflow.com\/questions\/113840\/como-funciona-o-padr%C3%A3o-dao<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.guj.com.br%2Ft%2Fclasse-dao%2F71523%2F3&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGSB9IHjWvFYhaUhmV8j7DEQ623fA\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.guj.com.br\/t\/classe-dao\/71523\/3<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.guj.com.br%2Ft%2Fclass-forname%2F96650%2F3&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNERkkVn2oHF5_-Z5zD7CNXmhTh6zQ\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.guj.com.br\/t\/class-forname\/96650\/3<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.devmedia.com.br%2Fclasse-de-conexao-em-java-no-netbeans-driver-mysql%2F18804&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFQ-aCVbzQ41CajZjTcGQki81UClw\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.devmedia.com.br\/classe-de-conexao-em-java-no-netbeans-driver-mysql\/18804<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.guj.com.br%2Ft%2Fre-resultset-pra-q-isso-serve%2F31507&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFqV3A40UW3eF0kH6ciU9xLwqjJEQ\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.guj.com.br\/t\/re-resultset-pra-q-isso-serve\/31507<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.guj.com.br%2Ft%2Fo-que-e-preparedstatement-e-para-que-serve%2F86774%2F2&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHRCULVdwiMVnYlQrdbUMZ0b9HqqA\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.guj.com.br\/t\/o-que-e-preparedstatement-e-para-que-serve\/86774\/2<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.javatpoint.com%2FPreparedStatement-interface&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEE2YXldyQqeed0Mke-O3VSVUtnWA\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.javatpoint.com\/PreparedStatement-interface<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.devmedia.com.br%2Fjdbc-tutorial%2F6638&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGi8nlAJWdcKbm_8C5lmPfOeV0Jpg\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.devmedia.com.br\/jdbc-tutorial\/6638<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fdocs.microsoft.com%2Fpt-br%2Fsql%2Fconnect%2Fjdbc%2Fdownload-microsoft-jdbc-driver-for-sql-server%3Fview%3Dsql-server-ver15&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHbNGKY20WYchsZR_KfgP_upvlj9w\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.microsoft.com\/pt-br\/sql\/connect\/jdbc\/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15<\/a><\/span><\/p>\n<p class=\"zfr3Q\" dir=\"ltr\"><span class=\" aw5Odc\"><a class=\"XqQF9c\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fwww.mindprod.com%2Fjgloss%2Fjdbc.html&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF8xkRypuxm52fFcaAMBKxQO6aAwg\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mindprod.com\/jgloss\/jdbc.html<\/a><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Nesta edi\u00e7\u00e3o iremos aprender a estabelecer uma conex\u00e3o MYSQL com JAVA e quatro opera\u00e7\u00f5es b\u00e1sicas: cria\u00e7\u00e3o (CREATE), consulta (READ), atualiza\u00e7\u00e3o (UPDATE) e destrui\u00e7\u00e3o (DELETE) para trabalhar com os dados do Banco de Dados, caracterizando o acr\u00f4nimo CRUD. Acesse o link do\u00a0GitHub\u00a0para acesso ao c\u00f3digo e melhor acompanhamento da reda\u00e7\u00e3o. Para come\u00e7ar, deve ser feito o [&hellip;]<\/p>\n","protected":false},"author":2948,"featured_media":2682,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124,112],"tags":[196,149],"class_list":["post-2684","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-destaques","category-redacao","tag-back-end-e-bd","tag-redacao"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/2684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/users\/2948"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/comments?post=2684"}],"version-history":[{"count":0,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/2684\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media\/2682"}],"wp:attachment":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media?parent=2684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/categories?post=2684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/tags?post=2684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}