当我尝试将值从flex(前端)插入数据库(后端)时,我遇到了一个问题。在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 +"";
}
}
我想我在java代码中在Main中发送空值。但是如果我尝试在空值的位置添加aName,aNumber,aMail,aFeedback错误显示。是否有任何方法可以解决此问题或者是有任何站点可以帮助使用java,blazeds将值插入db。请帮助我。
先谢谢。
答案 0 :(得分:1)
根据Remoting Service定义,我认为问题是 JAVA static 方法
远程处理服务允许客户端应用程序访问服务器端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 sample
希望有效