iBatis em 72 segundos
1. XML... (segundos 1 a 63)
A configuração do iBatis é simples, e feita à base de arquivos XML. Para usar apenas o módulo de SQLMapping (i.e., a parte do iBatis responsável por fazer acessos ao banco), você precisa de um descritor XML com as configurações de acesso ao banco. Abaixo, o nosso arquivo ('sql-map-config.xml'):
<sqlmapconfig>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
maxSessions="64"
maxTransactions="8"
maxRequests="128"/>
<transactionmanager type="JDBC">
<datasource type="SIMPLE">
<property value="meu_JDBC_Driver" name="JDBC.Driver">
<property value="URL_do_banco" name="JDBC.ConnectionURL">
<property value="meu_username" name="JDBC.Username">
<property value="shhh_its_secret" name="JDBC.Password">
<property value="15" name="Pool.MaximumActiveConnections">
<property value="15" name="Pool.MaximumIdleConnections">
<property value="1000" name="Pool.MaximumWait">
</datasource>
</transactionmanager>
<!-- pode ter mais de um deste -->
<sqlmap resource="database-queries.xml">
</sqlmapconfig>
Todas as consultas (e inserts, e updates e todo o resto) ficam nos 'sqlMaps', referenciados por esta configuraçao. No exemplo, definimos uma só query, que retorna um string. O nosso database-queries.xml fica assim:
O mecanismo de mapeamento do iBatis é bem flexível, e permite, entre outras coisas, mapear result sets para objetos POJO automaticamente, utilizar recursos como iterações ou cláusulas condicionais no meio do SQL mapeado, e por aí vai.
<sqlmap namespace="database-queries">
<select id="getCustomerName" resultclass="string" parameterclass="int">
select name from CUSTOMER c where id=#id#
</select>
</sqlmap>
2. Código Java! (segundos 63 a 72)
Juntar os pedaços é uma tarefa igualmente 'no-brainer'. Primeiramente, inicializamos a camada do iBatis:
String resource = "sql-map-config.xml";
Reader reader = Resources.getResourceAsReader (resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMap(reader);
Feito isto, fazemos a consulta chamando o <select> mapeado a partir de seu nome, e fornecendo os parâmetros necessários:
String res = (String) sqlMap.queryForObject ("getCustomerName", new Integer(2));
Para mais detalhes e recursos avançados (mapeamento para POJOs, mecanismo de DAOs, transações), o site do iBatis oferece uns bons tutoriais no seu site.
Ah! O iBatis também tem uma implementação disponível em .net (vai ver por isso não chama 'jBatis'. hohohoho...).
Nenhum comentário:
Postar um comentário