小弟近日在做音乐网站,在站内搜索部分编了个applet ,可是总是报错,我快崩溃了,各位高手给改改看。
import java.awt.*;
import java.applet.*;public class Find extends Applet {

   public void init() {
Choice twoChoice = new Choice();//设置选项
twoChoice.addItem("歌曲名");
twoChoice.addItem("歌手名");
    String name = twoChoice.getSelectedItem();//返回选项值
    TextField t1;//information field
t1 = new TextField("请输入关键字",20);
String word = t1.getSelectedText();//返回关键字
Label findLabel = new Label("查找:");//两个标签
Label informationLabel = new Label("关键字");
Button findButton = new Button("开始查找");//开始按钮
setLayout(new FlowLayout(FlowLayout.LEFT,3,1));//布局管理器
add(findLabel);//添加组件
add(twoChoice);
add(informationLabel);
add(t1);
add(findButton);
}
   //public boolean action(Event e,Object o){//按钮事件
     //  if(e.target instanceof Button){
    //if(e.target == findButton)
       
    //}
    public void Performed(ActionEvent event){
    if(event.getSource() == findButton){
    processionRequest();
    }
    }
    private synchronized void processRequest(){
    String stringResult = "";
    String sesult;
    try{//连接数据库
    Class.forName("jdbc.odbc.JdbcOdbcDriver");
    String url = "jdbc:odbc:s_singer";
    Connection con = DriverManager.getConnection(url,"Sa","password");
    //连接
    Statement stmt = con.createStatement();//生成Statement对象
    String sqlselect="Select s_singer.singer,s_singer.song from s_singer where 
        s_singer.singer="word" or s_singer.song="word"";
    ResultSet rs = stmt.executeQuery(sqlselect);//执行查询语句
    while(rs.next()){
    int i=0;
    result = "";
    result = rs.getString(i) + "\n";
    stringResult += result;
    }
    textResult.setText(stringResult);
   
    rs.close();//关闭连接
    stmt.close();
    }
    catch(Exception e){//扑捉例外,并打印
    textResult.setText(e.getMessage());
    }
    }
   }

解决方案 »

  1.   

    你的applet会下载到用户机器上,用户可以反编译你的applet ,你这么明文写,你的数据库和网站...会很不安全.
      

  2.   

    --------------------Configuration: Find - JDK version 1.5.0 <Default> - <Default>--------------------
    E:\Program Files\Xinox Software\JCreatorV3\MyProjects\Find\src\Find.java:43: unclosed string literal
                            String sqlselect="Select s_singer.singer,s_singer.song "+"from s_singer where 
                                                                                     ^
    E:\Program Files\Xinox Software\JCreatorV3\MyProjects\Find\src\Find.java:44: unclosed string literal
                                s_singer.singer="word" or s_singer.song="word"";
                                                                              ^
    2 errors
    这是我们期末的一个作业,并不上传到网上,多谢 naxin(痴呆男人--我痴呆,我自豪!!) 关心!
    大家给帮忙看一下好吗?
      

  3.   

    s_singer.singer="word" or s_singer.song="word"";
    应该是s_singer.singer='word'or s_singer.song='word'";用单引号吧...
      

  4.   

    怎么applet里连数据库,抄东西也要找个正确的方向吧
      

  5.   

    不是不帮忙,是现在有几个还学applet啊,连学java要不要更深入一些都要考虑了
      

  6.   

    为什么不要继续深入进去呢,java 不是很有前途的语言吗
      

  7.   

    String sqlselect="Select s_singer.singer,s_singer.song from s_singer where 
           s_singer.singer="word" or s_singer.song="word"";应该改为:
    String sqlselect="Select s_singer.singer,s_singer.song from s_singer where 
           s_singer.singer=\'"+ word +"\'" + " or s_singer.song=\'"+word+ "\'";
      

  8.   

    要在sql语句中用"" 你必须用java 的转义字符 '\' 来实现。
      

  9.   

    要在sql语句中用"" 你必须用java 的转义字符 '\' 来实现。