使用servlet和JavaBean访问MySQL

时间:2008-10-07 04:12:00   来源:无忧考网     [字体: ]
使用Servlet和Java Bean访问MySQL

  运行环境: JDK 5.0 + Tomcat 5.5.4

  JDK安装路径: D:\Java\jdk1.5.0_01
  Tomcat安装路径:D:\Tomcat 5.5

  设置环境变量(控制面板->系统->高级):
  java_home=D:\Java\jdk1.5.0_01
  path=%JAVA_HOME%\bin
  classpath=.;D:\Java\jdk1.5.0_01\lib\dt.jar;D:\Java\jdk1.5.0_01\lib\tools.jar;D:\Tomcat 5.5\common\lib\servlet-api.jar;D:\Tomcat 5.5\common\lib\mysql-connector-java-3.1.6-bin.jar;


  其中D:\Tomcat 5.5\common\lib\servlet-api.jar为Tomcat的servlet API实现,一定要加上,不如无法编译servlet
  D:\Tomcat 5.5\common\lib\mysql-connector-java-3.1.6-bin.jar;是MySQL的JDBC驱动,connect/J 3.1.6,可到MySQL官方网站下载

  Tomcat5.5虚拟目录设定:
  D:\Tomcat 5.5\conf\Catalina\localhost下新加一test.XML
  内容如下:
  
  

  d:\www路径将是我们测试网站的根目录,通过http://localhost:8080/test访问该虚拟目录
  d:\www下建有目录Web-INF,下有web.xml设置文件(可参考D:\Tomcat 5.5\webapps\ROOT\WEB-INF\web.xml),classes目录和lib目录

  //连接数据库的Java Bean文件名dbconn.java
  package NinGoo;
  import java.sql.*;
  public class dbconn {
  public dbconn() {
  }
  //declare variable
  private Connection conn = null;
  ResultSet rs = null;
  private String server = "127.0.0.1";
  private String port = "3306";
  private String db = "test";
  private String user = "root";
  private String pass = "password";
  private String drivername="com.mysql.jdbc.Driver";
  private String URL="jdbc:mysql://"+server+":"+port+"/"+db+"?user="+user+"&password="+pass;

  public Connection getConn(){//get database connection
  try{
  Class.forName(drivername).newInstance();
  conn = DriverManager.getConnection(URL);
  }
  catch(Exception e){
  e.printStackTrace();
  }
  return this.conn ;
  }

  public ResultSet executeSQL(String str) {
  try{
  Statement stmt = conn.createStatement();
  rs = stmt.executeQuery(str);
  }
  catch(Exception e){
  e.printStackTrace();
  }
  return this.rs;
  }
  }

  编译javac welcome.java,将编译后的文件welcome.class放到目录D:\www\WEB-INF\classes\NinGoo\下

  //调用Java Bean的servlet welcome.java
  import java.io.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.sql.*;