sábado, 28 de abril de 2018

CRUD Simples com PlayFramework 2.6.x


Ambiente e Tecnologias
  1. JDK8
  2. PostgreSQL 9.5
  3. PlaFramework - 2.6.13
  4. SBT - 1.1.2
  5. Jquery 3.3.1
  6. Bootstrap 4
  7. Eclipse -Oxygen 3A
  8. Windows 7 Ultimate 64bits
  9. Processador Intel I3 - 2120
  10. Memória Ram de 8GB
  11. HD de 500GB
  12. Internet de 200mbps


Instalar JDK8
Configurar Path do JDK8


Testar Path com os comandos java -version e javac


Configurar Path do SBT

Testar Path com o comando sbt


Instalar a IDE Eclipse http://www.eclipse.org/downloads/


Criar nova aplicação usando o comando
sbt new playframework/play-java-seed.g8


Defina dados do projeto


Estrutura do projeto depois do comando

Acesse a pasta do projeto pelo prompt e digite o comando sbt

Após comando sbt digite o comando run

Acesse a aplicação pelo link http://localhost:9000

Aperte a combinação Control+D para parar o servidor do Play.


Para integrar o play ao Eclipse:


Adicione  a linha abaixo no arquivo  project/plugins.sbt que está dentro do projeto criado
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.2")

Apos salvar o arquivo digite no prompt sbt compile

Após comando acima digite sbt eclipse para gerar dados de projeto a ser importado para o Eclipse


Abra o Eclipse e importe o projeto para ele em File>Import

Após a importação inicie  aplicação pelo prompt usando comando sbt run

Anatomia da aplicação


Para integrar o  hibernate no play seguir os passos abaixo:


Adicione as dependências no arquivo build.sbt
libraryDependencies += javaJpa
libraryDependencies += "org.postgresql" % "postgresql" % "9.4.1212"
libraryDependencies += "org.hibernate" % "hibernate-core" % "5.2.16.Final"
PlayKeys.externalizeResources := false



No arquivo conf/application.conf


# This is the main configuration file for the application.
# https://www.playframework.com/documentation/latest/ConfigFile


db {
 default.driver=org.postgresql.Driver
 default.url="jdbc:postgresql://localhost/livros"
 default.username=deivid
 default.password=deivid
 
 # Provided for JPA access
 default.jndiName=livrosDS

default.logSql=true
}
# Point JPA at our database configuration
jpa.default=defaultPersistenceUnit

play.filters.hosts { allowed = ["."] }




Crie o arquivo persistence.xml na pasta conf/META-INF/
e adicione os dados abaixo:


<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
            version="2.1">
   <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
       <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
       <non-jta-data-source>livrosDS</non-jta-data-source>
       <properties>
           <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
           <property name="hibernate.hbm2ddl.auto" value="update"/>
           <property name="hibernate.show_sql" value="true"/>
       </properties>
   </persistence-unit>
</persistence>




Adicione no arquivo project/plugins.sbt  para que os getter e setter sejam gerados automaticamente
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.2.2")


Instale o PostgreSQL9.5
Abra o PgAdmin3 e crie o banco de dados chamado livros


Após todo o processo acima saia do servidor em execução com Control+D e digite no prompt
sbt
compile
run


Crie a classe Livro no pacote models



Crie a classe JPALivroRepository no pacote repository





Defina as rotas em conf/routes
# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ # Home page GET / controllers.LivroController.index() GET /excluir/:id controllers.LivroController.excluir(id:Long) GET /editar/:id controllers.LivroController.editar(id:Long) GET /cadastrar controllers.LivroController.cadastrar() POST /cadastrar controllers.LivroController.adicionarLivro() POST /editar controllers.LivroController.atualizarLivro() POST / controllers.LivroController.pesquisarLivro() # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.at(path="/public", file)


Crie a classe LivroController no pacote controllers



Baixe o Jquery 3.3.1 https://jquery.com/download/
Baixe o Bootstrap 4 https://getbootstrap.com/docs/4.1/getting-started/download/
Adicione o arquivos js na pasta public/js e os arquivos css na pasta public/css


Crie o arquivo layout.scala.html no pacote views


Edite o arquivo index.scala.html no pacote views


Crie o arquivo cadastrar.scala.html no pacote views

Crie o arquivo editar.scala.html no pacote views



Teste a aplicação no PC










Teste a aplicação no celular





GITHUB : https://github.com/deividnn/livros-play

Nenhum comentário:

Postar um comentário