您的位置:首页 > 编程语言 > Java开发

Struts2+DAO下的开发流程

2014-03-03 13:50 381 查看
这里撇开Spring和Hibernate不谈,直接在Struts2下使用DAO封装数据库操作,进行简单的数据库访问操作。实现的效果大致是在初始页面输入一个需要查询的人名,然后访问数据库,将查询到的结果返回给结果页面。本篇博文仅呈现一个大致的流程,并不给出具体的解释。

大致的效果如下两幅图显示:





项目实现流程:

1. 源代码包安排:

action 动作包

dao DAO包

dao.impl DAO接口的实现类包

entity 实体包

util 工具包(数据库访问工作类等,这里不展示)

2. 数据库中的内容如下



3. 封装admin表——User.java类

public class User {

private int id;
private String name;
private String password;

getter/setter
}


4. DAO接口——User相关的数据库访问操作

import cn.myseu.entity.User;

public interface UserDao {
public User query(String name);
}


5. 实现DAO接口——实现具体的业务方法

public class UserDaoImpl implements UserDao {

@Override
public User query(String name) {
String sql = "select * from admin where name=?";
Connection conn = DBUtil.getConn();

PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,name);

ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
int id = rs.getInt("id");
String password = rs.getString("password");
User user = new User();
user.setId(id);
user.setName(name);
user.setPassword(password);
return user;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return null;
}

}


6. 建立两个视图页面 namequery.jsp 和 dbresult.jsp

namequery.jsp 核心内容

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>DBTest</title>
</head>
<body>
<hr>
<h3>Who do you want to check</h3>
<h4>Input the name:</h4>
<s:form action="CheckDB">
<s:textfield name="name" label="Your name" />
<s:submit />
</s:form>
</body>

</html>


dbresult.jsp核心内容

<body>
<h4>Checking results:</h4>
<h2><s:property value="queryResult" /></h2>
</body>


7.在struts.xml中注册相应的Action

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">

<action name="QueryResult">
<result>/namequery.jsp</result>
</action>
<action name="CheckDB" class="cn.myseu.action.CheckDB">
<result name="SUCCESS">/dbresult.jsp</result>
</action>
</package>

</struts>


8.实现动作的实现类CheckDB.java

public class CheckDB{
public String execute() throws Exception {
setQueryResult(query(getName()));
return "SUCCESS";
}

private String query(String name){
UserDao dao = new UserDaoImpl();
User user = dao.query(name);
return "name:"+user.getName()+" password:"+user.getPassword();
}

private String name;
private String queryResult;

public String getQueryResult() {
return queryResult;
}

public void setQueryResult(String queryResult) {
this.queryResult = queryResult;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: