Jak pobrać dane z bazy danych za pomocą webservices (JAX - RS) w eclipse przy użyciu Java
Wstawiłem rekord do bazy danych, ale nie wiem, jak go odzyskać. Mój kod to:Konto.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>
Jak pobrać dane z bazy danych, gdy użytkownik kliknie przycisk pobierania i wyświetli wszystkie rekordy w innym formularzu HTML? Podaj sugestie, jak to zrobić.
W mojej aplikacji, gdy użytkownik kliknie przycisk pobierania, wykonuje operację wstawiania. Ale chcę, gdy użytkownik kliknie, powinien przejść do innej strony i wyświetlić dane w tabeli z bazy danych.
Czy ktoś może powiedzieć błąd, co zrobiłem, i podać sugestie dotyczące znalezienia rozwiązania tego problemu oraz sposobu wyświetlania dynamicznej tabeli na innej stronie, gdy użytkownik kliknie przycisk pobierania?