2010-02-10 14 views
5

मैंने एक साधारण जावा/जेएसपी वेब ऐप बनाया और एक बुनियादी स्कैला सर्वलेट जोड़ा। सब कुछ काम करता है और मैंने नीचे स्कैला फ़ाइल और web.xml शामिल किया है। मैं अपने छोटे "ट्रेनर" सर्वलेट को कैसे संशोधित कर सकता हूं ताकि मैं एक MySQL तालिका से पूछ सकूं और एक HTML < तालिका> ... </तालिका> उत्पन्न कर सकता हूं। बीटीडब्ल्यू, मैं बाद में लिफ्ट में देखूंगा। फिलहाल, मेरी योजना एक मौजूदा वेब ऐप में कई नए स्कैला सर्वलेट जोड़ना है।डेटाबेस कनेक्टिविटी के साथ एक सरल स्कैला सर्वलेट?


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 का उपयोग करने के लिए कुछ का उपयोग करता है, तो जाँच करने के लिए किया जाना चाहिए। अगर ऐसा होता है तो बस इसका लाभ उठाएं। यह संगतता मुद्दों से बच जाएगा।

अन्यथा, यदि आप ऐसा कुछ करना चाहते हैं जो बहुत स्केल जैसा है, तो आपको http://github.com/szeiger/scala-query पर स्कैला-क्वेरी पर एक नज़र रखना चाहिए।

आप किसी भी जावा ओआरएम का लाभ उठा सकते हैं। स्कैला के साथ आप मौजूदा ढांचे और पुस्तकालयों में टैप कर सकते हैं।

अंत में, यदि आप सिर्फ कुछ है कि आप बहुत सी बातें डाउनलोड करने के लिए की आवश्यकता नहीं है और प्रलेखन में छान-बीन करना चाहते हैं, तो आप सीधे JDBC ("JDBC MySQL" के लिए खोज गूगल में या इसी तरह) का उपयोग कर सकते हैं:

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

डीबी से बात करने और HTML तालिका जेनरेट करने के लिए समाधान की तरह अधिक स्केल नहीं होना चाहिए? ("my_table") –

+0

से फ़ील्ड का चयन करें (वर्ण का नाम "(") "हां, मैंने इसके लिए * स्कैला-क्वेरी * की सिफारिश की है। कुछ नमूना कोड के लिए http://github.com/szeiger/scala-query/blob/master/src/test/scala/com/novocode/squery/test/MainTest.scala देखें। – huynhjl

संबंधित मुद्दे