2010-02-10 1 views
5

Я создал простую веб-приложение Java/JSP и добавил базовый сервлет Scala. Все работает, и я включил файл Scala и web.xml ниже. Как я могу изменить свой маленький «тренерский» сервлет, чтобы я мог запросить таблицу MySql и создать таблицу HTML <> ... </table>. Кстати, я посмотрю в Лифте позже. На данный момент мой план состоит в том, чтобы добавить несколько новых сервлетов Scala в существующее веб-приложение.Простой сервлет Scala с возможностью подключения к базе данных?


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> 

ответ

1

Ваш первый вариант должен быть, чтобы проверить, если существующее приложение, которое вы совершенствуют уже использует что-то для доступа к MySQL. Если это так, просто используйте это. Это позволит избежать проблем с совместимостью.

В противном случае, если вы хотите сделать что-то очень scala-like, вы должны взглянуть на scala-запрос на http://github.com/szeiger/scala-query.

Вы также можете использовать любой Java ORM. С Scala вы можете использовать существующую инфраструктуру и библиотеки.

Наконец, если вы просто хотите что-то, что не требует от вас, чтобы загрузить много вещей, и просеять через документацию, вы можете использовать прямой JDBC (поиск «JDBC MySQL» в гугле или на SO):

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

Разве не должно быть больше решения Scala для общения с БД и генерации таблицы HTML? («name» of characterVarying (30)) from («my_table») – 2010-02-11 07:13:58

+0

Да, я рекомендовал * scala-query * для этого. См. Http://github.com/szeiger/scala-query/blob/master/src/test/scala/com/novocode/squery/test/MainTest.scala для примера кода. – huynhjl

Смежные вопросы