}
}finally{ }
return list;
dbc.close();
@Override
public User queryById(int userId) { }
@Override
public void update(User user) {
//要预处理的SQL语句
//预处理的SQL语句
String sql = \; //声明预处理变量
PreparedStatement pstmt = null; //声明连接对象
DataBaseConnection dbc = null; //声明结果集
ResultSet rs = null; //对数据库的操作
User user = new User(); try { }
return user;
dbc = new DataBaseConnection();
pstmt = dbc.getConnetion().prepareStatement(sql); pstmt.setInt(1, userId); rs = pstmt.executeQuery(); if(rs.next()){ }
rs.close(); pstmt.close();
// TODO Auto-generated catch block e.printStackTrace(); dbc.close();
user.setId(rs.getInt(\));
user.setUserName(rs.getString(\)); user.setPassword(rs.getString(\));
} catch (SQLException e) {
}finally{
}
}
String sql= \; //声明预处理对象
PreparedStatement pstmt = null; //声明连接对象
DataBaseConnection dbc = null; //下面是针对数据库的具体操作
dbc = new DataBaseConnection(); try { }
pstmt = dbc.getConnetion().prepareStatement(sql); pstmt.setString(1, user.getUserName()); pstmt.setString(2, user.getPassword()); pstmt.setInt(3, user.getId()); pstmt.execute(); pstmt.close();
// TODO Auto-generated catch block e.printStackTrace(); dbc.close();
} catch (SQLException e) {
}finally{
6、DAO的工厂类
在没有DAO的工厂类的情况下,必须通过DAO实现类
的实例才能完成对数据库的操作。这样必须知道具体的子类,对后期的操作非常不便。
可以通过DAO工厂类的一个静态方法来获取DAO实
现类的实例 DEMO:
package cn.dao;
public class DAOFactory {
}
//用静态方法来返回DAO实现类的实例
public static UserDAO getUserDaoInstance(){ }
return new UserDaoImp();
MVC设计模式
MVC把交互系统的组成分解成模型,视图,控制器三部分。M ---Model V ---View C ---Controller
Struts2
原
理
图
:
上图来源于Struts2官方站点,是Struts 2 的整体结构。
Struts2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器
FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。
(1)核心控制器:FilterDispatcher
FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts2框架处理。
Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。
Struts2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。 Struts2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。而Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传