SpringMVC案例: 产品列表显示
功能流程设计
/book/list.do-->DispatcherServlet-->HandlerMapping-->BookListController(返回ModelAndView)-->ViewResolver-->/book_list.jsp
编写缺失组件
-
编写BookListController
-
编写book_list.jsp
-
编写BookDao
- 追加了ojdbc.jar、c3p0、spring-dao开发包
-
编写实体类
public class Book implements Serializable{ private int id; private String author; private String publishing; private Date publish_time; private String isbn; private int total_page; private String book_summary; //省略其他字段对应属性 //省略set和get方法 }
-
编写BookDao接口
public interface BookDao { /** * 根据时间查询前size个图书信息(时间降序) * @param size * @return */ public List<Book> findBooks(int size); }
-
编写JdbcBookDao实现类
public class JdbcBookDao implements BookDao{ private JdbcTemplate template; @Override public List<Book> findBooks(int size) { String sql = ""; sql+="select id,author "; sql+="from (select id,author from xdl_book order by publish_time desc) "; sql+="where rownum<? "; Object[] args = {size}; //字段名和属性名相同加载数据,不同就加载不上 RowMapper<Book> rowMapper = new BeanPropertyRowMapper<Book>(Book.class); List<Book> list = template.query(sql,args,rowMapper); return list; } }
-
配置BookDao,给Controller注入
-
扫描BookDao,注入JdbcTemplate对象
在JdbcBookDao前追加@Repository和@Autowired标记
-
定义JdbcTemplate对象
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="c3p0"></property> </bean>
-
定义c3p0连接池对象
<bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="SCOTT"></property> <property name="password" value="TIGER"></property> <property name="jdbcUrl" value="jdbc:oracle:thin:@locahost:1521:XE"></property> <property name="driverClass" value="oracle.jdbc.OracleDriver"></property> </bean>
-
流程配置
-
配置DispatcherServlet
-
配置HandlerMapping
-
配置BookListController
-
配置ViewResolver
测试
Spring案例: 删除操作
- 功能流程设计
/book/delete.do?id=xx-->DispatcherServlet-->HandlerMapping-->BookListController(返回ModelAndView)-->ViewResolver-->/list.do
Spring案例: 更新操作
- 初始显示功能流程设计
/book/update.do?id=xx-->DispatcherServlet-->HandlerMapping-->BookListController-->ViewResolver-->/book_update.jsp
- 更新按钮功能流程设计
/book/modify.do-->DispatcherServlet-->HandlerMapping-->BookListController-->ViewResolver-->/list.do