Daew pessoal blz,
Esses dias eu estava vendo as listas de Java e observei que muitos desenvolvedores tem dúvida
de como automatizar tarefas como create, drop e etc com o Ant.
Devido a isso resolvi criar um post direcionado a esta questão.
Neste Java Fast Code irei demonstrar a execução automática dos scripts SQL.
A classe abaixo PopularBase.java executa um comando de processo para executar a target do Ant.
Obs: Vale lembrar que existem outras maneiras de se executar uma target Ant com o Java.
Também não irei entrar em detalhes sobre os scripts Ant e Sql.
public class PopularBase{
public static void main(String[] args) throws Exception {
try {
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+"ant createTables_MySQL");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Abaixo segue o arquivo build.xml
<.project name="teste" default="ajuda" basedir=".">
<.property name="sql.driver" value="com.mysql.jdbc.Driver"/>
<.property name="sql.url" value="jdbc:mysql://localhost:3306/dataBase"/>
<.property name="sql.user" value="root"/>
<.property name="sql.pass" value="root"/>
<.!--
Target : createTables_MySQL
Finalidade : criar as tabelas no banco MySql
Como faz : utiliza os .sql
-->
<.target name="createTables_MySQL" depends="dropDB_MySQL">
<.sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}" >
<.classpath>
<.pathelement location="WebContent/WEB-INF/lib/mysql-connector-java-5.0.7-bin.jar"/>
<./classpath>
<.transaction src="sql/create_table.sql"/>
<./sql>
<./target>
<.!--
Target : dropDB_MySQL
Finalidade : Deleta as tabelas do Mysql
-->
<.target name="dropDB_MySQL">
<.sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}" src="sql/deleteTable.sql">
<.classpath>
<.pathelement location="WebContent/WEB-INF/lib/mysql-connector-java-5.0.7-bin.jar"/>
<./classpath>
<./sql>
<./target>
Abaixo segue os script SQL.
createTables_MySQL
CREATE TABLE tbusuario
idUsuario bigint(20) NOT NULL AUTO_INCREMENT,
tpUsuario char(1) NOT NULL,
status char(1) NOT NULL,
login varchar(20) default NULL UNIQUE,
senha varchar(20) default NULL,
PRIMARY KEY (idUsuario)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- INSERINDO UM ADMINISTRADOR
INSERT INTO tbUsuario (tpUsuario, status, login, senha) values ('S','A','adm','adm');
dropDB_MySQL
delete from tbusuario;
drop table tbusuario;
E eh isso pessoal espero que este post ajude vocês.