关于applet的设想

  现在免费的jsp空间太少了,因此想到了applet既然能在网页上运行java程序,而且不用host,那么岂不是可以在免费的非java空间上运行java程序了?也就是说,借助免费的asp、php空间,可以运行包含java类的html(即applet程序)。

  网上说applet不适合连接数据库,原因是考虑到安全问题;有的是用servelet + applet来完成数据库的连接,但这岂不是又用到了java的Host?明知山有虎,偏向虎山行,我用applet连接数据库,在eclipse上能运行,但是嵌入到网页中运行时,就不能连接数据库了,查网,得知引用的mysql的jar包未包含进去,有的说用到数字钥匙,有的说怎样怎样,但通过一番努力,未解决。

    以下是程序:

import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class AppAndJDBC extends JApplet implements ActionListener {

 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;
 String name = null;
 
 JLabel idLabel = new JLabel("号");
 JTextField idTF = new JTextField(5);
 JButton btn = new JButton("查询");
 JTextField nameTF = new JTextField(5);
 
 @Override
 public void init() {
  setLayout(new GridLayout(2,2));
  add(idLabel);
  add(idTF);
  add(btn);
  add(nameTF);
  btn.addActionListener(this);
 }

 public void paint(Graphics g) {
  
  /*try {
   Class.forName("com.mysql.jdbc.Driver");
   conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" +
   "user=root&password=root");
   stmt = conn.createStatement();
   rs = stmt.executeQuery("SELECT * FROM emp");
   int i = 10;
   while(rs.next()) {
    g.drawString(rs.getString("id"),30,20 + i);
    g.drawString(rs.getString("name"),50,20 + i);
    i+=20;
   }
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if(rs != null) {
     rs.close();
     rs = null;
    }
    if(stmt != null) {
     stmt.close();
     stmt = null;
    }
    if(conn != null) {
     conn.close();
     conn = null;
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }*/
  
 // g.drawString("Hello Java",30,30);// 在绘图区内写上字符串
 }

 private String getName(int id) {
  try {
   Class.forName("com.mysql.jdbc.Driver");
   conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" +
   "user=root&password=root");
   stmt = conn.createStatement();
   rs = stmt.executeQuery("SELECT * FROM emp");
   while(rs.next()) {
    if(rs.getInt("id") == id) {
     name = rs.getString("name");
     rs.afterLast();
    }
   }
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if(rs != null) {
     rs.close();
     rs = null;
    }
    if(stmt != null) {
     stmt.close();
     stmt = null;
    }
    if(conn != null) {
     conn.close();
     conn = null;
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  return name;
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
  if(e.getSource() == btn) {
   getName(Integer.valueOf(idTF.getText()));
   nameTF.setText(name);
  }
  
 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值