Como recuperar dados do banco de dados usando webservices (JAX - RS) no eclipse usando Java
Eu fiz inserindo um registro no banco de dados, mas não sei como recuperá-lo. Meu código é:Account.java:
<code>package com.fetch; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Id; public class Account implements Serializable { @Id private long id; @Column(name="NAME") private String name; public Account() { } public Account(int id, String name) { this.id = id; this.name = name; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } </code>
MyAccount.java:
<code>package com.fetch; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.Collection; import javax.jws.WebMethod; import javax.jws.WebService; import javax.persistence.Entity; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @WebService() @Entity @Table(name = "CUSTOMER") @Path("/user") @NamedQuery(name="loginquery", query="select ID,NAME from CUSTOMER") public class MyAccount { private Account ac; public MyAccount() { // TODO Auto-generated constructor stub ac = new Account(); } @POST @Path("/fetch") @WebMethod(operationName = "insert") public String insert(@FormParam("name") String name) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentinfo", "root", "root"); String query = "insert into CUSTOMER"+"(NAME) VALUES"+"(?)"; PreparedStatement st = con.prepareStatement(query); st.setString(1,name); st.executeUpdate(); } catch (Exception e) { System.out.println(e.getMessage()); } return"Record inserted successfully"; } public Account getAc() { return ac; } public void setAc(Account ac) { this.ac = ac; } } </code>
insert.html:
<code><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert</title> </head> <body> <form action="rest/user/fetch" method="POST"> <p> Name : <input id="name" name="name" /> </p> <input type="submit" value="Add" /> <input type="submit" value="Retrive" /> </form> </body> </html> </code>
web.xml:
<code><?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>FetchAndInsert</display-name> <servlet> <servlet-name>REST Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.fetch</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>REST Servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> </code>
Como recuperar os dados do banco de dados quando o usuário clica no botão de recuperação e exibe todos os registros em outro formulário HTML? Por favor, dê sugestões sobre como fazê-lo.
Na minha aplicação, quando o usuário clica no botão de recuperação, está executando a operação de inserção. Mas eu quero é, quando o usuário clica deve ir para a outra página e exibir os dados na tabela do banco de dados.
Alguém pode dizer o erro que eu fiz, e dar sugestões para encontrar solução para isso e como exibir a tabela dinâmica em outra página quando o usuário clica no botão de recuperação?