2010-02-10 26 views
5

Tôi đã tạo một ứng dụng web Java/JSP đơn giản và thêm một servlet Scala cơ bản. Tất cả mọi thứ hoạt động và tôi đã bao gồm các tập tin Scala và web.xml dưới đây. Làm thế nào tôi có thể sửa đổi servlet "huấn luyện viên" nhỏ của tôi để tôi có thể truy vấn một bảng MySql và tạo ra một bảng HTML <> ... </table>. Btw, tôi sẽ nhìn vào Lift sau đó. Hiện tại, kế hoạch của tôi là thêm một vài servlet Scala mới vào một ứng dụng web hiện có.Một đơn giản Scala servlet với kết nối cơ sở dữ liệu?


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> 

Trả lời

1

tùy chọn đầu tiên của bạn nên được để kiểm tra xem các ứng dụng hiện tại mà bạn đang tăng cường đã sử dụng một cái gì đó để truy cập vào MySQL. Nếu nó thì chỉ cần tận dụng điều đó. Nó sẽ tránh các vấn đề tương thích.

Nếu không, nếu bạn muốn làm điều gì đó rất giống scala, bạn nên xem xét truy vấn scala theo số http://github.com/szeiger/scala-query.

Bạn cũng có thể tận dụng bất kỳ ORM Java nào. Với Scala bạn có thể gõ vào khung và thư viện hiện có.

Cuối cùng, nếu bạn chỉ muốn một cái gì đó mà không yêu cầu bạn phải tải về nhiều thứ và sàng lọc thông qua tài liệu hướng dẫn, bạn có thể sử dụng thẳng JDBC (tìm kiếm cho "JDBC MySQL" trong google hoặc trên SO):

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

Không nên có một giải pháp tương tự như Scala để nói chuyện với DB và tạo bảng HTML? chọn các trường ("tên" của characterVarying (30)) từ ("my_table") –

+0

Có, tôi đề nghị * scala-query * cho việc này. Xem http://github.com/szeiger/scala-query/blob/master/src/test/scala/com/novocode/squery/test/MainTest.scala để biết một số mã mẫu. – huynhjl

Các vấn đề liên quan