2015-06-17 9 views
6

Pracuję nad RESTful WebService w Javie przy użyciu bazy danych. Korzystając z usługi RESTful Webservice z bazy danych w Netbeans generuje ona kilka klas, dzięki czemu jesteśmy w stanie ujawnić usługi takie jak count, {id}, {from}/{id}.Java RESTful Webservice CRUD Opreation Używanie Netbeans IDE

Jak napisać program do wstawiania, usuwania i aktualizacji w Netbeans przy użyciu Java.

To jest moje środowisko pracy. enter image description here

+1

Istnieje tak wiele tutoriali na ten temat, jeśli google „REST CRUD netbeans "przykład http://www.madebyjohann.com/index.php/college/learn-how/57-crud-in-a-fulful-api-with-netbeans –

+1

@ring okaziciela Odwiedziłem wiele stron, które zaprojektowali próbkę Program Helloword korzystający z usługi RESTful Webservice lub pokazujący podstawowy kod, tj. Generowany przez IDE, ale nie działający w trybie CRUD. –

+1

@ na okaziciela podążyłem za tym linkiem http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RESTfulWebServices/RESTfulWebservices.htm#t2, który opisuje przykładowe połączenie z bazą danych i automatycznie generuje kod z usługi RESTful Webservice z bazy danych z Netbeans –

Odpowiedz

5

Insertion Kod jak następuje:

@POST 
@Path("insertion") 
@Produces(MediaType.TEXT_HTML) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public String register(@FormParam("passhash") String passhash, @FormParam("email") String email,@FormParam("$pswdhash") String pwd, @FormParam("phno") String phno) { 
    try { 
     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app"); 
     PreparedStatement pst = con.prepareStatement("insert into MMX_REGISTRATION(name,email,pswd,phno) values(?,?,?,?)"); 
     pst.setString(1, passhash); 
     pst.setString(2, email); 
     pst.setString(3, pwd); 
     pst.setString(4, phno); 
     int result = pst.executeUpdate(); 
     System.out.println(result); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return "success"; 
    //return "listform.html"; 
} 

pobierania danych w następujący sposób:

@Context private HttpServletRequest request; 
@GET 
@Path("session") 
@Produces(MediaType.TEXT_HTML) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public String session(@QueryParam("lname") String name1) { 
    String response2 = null; 
    //String name11 = "praveen"; 

    //String a[] = null; 

    try { 

     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app"); 
     //PreparedStatement pst = con.prepareStatement("insert into restdb_insertion(id,company) values(?,?)"); 
     //String str1="select * from restdb_insertion where registration=?"; 
     PreparedStatement pst = con.prepareStatement("select * from MMX_REGISTRATION where name='"+name1+"'"); 
     System.out.println("select * from MMX_REGISTRATION where name='"+name1+"'"); 

     ResultSet rs = pst.executeQuery(); 
     ResultSetMetaData rsmd = rs.getMetaData(); 
     int cols = rsmd.getColumnCount(); 


     while (rs.next()) { 
      if(!"null".equals(rs.getString(1))){ 
       request.getSession(true); 
       HttpSession session = request.getSession();  
       session.setAttribute("name","value"); 
       session.setAttribute("UserName", rs.getString(2)); 
       String username = (String)session.getAttribute("UserName"); 
       System.out.println(username); 
       // System.out.println(name); 
       //request.getSession(false); 
       //request.getSession().invalidate(); 
       //String user = (String)session.getAttribute("UserName"); 
       //System.out.println(user); 
       return "success"+" "+username; 
      } 
     } 

     //response = name1; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return "fail"; 

    //"<rss version='2.0'><channel><id>" + id + "</id><cmp>" +response.toArray()[0] + "</cmp></channel></rss>" 
} 
+0

To pytanie jest przydatne –

+0

spróbuj zachować interakcję DB na innej warstwie ..... jest to bardzo ściśle powiązane –

+0

** AbstractFacade ** ma wszystkie te metody. Komplikujesz się, a to nie jest dobra praktyka. Co zamierzasz zrobić, jeśli masz x liczby jednostek? –

1

oddzielić pracę na dwie warstwy DAO i serwis

  • Wewnątrz DAO: Trzymać wszystko interakcje z bazą danych
  • Inside Usługa: Przechowywać wyłącznie twoja usługa

wstrzyknąć zależność implementacji DAO w swojej warstwie usług internetowych i wywoływać operacje CRUD (jest to pojęcie EJB, można także spróbować wiosna)

1

Powinieneś zdefiniować wszystkie operacje CRUD w spokojna klasa. W każdej metodzie restful class powinieneś wywołać metodę interfejsu usługi, która ma inną klasę, która ma implementację, np. ServiceImpl. Każda metoda twojej usługi Impl powinna współdziałać z warstwą Dao dla operacji CRUD. Należy unikać ponownie i ponownie ładuje klasę sterownika dla każdej operacji CRUD i należy je określić w odrębnej metody/statycznego bloku tak: -

static Connection con; 
static{ 
try { 
    Class.forName("org.apache.derby.jdbc.ClientDriver"); 
    con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app"); 
} catch (ClassNotFoundException | SQLException e) { 
    e.printStackTrace(); 
} 
} 
Powiązane problemy