最简单的Struts程序(2)------连接MYSQL数据库

来源:互联网 发布:cfg文件mac怎么打开 编辑:程序博客网 时间:2024/06/11 08:11

1.开发所用工具:

     eclipse3.1+myeclipse

     Mysql4.1.11

     struts1.1

     Mysql-connect

2.开发过程:

新建一个myeclipse项目“db_test”,

MYSQL中新建一个数据库“test,然后在其中新建一个表“test,如下:

CREATE TABLE `test` (

  `name` char(20) NOT NULL default '',

  `password` char(10) NOT NULL default ''

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

   

新建两个JSP文件,分别如下:

HelloWorld.jsp

 

 

HelloWorld.jsp

<%@ page  contentType="text/html;charset=gb2312" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <html:base />

    <title>HelloWorld.jsp</title>

  </head>

  <body>

   <html:form action="/hello" method="post">

    <html:text property="name"/>

    <br>

  <html:password property="password"/>

    <html:submit  value="提交"/>

    <html:reset value="重写"/>

   </html:form>

  </body>

</html:html>

 

 

HelloOut.jsp

 

 

<%@ page  contentType="text/html;charset=gb2312" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <html:base />

    <title>MyJsp.jsp</title>

  </head>

  <body>

    <bean:write name="checkForm" property="name"/>等录成功!!!!!

    <!-- <bean:write name="checkForm" property="password"/>-->

  </body>

</html:html>

 

 

2.创建用于连接MYSQL的文件,DBConn.java

package com.sql.struts;

import java.sql.*;

public class DBConn{

    String sDBDriver="org.gjt.mm.mysql.Driver";

    String sConnStr="jdbc:mysql://127.0.0.1:3306/test?user=root&password=xiaotu&useUnicode=true&characterEncoding=ISO-8859-1";

    Connection conn=null;

    ResultSet rs=null;

    public DBConn(){

       try{

            Class.forName(sDBDriver);

        }

        catch(java.lang.ClassNotFoundException e){

            System.out.println("Jdbc_conn():"+e.getMessage());

        }

    }

    public void executeUpdate(String sql)throws Exception{

       try{

           conn=DriverManager.getConnection(sConnStr);

            Statement stmt=conn.createStatement();

            stmt.executeUpdate(sql);

           conn.close();

           stmt.close();

        }

        catch(SQLException ex){

            System.out.println("sql.executeUpdate:"+ex.getMessage());

        }

    }

    public ResultSet executeQuery(String sql)throws Exception{

        rs=null;

       try{

           sql=new String(sql.getBytes("ISO-8859-1"));

            conn=DriverManager.getConnection(sConnStr);

            Statement stmt=conn.createStatement();

            rs=stmt.executeQuery(sql);

        }

        catch(SQLException ex){

            System.out.println("sql.executeQuery:"+ex.getMessage());

        }

       return rs;

    }

    public void CloseConn()

          throws Exception {

          try

          {

            if (rs!=null)

              rs.close();

            if (conn!=null)

              conn.close();

          }

            catch(SQLException ex)

          {

            System.out.println ("closeConn: " + ex);

          }

    }

}

 

 

3. 创建Action文件,ActionCheck.java

package com.sql.struts;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

public class ActionCheck extends Action{

    public ActionForward execute(

           ActionMapping mapping,

           ActionForm form,

           HttpServletRequest request,

           HttpServletResponse response) throws Exception {

       CheckForm checkForm = (CheckForm) form;

       String username = checkForm.getName();

       checkForm.setName(toGB(username));

       String password = checkForm.getPassword();

       //toGB(password);

       DBConn db = new DBConn();

       boolean okflag=false;

       try{

           ResultSet rs = db.executeQuery("select * from test");

           while(rs.next()){

              if(rs.getString("name").equals(toGB(username))&&

rs.getString("password").equals(password)) {

                  okflag=true;

                  break;

              };

           }

           rs.close();

           if(okflag){

              return (mapping.findForward("success"));

           }else{

              checkForm.reset(mapping,request);

              return (mapping.findForward("failure"));

           }

       }catch(SQLException ex){

           System.out.print("Logon Error" + ex.getMessage());

       }finally{

           db.CloseConn();

       }

       return (mapping.findForward("success"));

    }

    public static String toGB(String iso){

       String gb=null;

       if (iso != null) {

           try {

              gb=new String(iso.getBytes("ISO-8859-1"),"GB2312");

           } catch (Exception e) {

              gb=null;

           }

       }

       return gb;

    }

}

4. 创建Form bean 文件,CheckForm.java

package com.sql.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

public  class CheckForm extends ActionForm {

    String name=null;

    String password=null;

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public String getPassword() {

       return password;

    }

    public void setPassword(String password) {

       this.password = password;

    }

    public void reset(ActionMapping mapping, HttpServletRequest request) {

       password = "";

       name = "";

    }

}

5.运行程序:http://localhost:8089/db_test/HelloWorld.jsp   即可运行程序