快速业务通道

Struts从零开始三、连接数据库实例 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Struts从零开始三、连接数据库实例

时间:2011-08-05

效果图:

我们以结果为导向,首先大家先看看要完成的效果图,对接下来要做的事情有个清晰的认识。

1、如图键入:

Struts从零开始三、连接数据库实例 - 编程入门网

显示结果如下图:

Struts从零开始三、连接数据库实例 - 编程入门网

如果您输入的是不合法的话,则如下图:

Struts从零开始三、连接数据库实例 - 编程入门网

修改步骤:

A、数据源配置

在struts-config.xml文件中有一元素是用来配置应用所需要的数据源,数据源负责建立和特定数据库的连接,许多数据源采用连接池的机制实现,即提高了数据库的访问性能。具体代码片段如下所示:

<data-sources>    <data-source key="DataSource" type="org.apache.commons.dbcp.BasicDataSource">      <set-property property="driverClassName" value="com.mysql.jdbc.Driver" />      <set-property property="url" value="jdbc:mysql://localhost:3306/struts1_login"/>      <set-property property="username" value="root"/>      <set-property property="password" value="5ihpp1314"/>    </data-source> </data-sources>

Struts从零开始三、连接数据库实例(2)

时间:2011-08-05

上面这段代码配置了与MySQL数据库的连接。元素的key是一个别名,用于在应用程序中去的一个连接,元素type用来指定数据源的实现类。上面使用的是Apache软件组织提供的DBCP数据源。所以你必须导入commons-dbcp.jar、commons-pool.ar、struts-legacy..jar这三个包和MySQL的驱动包:mysql-connector-java-5.0.5-bin.jar。

配置了数据源后,就可以在Action中访问数据源了。

代码如下所示:

//获取Servlet上下文对象

ServletContext ctx = servlet.getServletContext();

//获得数据源

DataSource ds = (DataSource) ctx.getAttribute("DataSource");

//获取数据库的连接

Connection conn = ds.getConnection();

B、修改Action

Action将取得数据源,得到一个数据库的连接,把页面传近来的用户名和密码,通过jdbc与数据库进行对比,如果存在转到“success.jsp”并显示其名称,否则到错误页面。

具体实现代码如下所示:

public class LoginAction extends Action {    public ActionForward execute(ActionMapping actionMapping,    ActionForm actionForm, HttpServletRequest request,    HttpServletResponse response) {    LoginActionForm loginform = (LoginActionForm) actionForm;    String username = loginform.getUsername();    String userpass = loginform.getUserpass();    ServletContext ctx = servlet.getServletContext();    DataSource ds = (DataSource) ctx.getAttribute("DataSource");    boolean flag = false;    String sql = "select * from user where username=''" + username    + "'' and password=''" + userpass + "''";    try {    Connection conn = ds.getConnection();    Statement st = conn.createStatement();    ResultSet rs = st.executeQuery(sql);    while (rs.next()) {    flag = true;    }    } catch (Exception e) {    e.printStackTrace();    }    String actionpath = "";    if (flag) {    request.setAttribute("username", username);    actionpath = "success";    } else {    actionpath = "error";    }    return actionMapping.fin

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号