2010-02-10 10 views
5

Ho creato una semplice app web Java/JSP e aggiunto un servlet Scala di base. Tutto funziona e ho incluso il file Scala e il web.xml qui sotto. Come posso modificare il mio piccolo servlet "trainer" così posso interrogare una tabella MySql e generare una tabella HTML <> ... </table>. A proposito, cercherò Lift in un secondo momento. Al momento, il mio piano è di aggiungere diversi nuovi servlet Scala in un'app Web esistente.Un servlet Scala semplice con connettività di database?


ScalaTrainer.scala

 
package com.mdm.h4 

import javax.servlet.http.{HttpServlet, 
HttpServletRequest => HSReq, HttpServletResponse => HSResp} 

class ScalaTrainer extends HttpServlet 
{ 
    def html = 
    <html> 
     <head> 
     <title>Hello Scala</title> 
     </head> 
     <body> 
     <p style="text-align: center">This is 100% pure Scala.</p> 
     <p>It's now 
      {currentDate} 
     </p> 
     <p>My name is 
      {name} 
      and I'm learning 
      {language}. 
     </p> 
     </body> 
    </html> 

    def name = "Mike" 
    def language = "Scala" 

    def currentDate = java.util.Calendar.getInstance().getTime() 

    override def doGet(req: HSReq, resp: HSResp) { 

    resp.getWriter().print(html) 

    } 
} 

web.xml

 
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     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_2_5.xsd" 
     version="2.5"> 

    <servlet> 
     <display-name>trainer</display-name> 
     <servlet-name>ScalaTrainer</servlet-name> 
     <servlet-class>com.mdm.h4.ScalaTrainer</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>ScalaTrainer</servlet-name> 
     <url-pattern>/trainer</url-pattern> 
    </servlet-mapping> 
</web-app> 

risposta

1

vostra prima opzione dovrebbe essere quello di verificare se l'applicazione esistente che si sta migliorando già utilizza qualcosa per accedere a MySQL. Se lo fa, allora sfrutta questo. Eviterà problemi di compatibilità.

Altrimenti, se vuoi fare qualcosa che è molto scala, dovresti dare un'occhiata a scala-query al http://github.com/szeiger/scala-query.

È inoltre possibile sfruttare qualsiasi ORM Java. Con Scala puoi attingere a framework e librerie esistenti.

Infine, se si desidera solo una cosa che non richiede di scaricare molte cose e di passare al setaccio la documentazione, è possibile utilizzare direttamente JDBC (ricerca per "JDBC MySQL" in Google o su SO):

val s = conn.createStatement() 
s.executeQuery("SELECT * FROM EMP") 
val rs = s.getResultSet() 
while (rs.next()) { 
    ... 
} 
rs.close() 
s.close() 
+0

Non dovrebbe esserci una soluzione più simile a Scala per parlare al DB e generare la tabella HTML? selezionare i campi ("nome" di characterVarying (30)) da ("my_table") –

+0

Sì, ho raccomandato * scala-query * per questo. Vedi http://github.com/szeiger/scala-query/blob/master/src/test/scala/com/novocode/squery/test/MainTest.scala per alcuni codici di esempio. – huynhjl

Problemi correlati