Передача параметров из flex в базу данных с использованием Java - PullRequest
0 голосов
/ 18 мая 2011

Я сталкиваюсь с одной проблемой, когда пытаюсь вставить значения из flex (frontend) в базу данных (backend). Нет проблем в подключении Blazeds. Я думаю, что проблема с кодом Java. В любом случае я вставляю код Java и Flex.Я знаю, как вставить значения в базу данных. Я не очень хорошо в java. Так что я много пытался решить эту проблему.

Мой код Flex:

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        import mx.utils.ObjectUtil;
        private function processSendFeedback():void
        {
            ro.getHelloByName(name_txt.text,email_txt.text,number_txt.text,fb_txt.text);
        }
        private function result(event:ResultEvent):void
        {
            Alert.show(ObjectUtil.toString(event.result));
        }
        private function fault(event:FaultEvent):void
        {
            Alert.show(ObjectUtil.toString(event.fault));
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
    <s:RemoteObject id="ro"
                    destination="helloworldname"
                    result="result(event)"
                    fault="fault(event)"/>
</fx:Declarations>

<s:Panel x="176"
         y="112"
         width="414"
         height="325"
         title="FeedBack"
         borderColor="#008040"
         fontWeight="bold"
         fontSize="13">


    <s:Button label="Submit"
              id="senfeddback"
              click="processSendFeedback()" 
              x="178" 
              y="246" 
              height="22" 
              width="86" 
              cornerRadius="12"/>

    <s:Label x="61" y="38" text="Name"/>
    <s:Label x="61" y="72" text="Email"/>
    <s:Label x="61" y="105" text="Number"/>
    <s:Label x="50" y="142" text="Feedback"/>

    <s:TextInput id="name_txt" x="119" y="30" width="260"/>
    <s:TextInput id="email_txt" x="119" y="65" width="260"/>
    <s:TextInput id="number_txt" x="119" y="100" width="260"/>
    <s:TextInput id="fb_txt" x="119" y="134" width="260" height="104"/>

</s:Panel>

Мой код Java:

public class HelloWorldName 
{ 

public static void main(String[] argv) 
{
    System.out.println("-------- PostgreSQL " +
            "JDBC Connection Testing ----------");
    getHelloByName(null, null, null, null);
}
public static String getHelloByName(String aName,String aMail,String aNumber,String aFeedback)
{
        String host = "localhost";
        String port = "1234";
        String dbName = "test";
        Connection connection = null;
    try 
    {
        connection = DriverManager.getConnection(
                "jdbc:postgresql://" + host + ":" + port + "/" + dbName,"postgres", "admin");

        System.out.println("Database is connected");    
     String strSQL = "insert into feedback(name,mobile_num,mail,feedback) values ('" + aName + "','" + aNumber +"','" + aMail +"','" + aFeedback +"')";
     Statement st = connection.createStatement();
     int a=st.executeUpdate(strSQL);
     System.out.println("hi,query executed");
    }
    catch(Exception e)
    {
        System.out.println();
    }
    return "Hello from Java, " + aName + "," + aMail +"," + aNumber +"," + aFeedback +"";
}
}

Я думаю, что я посылаю нулевые значения в Main в коде Java. Но если я пытаюсь добавить aName, aNumber, aMail, aFeedback вместо нулевых значений, ошибкаМогу ли я решить эту проблему или есть какой-нибудь сайт, помогающий вставить значения в db с помощью java, blazeds. Пожалуйста, помогите мне.

Заранее спасибо.

1 Ответ

1 голос
/ 18 мая 2011

Я думаю, что проблема в JAVA static методе согласно Remoting Service определение

Служба Remoting позволяет клиентскому приложению обращаться к методам серверных Java-объектов

и java / oops статические методы не связаны с Объект / экземпляр его зависит от / связан с классом

ваш метод должен быть таким, чтобы принимать вызов от flex

public String getHelloByName(String aName,String aMail,String aNumber,String aFeedback)

и для вызова его в main (java main) используйте следующие строки

HelloWorldName helloWorldName = new HelloWorldName();
helloWorldName.getHelloByName(null, null, null, null);

Вот Flash-Builder BlazeDS-Remoting образец

надеется, что работает

...