其中自定义mvc框架工作原理如图所示:


其中jar包如图所示:

- package com.zking.mvcplus.dao;
-
-
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.List;
-
- import com.zking.mvcplus.entity.Book;
- import com.zking.mvcplus.util.CommonUtils;
- import com.zking.mvcplus.util.PageBean;
- import com.zking.mvcplus.util.PinYinUtil;
- import com.zking.mvcplus.util.StringUtils;
-
- public class BookDao extends BaseDao<Book> {
-
- /**
- * 1.书本新增
- * @param book
- */
- public void addBook(Book book) {
- String sql="insert into t_book(book_name,book_name_pinyin,"
- + " book_price,book_type) values(?,?,?,?)";
- super.executeUpdate(sql, new Object[] {
- book.getBook_name(),
- PinYinUtil.toPinyin(book.getBook_name()).toLowerCase(),
- book.getBook_price(),
- book.getBook_type()
-
- });
- }
- /**
- * 2.书本删除
- * @param book
- */
- public void delBook(Book book) {
- String sql="delete from t_book where book_id=?";
- super.executeUpdate(sql, new Object[] {
- book.getBook_id()
-
- });
- }
- /**
- * 3.书本编辑
- * @param book
- */
- public void editBook(Book book) {
- String sql="update t_book set book_name=?,book_name_pinyin=?,"
- + "book_price=?,book_type=? where book_id=?";
- super.executeUpdate(sql, new Object[] {
- book.getBook_name(),
- PinYinUtil.toPinyin(book.getBook_name()).toLowerCase(),
- book.getBook_price(),
- book.getBook_type(),
- book.getBook_id()
-
- });
- }
- /**
- * 4.书本分页查询
- * @param book
- * @param pageBean
- * @return
- */
- public List<Book> queryBookPager(Book book,PageBean pageBean ){
- String sql="select * from t_book where 1=1";
- //按照书本名称模糊查询
- if(StringUtils.isNotBlank(book.getBook_name()))
- sql+=" and book_name like '%"+book.getBook_name()+"%'";
- //按照书本编号降序排序
- sql+=" order by book_id desc";
- System.out.println(sql);
- return super.excuteQuery(sql, pageBean,new CallBack<Book>(){
-
- @Override
- public List<Book> foreachRs(ResultSet rs) throws SQLException, Exception {
- return CommonUtils.toList(rs, Book.class);
- }
-
-
- });
-
- }
- /**
- * 5.根据书本编号ID查询单个书本信息
- * @param book
- * @return
- */
- public Book queryBookById(Book book){
- String sql="select * from t_book where book_id="+book.getBook_id();
- System.out.println(sql);
- List<Book> lst=super.excuteQuery(sql, null,new CallBack<Book>(){
-
- @Override
- public List<Book> foreachRs(ResultSet rs) throws SQLException, Exception{
- return CommonUtils.toList(rs, Book.class);
- }
-
-
- });
- if(null!=lst&&lst.size()!=0)
- return lst.get(0);
- else
- return null;
-
-
- }
- }
通过反射机制调用以上方法即可。

注意:增删改用重定向 查询用转发3.1 自定义MVC框架的CRUD操作
3.2.配置config.xml文件
3.3.导入PageTag自定义分页标签类
3.4.导入自定义分页标签的描述文件z.tld
注:导入到WEB-INF目录下