欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

列表查询——初级

程序员文章站 2024-03-16 22:26:34
...

该案例很好地运用了MVC设计模式的思路,值得借鉴

最下面这张图画的很好,思路思路就很清晰了,首先要查询用户信息,跳转到UserListServlet中去,这里面的功能是把数据库中查询到的消息封装成包含一个个User对象的容器,这就需要先定义一个UserService接口,同时UserServiceImpl类实现该接口,之后调用就是UserService service = new UserServiceImpl();这是面向接口思想。然后调用service中的findAll方法,能返回数据库查询到的所有对象,把它们封装成一个集合List,返回的是List容器,接下来进行dao层的编写,先用数据库连接池连接数据库,引入相应的Druid的jar包,这一步要烂熟于胸!然后在UserDao接口中定义一个findAll方法,类UserDaoImpl去实现该接口,在该类中建立JdbcTemplate对象,重写接口中的findAll方法,在该方法中进行数据查找,建立sql语句,然后:

List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));

查询到数据库中的对象,这里我没有加筛选条件,查到的是全部表中数据,查询后返回一个容器,该方法在UserService中的findAll方法中被调用,又返回该容器,其实个类里面的方法最好别起名为findAll,容易被人误解,而且他们又都要是public的,不能改成private,子类的访问权限是不能比父类小的,因为要被别的类访问,friendly是同一个包里的其他类才可以访问,明显就不满足了。
接下来调用返回的容器到了UserListServlet中,这里面负责将该集合放到request域中,转发到list.jsp页面显示,list.jsp页面要通过编写JSTL(ferEach)和EL(${user.name}…)表达式遍历该容器所有对象,输出到页面,要使用JSTL,先导入jar包,然后:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

循环操作:

<c:forEach items="${users}" var="user" varStatus="s" >

然后输入每个元素:

<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>

下面是案例的思维导图:
列表查询——初级
至此,案例完成。