案例,完成增删改查综合案列 请求-----DispatcherServlet—HandlerMapping—Controller组件----ViewResolver组件-jsp视图 主控制器 映射器 业务控制器 视图解析器 列表
list.do请求-----DispatcherServlet—HandlerMapping—userController.list()----ViewResolver组件-user_list.jsp
编写Dao组件 Controller组件 jsp组件
Dao接口
public interface UserDao {
public List
<User> findAll();
public int delete(int id
);
public int update(User user
);
public int save(User user
);
public User
findByID(int id
);
}
Dao接口实现类
@Repository
public class UserDaoImpl implements UserDao{
@Autowired
private JdbcTemplate template
;
public List
<User> findAll() {
String sql
="select * from user";
List
<User> list
=template
.query(sql
, new BeanPropertyRowMapper<User>(User
.class));
return list
;
}
@Override
public int delete(int id
) {
String sql
="delete from user where id=?";
return template
.update(sql
, id
);
}
@Override
public int update(User user
) {
String sql
="update user set name=?,pwd=? where id=?";
return template
.update(sql
,user
.getName(),user
.getPwd(),user
.getId());
}
@Override
public int save(User user
) {
String sql
="insert into user(id,name,pwd) value(?,?,?)";
return template
.update(sql
, user
.getId(),user
.getName(),user
.getPwd());
}
@Override
public User
findByID(int id
) {
String sql
="select * from user where id=?";
Object
[] params
= {id
};
User user
=template
.queryForObject(sql
, params
, new BeanPropertyRowMapper<User>(User
.class));
System
.out
.print(user
);;
return user
;
}
}
service方法,dao满足不了需求,需要添加service方法,复杂业务组件使用service组件 Dao----JdbcTemplate — DataSource 注入
UserController
@Controller
public class UserController {
@Autowired
private UserDao userDao
;
@RequestMapping("toList.do")
public String
toList() {
return "redirect:list.do";
}
@RequestMapping("list.do")
public ModelAndView
list() {
ModelAndView mav
=new ModelAndView();
List
<User> list
=userDao
.findAll();
mav
.setViewName("user_list");
mav
.getModel().put("users",list
);
return mav
;
}
@RequestMapping("add.do")
public String
add(User user
) {
userDao
.save(user
);
return "redirect:toList.do";
}
@RequestMapping("toadd.do")
public String
toadd() {
return "user_add";
}
@RequestMapping("delete.do")
public String
delete(int id
) {
userDao
.delete(id
);
return "redirect:list.do";
}
@RequestMapping("update.do")
public String update
(User user
) {
userDao
.update(user
);
return "redirect:list.do" ;
}@RequestMapping("toUpdate.do")
public String toupdate
(int id
,ModelMap map
) {
User user
=userDao
.findByID(id
);
map
.put("user", user
);
return "user_update";
}
@RequestMapping("view.do")
public String view
(int id
,ModelMap map
) {
User user
=userDao
.findByID(id
);
map
.put("user", user
);
return "user_view";
}
}
delete.do请求-----DispatcherServlet—HandlerMapping—Controller组件----ViewResolver组件-user_list.jsp 添加 add.do请求-----DispatcherServlet—HandlerMapping—Controller组件----ViewResolver组件-user_list.jsp 更新 update.do请求-----DispatcherServlet—HandlerMapping—userController.update()----ViewResolver组件-user_list.jsp 查看 view.do请求-----DispatcherServlet—HandlerMapping—Controller组件----ViewResolver组件-user_view.jsp
初始化组件
<init
-param
>
<param
-name
>contextConfigLocation
</param
-name
>
<param
-value
>classpath
:spring
-*.xml
</param
-value
>
</init
-param
>
@Repository //持久化组件注入
@Autowired 可以给构造器/ setter注入 @resource只可以用setter注入
Mapper映射不匹配问题 Jsp—VO ViewObject DO----Table 一个VO好几个DO 表结构 VO 包含集合 userVo
//ModelMap modell进行数据存储,返回给界面 相当于ModelAndView
user_list.jsp
<h1><a href
="toadd.do">新增数据
</a
></h1
>
<h1><a href
="toList.do">刷新
</a
></h1
>
列表页面
<table>
<tr>
<td>id
</td
>
<td>name
</td
>
<td>pwd
</td
>
</tr
>
<c
:forEach items
="${users}" var
="user">
<tr>
<td><a href
="view.do?id=${user.id}">$
{user
.id
}</a
></td
>
<td><a href
="view.do?id=${user.id}">$
{user
.name
}</a
></td
>
<td>$
{user
.pwd
}</td
>
<td><a href
="delete.do?id=${user.id}">删除
</a
></td
>
<td><a href
="toUpdate.do?id=${user.id}">更新
</a
></td
>
</tr
>
</c
:forEach
>
</table
>
怎么获取id 隐藏id <input type="hidden" name="id" value="${user.id}"/>