{"id":898,"date":"2016-09-15T06:00:57","date_gmt":"2016-09-15T09:00:57","guid":{"rendered":"https:\/\/www.erudio.com.br\/blog\/?p=898"},"modified":"2022-12-21T13:44:00","modified_gmt":"2022-12-21T16:44:00","slug":"configurando-uma-conexao-mysql-no-jboss-com-mysql-connector-jdbc-driver","status":"publish","type":"post","link":"https:\/\/www.erudio.com.br\/blog\/configurando-uma-conexao-mysql-no-jboss-com-mysql-connector-jdbc-driver\/","title":{"rendered":"Configurando uma Conex\u00e3o MySQL no JBoss com MySQL Connector JDBC Driver"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Em um posts anterior aprendemos como criar uma conex\u00e3o via <strong>JBoss<\/strong> e um banco <strong>MSQL Server<\/strong> usando o <strong>JTDS Driver<\/strong> e <strong>Microsoft JDBC Driver<\/strong>. Neste post falaremos do <strong>MySQL Connector JDBC Driver<\/strong>. Para configurar ele no <strong>JBoss<\/strong> seguiremos alguns passos similares aos outros posts:<\/p>\n<p>&nbsp;<\/p>\n<p>1. Baixe o driver no <a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\"><strong>site do MySQL<\/strong><\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>2. Extraia o arquivo recem baixado e localize o arquivo <strong>mysql-connector-java-5.1.38-bin.jar<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>3. No seu <strong>JBOSS_HOME<\/strong> crie diret\u00f3rios respeitando a seguinte hierarquia <strong>&#8220;modules\\com\\mysql\\main&#8221;<\/strong>. Dentro desse diret\u00f3rio coloque o arquivo rec\u00e9m baixado <strong>mysql-connector-java-5.1.38-bin.jar<\/strong> e crie um novo arquivo chamado <strong>module.xml<\/strong> com o seguinte conte\u00fado:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;\n&lt;module xmlns=&quot;urn:jboss:module:1.1&quot; name=&quot;com.mysql&quot;&gt;\n  &lt;resources&gt;\n    &lt;resource-root path=&quot;mysql-connector-java-5.1.38-bin.jar&quot;&gt;\n  &lt;\/resource-root&gt;&lt;\/resources&gt;\n  &lt;dependencies&gt;\n    &lt;module name=&quot;javax.api&quot;&gt;\n    &lt;module name=&quot;javax.transaction.api&quot;&gt;\n  &lt;\/module&gt;&lt;\/module&gt;&lt;\/dependencies&gt;\n&lt;\/module&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p>3. Agora precisamos modificar nosso <strong>standalone.xml<\/strong> adicionando as configura\u00e7\u00f5es abaixo \u00e0 se\u00e7\u00e3o de <strong>datasources<\/strong>. Diferente dos posts anteriores adicionei novas configura\u00e7\u00f5es para que voc\u00ea saiba que pode definir novos par\u00e2metros al\u00e9m do b\u00e1sico. No geral podemos definir par\u00e2metros para o pool de conex\u00f5es, valida\u00e7\u00f5es, cache dentre outros. Essas configura\u00e7\u00f5es s\u00e3o padr\u00e3o e com exce\u00e7\u00e3o das configura\u00e7\u00f5es de valida\u00e7\u00e3o se aplicam \u00e0 maioria dos bancos de dados.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;datasource jndi-name=&quot;java:jboss\/datasources\/SeuDatabase&quot; pool-name=&quot;SeuDatabase&quot; enabled=&quot;true&quot; use-java-context=&quot;true&quot; use-ccm=&quot;true&quot;&gt;\n   &lt;connection-url&gt;jdbc:mysql:\/\/localhost:3306\/SeuDatabase&lt;\/connection-url&gt;\n   &lt;driver&gt;mysql&lt;\/driver&gt;\n   &lt;transaction-isolation&gt;TRANSACTION_READ_COMMITTED&lt;\/transaction-isolation&gt;\n\n   &lt;!-- Configura\u00e7\u00e3o opcional pra definir os par\u00e2metros do pool de conex\u00f5es --&gt;\n   &lt;pool&gt;\n      &lt;min-pool-size&gt;10&lt;\/min-pool-size&gt;\n      &lt;max-pool-size&gt;100&lt;\/max-pool-size&gt;\n      &lt;prefill&gt;true&lt;\/prefill&gt;\n   &lt;\/pool&gt;\n   &lt;security&gt;\n      &lt;user-name&gt;seu_usuario&lt;\/user-name&gt;\n      &lt;password&gt;sua_senha&lt;\/password&gt;\n   &lt;\/security&gt;\n\n   &lt;!-- Configura\u00e7\u00e3o opcional para valida\u00e7\u00e3o de conex\u00f5es e tratamento de exceptions --&gt;\n   &lt;validation&gt;\n      &lt;valid-connection-checker class-name=&quot;org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker&quot;&gt;\n      &lt;exception-sorter class-name=&quot;org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter&quot;&gt;\n   &lt;\/exception-sorter&gt;&lt;\/valid-connection-checker&gt;&lt;\/validation&gt;\n\n   &lt;!-- Configura\u00e7\u00e3o opcional com os par\u00e2metros de de cache --&gt;\n   &lt;statement&gt;\n      &lt;prepared-statement-cache-size&gt;100&lt;\/prepared-statement-cache-size&gt;\n      &lt;share-prepared-statements&gt;true&lt;\/share-prepared-statements&gt;\n   &lt;\/statement&gt;\n&lt;\/datasource&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p>E na se\u00e7\u00e3o <strong>drivers<\/strong>:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;driver name=&quot;mysql&quot; module=&quot;com.mysql&quot;&gt;\n   &lt;datasource-class&gt;com.mysql.jdbc.jdbc2.optional.MysqlDataSource&lt;\/datasource-class&gt;\n&lt;\/driver&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p>O resultado final deve ser similar a configura\u00e7\u00e3o abaixo:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;subsystem xmlns=&quot;urn:jboss:domain:datasources:1.1&quot;&gt;\n   &lt;datasources&gt;\n      &lt;datasource jndi-name=&quot;java:jboss\/datasources\/SeuDatabase&quot; pool-name=&quot;SeuDatabase&quot; enabled=&quot;true&quot; use-java-context=&quot;true&quot; use-ccm=&quot;true&quot;&gt;\n         &lt;connection-url&gt;jdbc:mysql:\/\/localhost:3306\/SeuDatabase&lt;\/connection-url&gt;\n         &lt;driver&gt;mysql&lt;\/driver&gt;\n         &lt;transaction-isolation&gt;TRANSACTION_READ_COMMITTED&lt;\/transaction-isolation&gt;\n\n         &lt;!-- Configura\u00e7\u00e3o opcional pra definir os par\u00e2metros do pool de conex\u00f5es --&gt;\n         &lt;pool&gt;\n            &lt;min-pool-size&gt;10&lt;\/min-pool-size&gt;\n            &lt;max-pool-size&gt;100&lt;\/max-pool-size&gt;\n            &lt;prefill&gt;true&lt;\/prefill&gt;\n         &lt;\/pool&gt;\n         &lt;security&gt;\n            &lt;user-name&gt;seu_usuario&lt;\/user-name&gt;\n            &lt;password&gt;sua_senha&lt;\/password&gt;\n         &lt;\/security&gt;\n\n         &lt;!-- Configura\u00e7\u00e3o opcional para valida\u00e7\u00e3o de conex\u00f5es e tratamento de exceptions --&gt;\n         &lt;validation&gt;\n            &lt;valid-connection-checker class-name=&quot;org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker&quot;&gt;\n            &lt;exception-sorter class-name=&quot;org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter&quot;&gt;\n         &lt;\/exception-sorter&gt;&lt;\/valid-connection-checker&gt;&lt;\/validation&gt;\n\n         &lt;!-- Configura\u00e7\u00e3o opcional com os par\u00e2metros de de cache --&gt;\n         &lt;statement&gt;\n            &lt;prepared-statement-cache-size&gt;100&lt;\/prepared-statement-cache-size&gt;\n            &lt;share-prepared-statements&gt;true&lt;\/share-prepared-statements&gt;\n         &lt;\/statement&gt;\n      &lt;\/datasource&gt;\n      &lt;drivers&gt;\n         &lt;driver name=&quot;mysql&quot; module=&quot;com.mysql&quot;&gt;\n            &lt;datasource-class&gt;com.mysql.jdbc.jdbc2.optional.MysqlDataSource&lt;\/datasource-class&gt;\n         &lt;\/driver&gt;\n      &lt;\/drivers&gt;\n   &lt;\/datasources&gt;\n&lt;\/subsystem&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Complementando as postagens sobre os datasources <strong>MSQL Server<\/strong> dessa vez aprendemos a criar uma conex\u00e3o com uma base <strong>MySQL<\/strong> . Mais uma vez para solu\u00e7\u00f5es mais complexas use o Google e sua criatividade.<\/p>\n<p>&nbsp;<\/p>\n<h2>Treinamentos relacionados com este post<\/h2>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\"><\/p>\n<p><img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_asp_net\" target=\"_blank\" rel=\"noopener\"><\/p>\n<p><img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 Azure com ASP.NET Core 5 e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/01-rest-asp.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 AWS com Spring Boot 3, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/18-rest-spring-kotlin.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices_java\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microservices do 0 com Spring Cloud, Spring Boot e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/14-microservices-java.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices-dotnet\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Arquitetura de Microsservi\u00e7os do 0 com ASP.NET, .NET 6 e C#\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/15-microservices-dotnet.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ms_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microsservi\u00e7os do 0 com Spring Cloud, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/22-ms-kotlin.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker_para_aws\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker para Amazon AWS Implante Apps Java e .NET com Travis CI\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/10-docker-to-aws.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Kotlin para DEVs Java: Aprenda a Linguagem Padr\u00e3o do Android\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/20-kotlin.png\"><br \/>\n<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Em um posts anterior aprendemos como criar uma conex\u00e3o via JBoss e um banco MSQL Server usando o JTDS Driver e Microsoft JDBC Driver. Neste post falaremos do MySQL Connector JDBC Driver. Para configurar ele no JBoss seguiremos alguns passos similares aos outros posts: &nbsp; 1. Baixe o driver no site do MySQL. &nbsp; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25,46,47,68,69,70],"tags":[173,174,196,197],"_links":{"self":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/898"}],"collection":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=898"}],"version-history":[{"count":3,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/898\/revisions"}],"predecessor-version":[{"id":1539,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/898\/revisions\/1539"}],"wp:attachment":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}