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.