2010-02-10 8 views
5

Creé una aplicación web Java/JSP simple y agregué un servlet básico de Scala. Todo funciona y he incluido el archivo Scala y web.xml a continuación. ¿Cómo puedo modificar mi pequeño servlet "formador" para poder consultar una tabla MySql y generar una tabla HTML <> ... </table>. Por cierto, voy a buscar en el ascensor en un momento posterior. Por el momento, mi plan es agregar varios nuevos servlets de Scala en una aplicación web existente.¿Un servlet Scala simple con conectividad de base de datos?


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> 

Respuesta

1

Su primera opción debe ser comprobar si la aplicación existente que estará incrementando ya utiliza algo para acceder a MySQL. Si lo hace, aproveche eso. Evitará problemas de compatibilidad.

De lo contrario, si desea hacer algo que es muy parecido a una scala, debería echar un vistazo a scala-query en http://github.com/szeiger/scala-query.

También puede aprovechar cualquier ORM de Java. Con Scala puede acceder al marco y las bibliotecas existentes.

Por último, si lo que desea es algo que no requiere que descargue muchas cosas y para tamizar a través de la documentación, se puede usar directamente JDBC (búsqueda de "MySQL JDBC" en Google o en SO):

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

¿No debería haber una solución más similar a Scala para hablar con el DB y generar la tabla HTML? seleccione los campos ("nombre" de characterVarying (30)) from ("my_table") –

+0

Sí, recomendé * scala-query * para esto. Consulte http://github.com/szeiger/scala-query/blob/master/src/test/scala/com/novocode/squery/test/MainTest.scala para obtener un código de muestra. – huynhjl

Cuestiones relacionadas