图书管理系统【部署开发环境、解决分类、图书、前台页面模块】二

导入工具类和方法的代码


  • 过滤中文乱码数据
  • HTML转义
  • DAOFactory
  • JDBC连接池
  • UUID工具类
  • c3p0.xml配置文件

这些代码都可以在我的博客分类:代码库中找到!



分类模块


首先,我们来做分类模块吧


创建实体Category


private String id;

    private String name;

    private String description;


    //各种setter、getter


在数据库创建表


CREATE TABLE category (


  id          VARCHAR(40) PRIMARY KEY,

  name        VARCHAR(10) NOT NULL UNIQUE ,

  description VARCHAR(255)



);


编写CategoryDAO


/**

* 分类模块

*  1:添加分类

*  2:查找分类

*  3:修改分类

*

*

* */

public class CategoryImpl {


    public void addCategory(Category category) {


        QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());


        String sql = "INSERT INTO category (id, name, description) VALUES(?,?,?)";

        try {

            queryRunner.update(sql, new Object[]{category.getId(), category.getName(), category.getDescription()});


        } catch (SQLException e) {

            throw new RuntimeException(e);

        }

    }


    public Category findCategory(String id) {

        QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

        String sql = "SELECT * FROM category WHERE id=?";


        try {

            Category category = (Category) queryRunner.query(sql, id, new BeanHandler(Category.class));


            return category;


        } catch (SQLException e) {

            throw new RuntimeException(e);

        }

 

    }


    public List<Category> getAllCategory() {

        QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

        String sql = "SELECT * FROM category";


        try {

            List<Category> categories = (List<Category>) queryRunner.query(sql, new BeanListHandler(Category.class));


             return categories;

        } catch (SQLException e) {

            throw new RuntimeException(e);

        }

     

    }

}


测试DAO


public class demo {


    @Test

    public void add() {


        Category category = new Category();

        category.setId("2");

        category.setName("数据库系列");

        category.setDescription("这是数据库系列");


        CategoryImpl category1 = new CategoryImpl();

        category1.addCategory(category);


    }


    @Test

    public void find() {


        String id = "1";

        CategoryImpl category1 = new CategoryImpl();

        Category category = category1.findCategory(id);


        System.out.println(category.getName());

    }

    @Test

    public void getAll() {



        CategoryImpl category1 = new CategoryImpl();

        List<Category> categories = category1.getAllCategory();


        for (Category category : categories) {

            System.out.println(category.getName());

        }

    }


}


抽取成DAO接口


public interface CategoryDao {

    void addCategory(Category category);


    Category findCategory(String id);


    List<Category> getAllCategory();

}


后台页面的添加分类


  • 在超链接上,绑定显示添加分类的页面

<a href="${pageContext.request.contextPath}/background/addCategory.jsp" target="body">添加分类</a>

  • 显示添加分类的JSP页面

<form action="${pageContext.request.contextPath}/CategoryServlet?method=add" method="post">


    分类名称:<input type="text" name="name"><br>

    分类描述:<textarea name="description"></textarea><br>

    <input type="submit" value="提交">


</form>

  • 处理添加分类的Servlet

if (method.equals("add")) {


            try {

                //把浏览器带过来的数据封装到bean中

                Category category = WebUtils.request2Bean(request, Category.class);

                category.setId(WebUtils.makeId());


                service.addCategory(category);

                request.setAttribute("message", "添加分类成功!");


            } catch (Exception e) {

                request.setAttribute("message","添加分类失败");

                e.printStackTrace();

            }

            request.getRequestDispatcher("/message.jsp").forward(request, response);


        }

  • 效果:

图书管理系统【部署开发环境、解决分类、图书、前台页面模块】二

上一篇:简易图书管理系统(主要是jsp的练习)


下一篇:使用Configuration Manager配置远程控制