2015-06-17 18 views
6

Sto lavorando su RESTful Webservice in Java Using Database. Utilizzando l'opzione RESTful Webservice dal Database in Netbeans, genera alcune Classi in base alle quali siamo in grado di esporre il servizio come count, {id}, {from}/{id}.Java RESTful Webservice Opreation CRUD che utilizza Netbeans IDE

Come scrivere il programma su Inserisci, Elimina e Aggiorna in Netbeans utilizzando Java.

Questo è il mio ambiente di lavoro. enter image description here

+1

Ci sono così molti tutorial su questo se google "REST CRUD netbeans "esempio http://www.madebyjohann.com/index.php/college/learn-how/57-crud-in-a-restful-api-with-netbeans –

+1

@ bearer bear Ho visitato così tanti siti che hanno progettato Programma Helloword che utilizza RESTful Webservice o che mostrava codice base, cioè generato da IDE ma non operazione CRUD. –

+1

@ring bearer Ho seguito questo link http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RESTfulWebServices/RESTfulWebservices.htm#t2 che descrive la connessione al database di esempio e il codice di generazione automatica dall'opzione RESTful Webservice dal database da Netbeans –

risposta

5

Codice Inserimento come segue:

@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"; 
} 

recupero di dati come segue:

@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

Questa domanda è utile –

+0

cercare di mantenere l'interazione del DB su un livello diverso ..... questo è strettamente accoppiato –

+0

** AbstractFacade ** ha tutti quei metodi. Ti stai complicando e questa non è una buona pratica. Che cosa hai intenzione di fare se hai il numero x di entità? –

1

separato il lavoro in due strati di DAO e servizio

  • All'interno DAO: tenere tutte le Interazioni database
  • Interno Servizio: Conservare soltanto il tuo webservice

Iniettare la dipendenza della vostra implementazione DAO nel vostro livello di servizio web e richiamare le vostre operazioni CRUD (questo è il concetto EJB, si può anche provare a molla)

2

Forse si dovrebbe prendere una cercare su Spring-dati ... Non vi resta che un'importazione Maven, un'interfaccia con tutti i metodi necessari e sarà utilizzerà il nome dei tuoi metodi per effettuare richieste ...

Ecco un esempio: http://spring.io/guides/gs/accessing-data-rest/

1

Dovresti definire tutte le tue operazioni CRUD in una classe riposante. In ogni metodo di classe restful dovresti chiamare un metodo di interfaccia di servizio che ha un'altra classe che ha l'implementazione di ServiceImpl. Ogni metodo del tuo servizio Impl dovrebbe interagire con il livello Dao per le operazioni CRUD. Si dovrebbe evitare di caricare di nuovo e di nuovo la classe di driver per ogni operazione di CRUD e si dovrebbe definire in un metodo di blocco separato/static in questo modo: -

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(); 
} 
} 
Problemi correlati